You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/03/31 02:56:43 UTC

svn commit: r524338 - in /incubator/tuscany/java/sca/scdl4j/xml: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/tuscany/scdl/ src/main/java/org/apache/tuscany/scdl/impl/ src/main/java/org/apache/tuscany/scdl/util/ src/test...

Author: jsdelfino
Date: Fri Mar 30 17:56:41 2007
New Revision: 524338

URL: http://svn.apache.org/viewvc?view=rev&rev=524338
Log:
Added simple SCDL readers from sandbox to be able to read the model for now. Will probably be merged or replaced with actual StAX Loaders later. Added test cases testing almost all the possible combinations of SCDL elements.

Added:
    incubator/tuscany/java/sca/scdl4j/xml/src/
    incubator/tuscany/java/sca/scdl4j/xml/src/main/
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/
      - copied from r521951, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/BindingHandlerRegistry.java
      - copied unchanged from r521953, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/BindingHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java
      - copied, changed from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java
      - copied, changed from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java
      - copied, changed from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ImplementationHandlerRegistry.java
      - copied unchanged from r521953, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ImplementationHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/InterfaceHandlerRegistry.java
      - copied unchanged from r521953, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/InterfaceHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/test/
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/
      - copied from r521951, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java   (with props)
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java
      - copied, changed from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java
      - copied, changed from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/Calculator.composite
      - copied unchanged from r521951, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/resources/Calculator.composite
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/CalculatorComponent.constrainingType
      - copied unchanged from r521951, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/resources/CalculatorComponent.constrainingType
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/CalculatorImpl.componentType
      - copied unchanged from r521951, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/resources/CalculatorImpl.componentType
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite   (with props)
    incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite   (with props)
Removed:
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/DefaultBindingHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/DefaultImplementationHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/DefaultInterfaceHandlerRegistry.java
    incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/builder/
Modified:
    incubator/tuscany/java/sca/scdl4j/xml/   (props changed)
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/InterfaceHandler.java
    incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java

Propchange: incubator/tuscany/java/sca/scdl4j/xml/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Mar 30 17:56:41 2007
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+

Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/InterfaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/InterfaceHandler.java?view=diff&rev=524338&r1=521951&r2=524338
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/InterfaceHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/InterfaceHandler.java Fri Mar 30 17:56:41 2007
@@ -18,7 +18,7 @@
  */
 package org.apache.tuscany.scdl;
 
-import org.apache.tuscany.assembly.model.Interface;
+import org.apache.tuscany.sca.idl.Interface;
 import org.xml.sax.ContentHandler;
 
 /**

Copied: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java (from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java?view=diff&rev=524338&p1=incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java&r1=522186&p2=incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java&r2=524338
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java Fri Mar 30 17:56:41 2007
@@ -27,6 +27,7 @@
 import org.apache.tuscany.assembly.model.Property;
 import org.apache.tuscany.assembly.model.Reference;
 import org.apache.tuscany.assembly.model.Service;
+import org.apache.tuscany.policy.model.PolicyFactory;
 import org.apache.tuscany.scdl.Constants;
 import org.apache.tuscany.scdl.HandlerRegistry;
 import org.apache.tuscany.scdl.InterfaceHandler;
@@ -51,8 +52,9 @@
     private InterfaceHandler interfaceHandler;
 	private AssemblyFactory factory;
 
-    public ComponentTypeHandler(AssemblyFactory factory, HandlerRegistry<InterfaceHandler> interfaceHandlers) {
-        super(factory, interfaceHandlers, null, null);
+    public ComponentTypeHandler(AssemblyFactory factory, PolicyFactory policyFactory,
+    		HandlerRegistry<InterfaceHandler> interfaceHandlers) {
+        super(factory, policyFactory, interfaceHandlers, null, null);
         this.factory = factory;
     }
     
@@ -66,6 +68,8 @@
             if (Constants.COMPONENT_TYPE.equals(name)) {
                 componentType = factory.createComponentType();
                 componentType.setConstrainingType(getConstrainingType(attr));
+                readRequiredIntents(componentType, attr);
+                readPolicySets(componentType, attr);
                 return;
 
             } else if (Constants.SERVICE.equals(name)) {
@@ -73,6 +77,8 @@
                 contract = service;
                 service.setName(getString(attr, Constants.NAME));
                 componentType.getServices().add(service);
+                readRequiredIntents(service, attr);
+                readPolicySets(service, attr);
                 return;
 
             } else if (Constants.REFERENCE.equals(name)) {
@@ -87,17 +93,23 @@
             	reference.getTargets().add(target);
 
             	componentType.getReferences().add(reference);
+                readRequiredIntents(reference, attr);
+                readPolicySets(reference, attr);
             	return;
             	
             } else if (Constants.PROPERTY.equals(name)) {
                 property = factory.createProperty();
                 readProperty(property, attr);
                 componentType.getProperties().add(property);
+                readRequiredIntents(property, attr);
+                readPolicySets(property, attr);
                 return;
 
             } else if (Constants.CALLBACK.equals(name)) {
 	            callback = factory.createCallback();
 	            contract.setCallback(callback);
+                readRequiredIntents(callback, attr);
+                readPolicySets(callback, attr);
 	            return;
 	        }
         }

Copied: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java (from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java?view=diff&rev=524338&p1=incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java&r1=522186&p2=incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java&r2=524338
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java Fri Mar 30 17:56:41 2007
@@ -31,6 +31,7 @@
 import org.apache.tuscany.assembly.model.Contract;
 import org.apache.tuscany.assembly.model.Property;
 import org.apache.tuscany.assembly.model.Wire;
+import org.apache.tuscany.policy.model.PolicyFactory;
 import org.apache.tuscany.scdl.BindingHandler;
 import org.apache.tuscany.scdl.Constants;
 import org.apache.tuscany.scdl.HandlerRegistry;
@@ -49,6 +50,7 @@
 public class CompositeHandler extends BaseHandler implements ContentHandler {
 
     private Composite composite;
+    private Composite include;
     private Component component;
     private Property property;
     private ComponentService componentService;
@@ -64,11 +66,11 @@
 	private ImplementationHandler implementationHandler;
 	private BindingHandler bindingHandler;
 
-    public CompositeHandler(AssemblyFactory factory,
+    public CompositeHandler(AssemblyFactory factory, PolicyFactory policyFactory,
     		HandlerRegistry<InterfaceHandler> interfaceHandlers,
     		HandlerRegistry<ImplementationHandler> implementationHandlers,
     		HandlerRegistry<BindingHandler> bindingHandlers) {
-        super(factory, interfaceHandlers, implementationHandlers, bindingHandlers);
+        super(factory, policyFactory, interfaceHandlers, implementationHandlers, bindingHandlers);
         this.factory = factory;
     }
     
@@ -85,13 +87,23 @@
                 composite.setAutowire(getBoolean(attr, Constants.AUTOWIRE));
                 composite.setLocal(getBoolean(attr, Constants.LOCAL));
                 composite.setConstrainingType(getConstrainingType(attr));
+                readRequiredIntents(composite, attr);
+                readPolicySets(composite, attr);
                 return;
 
+            } else if (Constants.INCLUDE.equals(name)) {
+            	include = factory.createComposite();
+            	include.setUnresolved(true);
+            	composite.getIncludes().add(include);
+            	return;
+            	
             } else if (Constants.SERVICE.equals(name)) {
                 if (component != null) {
                     componentService = factory.createComponentService();
                     contract = componentService;
                     componentService.setName(getString(attr, Constants.NAME));
+                    readRequiredIntents(componentService, attr);
+                    readPolicySets(componentService, attr);
                     component.getServices().add(componentService);
                 } else {
                     compositeService = factory.createCompositeService();
@@ -105,6 +117,8 @@
 
                 	composite.getServices().add(compositeService);
                 }
+                readRequiredIntents(contract, attr);
+                readPolicySets(contract, attr);
                 return;
 
             } else if (Constants.REFERENCE.equals(name)) {
@@ -133,6 +147,8 @@
 
                 	composite.getReferences().add(compositeReference);
                 }
+                readRequiredIntents(contract, attr);
+                readPolicySets(contract, attr);
                 return;
 
             } else if (Constants.PROPERTY.equals(name)) {
@@ -146,6 +162,8 @@
                     readProperty(property, attr);
                     composite.getProperties().add(property);
                 }
+                readRequiredIntents(property, attr);
+                readPolicySets(property, attr);
                 return;
 
             } else if (Constants.COMPONENT.equals(name)) {
@@ -153,6 +171,8 @@
                 component.setName(getString(attr, Constants.NAME));
                 component.setConstrainingType(getConstrainingType(attr));
                 composite.getComponents().add(component);
+                readRequiredIntents(component, attr);
+                readPolicySets(component, attr);
                 return;
                 
             } else if (Constants.WIRE.equals(name)) {
@@ -168,11 +188,15 @@
             	wire.setTarget(target);
             	
                 composite.getWires().add(wire);
+                readRequiredIntents(wire, attr);
+                readPolicySets(wire, attr);
                 return;
             	
 	        } else if (Constants.CALLBACK.equals(name)) {
                 callback = factory.createCallback();
                 contract.setCallback(callback);
+                readRequiredIntents(callback, attr);
+                readPolicySets(callback, attr);
                 return;
 	        }
         }
@@ -196,6 +220,8 @@
     	// Handle property value
     	if (property != null) {
     		property.setDefaultValue(new String(ch, start, length));
+    	} else if (include != null) {
+    		include.setName(getQName(new String(ch, start, length)));
     	}
     }
 
@@ -227,6 +253,8 @@
             componentService = null;
             compositeService = null;
             contract = null;
+        } else if (Constants.INCLUDE.equals(name)) {
+        	include = null;
         } else if (Constants.REFERENCE.equals(name)) {
             componentReference = null;
             compositeReference = null;

Copied: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java (from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java?view=diff&rev=524338&p1=incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java&r1=522186&p2=incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java&r2=524338
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java Fri Mar 30 17:56:41 2007
@@ -25,6 +25,7 @@
 import org.apache.tuscany.assembly.model.AbstractService;
 import org.apache.tuscany.assembly.model.AssemblyFactory;
 import org.apache.tuscany.assembly.model.ConstrainingType;
+import org.apache.tuscany.policy.model.PolicyFactory;
 import org.apache.tuscany.scdl.Constants;
 import org.apache.tuscany.scdl.HandlerRegistry;
 import org.apache.tuscany.scdl.InterfaceHandler;
@@ -48,8 +49,9 @@
 	private AssemblyFactory factory;
 	private InterfaceHandler interfaceHandler;
 
-    public ConstrainingTypeHandler(AssemblyFactory factory, HandlerRegistry<InterfaceHandler> interfaceHandlers) {
-        super(factory, interfaceHandlers, null, null);
+    public ConstrainingTypeHandler(AssemblyFactory factory, PolicyFactory policyFactory,
+    		HandlerRegistry<InterfaceHandler> interfaceHandlers) {
+        super(factory, policyFactory, interfaceHandlers, null, null);
         this.factory = factory;
     }
     
@@ -63,6 +65,7 @@
             if (Constants.CONSTRAINING_TYPE.equals(name)) {
                 constrainingType = factory.createConstrainingType();
                 constrainingType.setName(getQName(attr, Constants.NAME));
+                readRequiredIntents(constrainingType, attr);
                 return;
 
             } else if (Constants.SERVICE.equals(name)) {
@@ -70,6 +73,7 @@
                 abstractContract = abstractService;
                 abstractService.setName(getString(attr, Constants.NAME));
                 constrainingType.getServices().add(abstractService);
+                readRequiredIntents(abstractService, attr);
                 return;
 
             } else if (Constants.REFERENCE.equals(name)) {
@@ -77,12 +81,14 @@
                 abstractContract = abstractReference;
                 abstractReference.setName(getString(attr, Constants.NAME));
                 constrainingType.getReferences().add(abstractReference);
+                readRequiredIntents(abstractReference, attr);
                 return;
 
             } else if (Constants.PROPERTY.equals(name)) {
                 abstractProperty = factory.createAbstractProperty();
                 readAbstractProperty(abstractProperty, attr);
                 constrainingType.getProperties().add(abstractProperty);
+                readRequiredIntents(abstractProperty, attr);
                 return;
             }
         }

Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java?view=diff&rev=524338&r1=521951&r2=524338
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java Fri Mar 30 17:56:41 2007
@@ -19,13 +19,24 @@
 
 package org.apache.tuscany.scdl.util;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.StringTokenizer;
+
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.assembly.model.AbstractProperty;
 import org.apache.tuscany.assembly.model.AssemblyFactory;
 import org.apache.tuscany.assembly.model.ConstrainingType;
 import org.apache.tuscany.assembly.model.Property;
+import org.apache.tuscany.policy.model.Intent;
+import org.apache.tuscany.policy.model.IntentAttachPoint;
+import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.policy.model.PolicySet;
+import org.apache.tuscany.policy.model.PolicySetAttachPoint;
 import org.apache.tuscany.scdl.BindingHandler;
+import org.apache.tuscany.scdl.Constants;
 import org.apache.tuscany.scdl.HandlerRegistry;
 import org.apache.tuscany.scdl.ImplementationHandler;
 import org.apache.tuscany.scdl.InterfaceHandler;
@@ -44,6 +55,7 @@
     protected final static String sca10 = "http://www.osoa.org/xmlns/sca/1.0";
 
     private AssemblyFactory factory;
+    private PolicyFactory policyFactory;
     private HandlerRegistry<InterfaceHandler> interfaceHandlers;
     private HandlerRegistry<ImplementationHandler> implementationHandlers;
     private HandlerRegistry<BindingHandler> bindingHandlers;
@@ -53,12 +65,13 @@
     private BindingHandler bindingHandler;
     private int elementCount;
 
-    public BaseHandler(AssemblyFactory factory,
+    public BaseHandler(AssemblyFactory factory, PolicyFactory policyFactory,
     		HandlerRegistry<InterfaceHandler> interfaceHandlers,
     		HandlerRegistry<ImplementationHandler> implementationHandlers,
     		HandlerRegistry<BindingHandler> bindingHandlers) {
     	
     	this.factory = factory;
+    	this.policyFactory = policyFactory;
     	this.interfaceHandlers = interfaceHandlers;
     	this.implementationHandlers = implementationHandlers;
     	this.bindingHandlers = bindingHandlers;
@@ -67,28 +80,74 @@
     protected String getString(Attributes attr, String name) {
         return attr.getValue(name);
     }
+    
+    protected QName getQName(String qname) {
+        if (qname != null) {
+	        int index = qname.indexOf(':');
+	        String prefix = index == -1 ? "" : qname.substring(0, index);
+	        String localName = index == -1 ? qname : qname.substring(index+1);
+	        String ns = nsStack.getNamespaceURI(prefix);
+	        if (ns == null) {
+	            ns = "";
+	        }
+	        return new QName(ns, localName, prefix);
+        } else {
+        	return null;
+        }
+    }
 
     protected QName getQName(Attributes attr, String name) {
-        String qName = attr.getValue(name);
-        int index = qName.indexOf(':');
-        String prefix = index == -1 ? "" : qName.substring(0, index);
-        String localName = index == -1 ? qName : qName.substring(index);
-        String ns = nsStack.getNamespaceURI(prefix);
-        if (ns == null) {
-            ns = "";
-        }
-        return new QName(ns, localName, prefix);
+        return getQName(attr.getValue(name));
     }
 
     protected boolean getBoolean(Attributes attr, String name) {
         return Boolean.valueOf(attr.getValue(name));
     }
+    
+    protected List<QName> getQNames(Attributes attr, String name) {
+    	String value = attr.getValue(name);
+    	if (value != null) {
+    		List<QName> qnames = new ArrayList<QName>();
+    		for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens(); ) {
+    			qnames.add(getQName(tokens.nextToken()));
+    		}
+    		return qnames;
+    	} else {
+    		return Collections.emptyList();
+    	}
+    }
+    
+    protected void readRequiredIntents(IntentAttachPoint attachPoint, Attributes attr) {
+    	String value = attr.getValue(Constants.REQUIRES);
+    	if (value != null) {
+			List<Intent> requiredIntents = attachPoint.getRequiredIntents();
+    		for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens(); ) {
+    			QName qname = getQName(tokens.nextToken());
+    			Intent intent = policyFactory.createIntent();
+    			intent.setName(qname);
+				requiredIntents.add(intent);
+    		}
+    	}
+    }
+
+    protected void readPolicySets(PolicySetAttachPoint attachPoint, Attributes attr) {
+    	String value = attr.getValue(Constants.POLICY_SETS);
+    	if (value != null) {
+			List<PolicySet> policySets = attachPoint.getPolicySets();
+    		for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens(); ) {
+    			QName qname = getQName(tokens.nextToken());
+    			PolicySet policySet = policyFactory.createPolicySet();
+    			policySet.setName(qname);
+				policySets.add(policySet);
+    		}
+    	}
+    }
 
     protected ConstrainingType getConstrainingType(Attributes attr) {
-        String constrainingTypeName = attr.getValue(sca10, "constrainingType");
+        QName constrainingTypeName = getQName(attr, "constrainingType");
         if (constrainingTypeName != null) {
             ConstrainingType constrainingType = factory.createConstrainingType();
-            constrainingType.setName(new QName(constrainingTypeName));
+            constrainingType.setName(constrainingTypeName);
             constrainingType.setUnresolved(true);
             return constrainingType;
         } else {
@@ -100,14 +159,8 @@
         prop.setName(getString(attr, "name"));
         prop.setMany(getBoolean(attr, "many"));
         prop.setMustSupply(getBoolean(attr, "mustSupply"));
-        String xsdElement = getString(attr, "element");
-        if (xsdElement != null) {
-            prop.setXSDElement(new QName(xsdElement));
-        }
-        String xsdType = getString(attr, "type");
-        if (xsdType != null) {
-            prop.setXSDType(new QName(xsdType));
-        }
+        prop.setXSDElement(getQName(attr, "element"));
+        prop.setXSDType(getQName(attr, "type"));
         // TODO handle default value
     }
 

Added: incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java?view=auto&rev=524338
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java (added)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java Fri Mar 30 17:56:41 2007
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.scdl;
+
+import java.io.InputStream;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.assembly.model.AssemblyFactory;
+import org.apache.tuscany.assembly.model.Callback;
+import org.apache.tuscany.assembly.model.Component;
+import org.apache.tuscany.assembly.model.ComponentReference;
+import org.apache.tuscany.assembly.model.ComponentService;
+import org.apache.tuscany.assembly.model.Composite;
+import org.apache.tuscany.assembly.model.CompositeReference;
+import org.apache.tuscany.assembly.model.CompositeService;
+import org.apache.tuscany.assembly.model.Multiplicity;
+import org.apache.tuscany.assembly.model.Property;
+import org.apache.tuscany.assembly.model.impl.DefaultAssemblyFactory;
+import org.apache.tuscany.assembly.util.CompositeUtil;
+import org.apache.tuscany.assembly.util.PrintUtil;
+import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.policy.model.impl.DefaultPolicyFactory;
+import org.apache.tuscany.scdl.impl.CompositeHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+/**
+ * Test the usability of the assembly model API when loading SCDL
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ReadAllTestCase extends TestCase {
+
+    XMLReader reader;
+    AssemblyFactory assemblyFactory;
+    PolicyFactory policyFactory;
+    
+    public void setUp() throws Exception {
+        reader = XMLReaderFactory.createXMLReader();
+        reader.setFeature("http://xml.org/sax/features/namespaces", true);
+        reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
+        
+        assemblyFactory = new DefaultAssemblyFactory();
+        policyFactory = new DefaultPolicyFactory();
+    }
+
+    public void tearDown() throws Exception {
+        assemblyFactory = null;
+        policyFactory = null;
+        reader = null;
+    }
+
+    public void testReadComposite() throws Exception {
+        InputStream is = getClass().getClassLoader().getResourceAsStream("TestAllCalculator.composite");
+        CompositeHandler handler = new CompositeHandler(assemblyFactory, policyFactory, null, null, null);
+        reader.setContentHandler(handler);
+        reader.parse(new InputSource(is));
+        
+        Composite composite = handler.getComposite();
+        assertNotNull(handler.getComposite());
+        assertEquals(composite.getName(), new QName("http://calc", "TestAllCalculator"));
+        assertEquals(composite.getConstrainingType().getName(), new QName("http://calc", "Calculator"));
+        assertTrue(composite.isLocal());
+        assertFalse(composite.isAutowire());
+        assertEquals(composite.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(composite.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        
+        Composite include = composite.getIncludes().get(0);
+        assertEquals(include.getName(), new QName("http://calc", "TestAllDivide"));
+        
+        CompositeService calcCompositeService = (CompositeService)composite.getServices().get(0);
+        assertEquals(calcCompositeService.getName(), "CalculatorService");
+        assertTrue(calcCompositeService.getPromotedService().isUnresolved());
+        assertEquals(calcCompositeService.getPromotedService().getName(), "CalculatorServiceComponent/CalculatorService");
+        assertEquals(calcCompositeService.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcCompositeService.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        //TODO test operations
+        Callback calcServiceCallback = calcCompositeService.getCallback();
+        assertNotNull(calcServiceCallback);
+        assertEquals(calcServiceCallback.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcServiceCallback.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        //TODO test operations
+        
+        Component calcComponent = composite.getComponents().get(0);
+        assertEquals(calcComponent.getName(), "CalculatorServiceComponent");
+        assertEquals(calcComponent.isAutowire(), false);
+        assertEquals(calcComponent.getConstrainingType().getName(), new QName("http://calc", "CalculatorServiceComponent"));
+        assertEquals(calcComponent.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcComponent.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+
+        ComponentService calcComponentService = calcComponent.getServices().get(0);
+        assertEquals(calcComponentService.getName(), "CalculatorService");
+        assertEquals(calcComponentService.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcComponentService.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        //TODO test operations
+
+        ComponentReference calcComponentReference = calcComponent.getReferences().get(0);
+        assertEquals(calcComponentReference.getName(), "addService");
+        assertEquals(calcComponentReference.isAutowire(), false);
+        assertEquals(calcComponentReference.isWiredByImpl(), false);
+        assertEquals(calcComponentReference.getMultiplicity(), Multiplicity.ONE_ONE);
+        assertEquals(calcComponentReference.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcComponentReference.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        //TODO test operations
+
+        Property property = calcComponent.getProperties().get(0);
+        assertEquals(property.getName(), "round");
+        assertEquals(property.getDefaultValue(), "true");
+        assertEquals(property.getXSDType(), new QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        assertEquals(property.isMany(), false);
+        
+        CompositeReference calcCompositeReference = (CompositeReference)composite.getReferences().get(0);
+        assertEquals(calcCompositeReference.getName(), "MultiplyService");
+        assertTrue(calcCompositeReference.getPromotedReferences().get(0).isUnresolved());
+        assertEquals(calcCompositeReference.getPromotedReferences().get(0).getName(), "CalculatorServiceComponent/multiplyService");
+        assertEquals(calcCompositeReference.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcCompositeReference.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        //TODO test operations
+        Callback calcCallback = calcCompositeReference.getCallback();
+        assertEquals(calcCompositeReference.getRequiredIntents().get(0).getName(), new QName("http://test/confidentiality", "confidentiality"));
+        assertEquals(calcCompositeReference.getPolicySets().get(0).getName(), new QName("http://test/secure", "secure"));
+        assertNotNull(calcCallback);
+        //TODO test operations
+        
+        new PrintUtil(System.out).print(handler.getComposite());
+    }
+
+    public void testReadCompositeAndWireIt() throws Exception {
+        InputStream is = getClass().getClassLoader().getResourceAsStream("TestAllCalculator.composite");
+        CompositeHandler handler = new CompositeHandler(assemblyFactory, policyFactory, null, null, null);
+        reader.setContentHandler(handler);
+        reader.parse(new InputSource(is));
+        assertNotNull(handler.getComposite());
+        
+        Composite composite = handler.getComposite();
+        new CompositeUtil(assemblyFactory, composite).configure(null);
+
+        Component calcComponent = composite.getComponents().get(0);
+        CompositeService calcCompositeService = (CompositeService)composite.getServices().get(0);
+        assertEquals(calcComponent.getServices().get(0), calcCompositeService.getPromotedService());
+
+        ComponentReference multiplyReference = calcComponent.getReferences().get(2);
+        CompositeReference calcCompositeReference = (CompositeReference)composite.getReferences().get(0);
+        assertEquals(multiplyReference, calcCompositeReference.getPromotedReferences().get(0));
+        
+        Component addComponent = composite.getComponents().get(1);
+        ComponentReference addReference = calcComponent.getReferences().get(0);
+        assertEquals(addReference.getTargets().get(0), addComponent.getServices().get(0));
+
+        new PrintUtil(System.out).print(handler.getComposite());
+    }
+
+}

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadAllTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java (from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java?view=diff&rev=524338&p1=incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java&r1=522186&p2=incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java&r2=524338
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/ReadTestCase.java Fri Mar 30 17:56:41 2007
@@ -27,6 +27,8 @@
 import org.apache.tuscany.assembly.model.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.assembly.util.PrintUtil;
 import org.apache.tuscany.assembly.util.CompositeUtil;
+import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.policy.model.impl.DefaultPolicyFactory;
 import org.apache.tuscany.scdl.impl.ComponentTypeHandler;
 import org.apache.tuscany.scdl.impl.CompositeHandler;
 import org.apache.tuscany.scdl.impl.ConstrainingTypeHandler;
@@ -43,6 +45,7 @@
 
     XMLReader reader;
     AssemblyFactory assemblyFactory;
+    PolicyFactory policyFactory;
     
     public void setUp() throws Exception {
         reader = XMLReaderFactory.createXMLReader();
@@ -50,16 +53,18 @@
         reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
         
         assemblyFactory = new DefaultAssemblyFactory();
+        policyFactory = new DefaultPolicyFactory();
     }
 
     public void tearDown() throws Exception {
         assemblyFactory = null;
+        policyFactory = null;
         reader = null;
     }
 
     public void testReadComponentType() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("CalculatorImpl.componentType");
-        ComponentTypeHandler handler = new ComponentTypeHandler(assemblyFactory, null);
+        ComponentTypeHandler handler = new ComponentTypeHandler(assemblyFactory, policyFactory, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getComponentType());
@@ -69,7 +74,7 @@
 
     public void testReadConstrainingType() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("CalculatorComponent.constrainingType");
-        ConstrainingTypeHandler handler = new ConstrainingTypeHandler(assemblyFactory, null);
+        ConstrainingTypeHandler handler = new ConstrainingTypeHandler(assemblyFactory, policyFactory, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getConstrainingType());
@@ -85,7 +90,7 @@
 
     public void testReadComposite() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("Calculator.composite");
-        CompositeHandler handler = new CompositeHandler(assemblyFactory, null, null, null);
+        CompositeHandler handler = new CompositeHandler(assemblyFactory, policyFactory, null, null, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getComposite());
@@ -95,7 +100,7 @@
 
     public void testReadCompositeAndWireIt() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("Calculator.composite");
-        CompositeHandler handler = new CompositeHandler(assemblyFactory, null, null, null);
+        CompositeHandler handler = new CompositeHandler(assemblyFactory, policyFactory, null, null, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getComposite());

Copied: incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java (from r522186, incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java?view=diff&rev=524338&p1=incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java&r1=522186&p2=incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java&r2=524338
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/modules/scdl/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/test/java/org/apache/tuscany/scdl/WriteTestCase.java Fri Mar 30 17:56:41 2007
@@ -30,6 +30,8 @@
 
 import org.apache.tuscany.assembly.model.AssemblyFactory;
 import org.apache.tuscany.assembly.model.impl.DefaultAssemblyFactory;
+import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.policy.model.impl.DefaultPolicyFactory;
 import org.apache.tuscany.scdl.impl.ComponentTypeHandler;
 import org.apache.tuscany.scdl.impl.ComponentTypeWriter;
 import org.apache.tuscany.scdl.impl.CompositeHandler;
@@ -47,12 +49,14 @@
  */
 public class WriteTestCase extends TestCase {
 
-    AssemblyFactory factory;
+    AssemblyFactory assemblyFactory;
+    PolicyFactory policyFactory;
     XMLReader reader;
     Transformer transformer;
 
     public void setUp() throws Exception {
-        factory = new DefaultAssemblyFactory();
+        assemblyFactory = new DefaultAssemblyFactory();
+        policyFactory = new DefaultPolicyFactory();
 
         reader = XMLReaderFactory.createXMLReader();
         reader.setFeature("http://xml.org/sax/features/namespaces", true);
@@ -63,7 +67,8 @@
     }
 
     public void tearDown() throws Exception {
-        factory = null;
+        assemblyFactory = null;
+        policyFactory = null;
         reader = null;
         transformer = null;
     }
@@ -76,7 +81,7 @@
 
     public void testWriteComponentType() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("CalculatorImpl.componentType");
-        ComponentTypeHandler handler = new ComponentTypeHandler(factory, null);
+        ComponentTypeHandler handler = new ComponentTypeHandler(assemblyFactory, policyFactory, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getComponentType());
@@ -89,7 +94,7 @@
 
     public void testWriteComposite() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("Calculator.composite");
-        CompositeHandler handler = new CompositeHandler(factory, null, null, null);
+        CompositeHandler handler = new CompositeHandler(assemblyFactory, policyFactory, null, null, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getComposite());
@@ -102,7 +107,7 @@
 
     public void testWriteConstrainingType() throws Exception {
         InputStream is = getClass().getClassLoader().getResourceAsStream("CalculatorComponent.constrainingType");
-        ConstrainingTypeHandler handler = new ConstrainingTypeHandler(factory, null);
+        ConstrainingTypeHandler handler = new ConstrainingTypeHandler(assemblyFactory, policyFactory, null);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(is));
         assertNotNull(handler.getConstrainingType());

Added: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite?view=auto&rev=524338
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite (added)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite Fri Mar 30 17:56:41 2007
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<composite autowire="false"
+	constrainingType="tns:Calculator"
+	local="true"
+	name="tns:TestAllCalculator"
+	policySets="sns:secure" requires="cns:confidentiality"
+	targetNamespace="http://calc"
+	xmlns:tns="http://calc"
+	xmlns="http://www.osoa.org/xmlns/sca/1.0"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.osoa.org/xmlns/sca/1.0 http://www.osoa.org/xmlns/sca/1.0 "
+	xmlns:cns="http://test/confidentiality"
+	xmlns:sns="http://test/secure">
+	
+  <include>tns:TestAllDivide</include>
+  
+  <service name="CalculatorService" promote="CalculatorServiceComponent/CalculatorService"
+	requires="cns:confidentiality" policySets="sns:secure">
+    <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
+    <operation name="add" policySets="sns:secure" requires="cns:confidentiality"/>
+
+    <binding.ws name="CalculatorWS" policySets="sns:secure" port="" requires="cns:confidentiality" uri="http://calc/ws">
+      <operation name="add" policySets="sns:secure" requires="cns:confidentiality"/>
+    </binding.ws>
+
+    <callback policySets="sns:secure" requires="cns:confidentiality">
+      <binding.ws name="CalculatorCallbackWS" policySets="" port="" requires="" uri="http://calc/callback/ws">
+        <operation name="addCallback" policySets="sns:secure" requires="cns:confidentiality"/>
+      </binding.ws>
+    </callback>
+  </service>
+  
+   <component name="CalculatorServiceComponent" autowire="false" constrainingType="tns:CalculatorServiceComponent" policySets="sns:secure" requires="cns:confidentiality">
+   		<service name="CalculatorService" policySets="sns:secure" requires="cns:confidentiality">
+   			<interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
+   		</service>
+
+   		<reference name="addService" target="AddServiceComponent/AddService" autowire="false" multiplicity="1..1" policySets="sns:secure" requires="cns:confidentiality" wiredByImpl="false">
+   			<interface.java interface="calculator.AddService" callbackInterface="calculator.AddCallback"/>
+   		</reference>
+   		<reference name="subtractService" target="SubtractServiceComponent"/>
+   		<reference name="multiplyService"/>
+   		<reference name="divideService" target="DivideServiceComponent"/>
+
+   		<property name="round" type="xsd:boolean" many="false">true</property>
+
+		<implementation.java class="calculator.CalculatorServiceImpl" policySets="" requires=""/>
+   </component>
+
+   <component name="AddServiceComponent">
+   		<service name="AddService">
+   			<interface.java interface="calculator.AddService"/>
+   		</service>
+       <implementation.java class="calculator.AddServiceImpl"/>
+   </component>
+
+   <component name="SubtractServiceComponent">
+       <implementation.java class="calculator.SubtractServiceImpl"/>
+   </component>
+
+   <component name="MultiplyServiceComponent">
+       <implementation.java class="calculator.MultiplyServiceImpl"/>
+   </component>
+
+   <component name="DivideServiceComponent">
+       <implementation.java class="calculator.DivideServiceImpl"/>
+   </component>
+
+  <reference name="MultiplyService" promote="CalculatorServiceComponent/multiplyService" policySets="sns:secure" requires="cns:confidentiality" >
+    <interface.java interface="calculator.MultiplyService" callbackInterface="calculator.MultiplyCallback"/>
+    <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
+
+    <binding.ws name="MultiplyWS" port="" policySets="sns:secure" requires="cns:confidentiality" uri="http://calc/ws">
+      <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
+    </binding.ws>
+
+    <callback policySets="sns:secure" requires="cns:confidentiality" >
+      <binding.ws name="MultiplyCallbackWS" port="" uri="http://calc/callback/ws" policySets="sns:secure" requires="cns:confidentiality" >
+        <operation name="multiplyCallback" policySets="sns:secure" requires="cns:confidentiality" />
+      </binding.ws>
+    </callback>
+  </reference>
+  
+</composite>

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllCalculator.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite?view=auto&rev=524338
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite (added)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite Fri Mar 30 17:56:41 2007
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<composite autowire="false"
+	constrainingType="tns:Calculator"
+	local="true"
+	name="CompleteCalculator"
+	policySets="" requires=""
+	targetNamespace="http://calc"
+	xmlns:tns="http://calc"
+	xmlns="http://www.osoa.org/xmlns/sca/1.0"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.osoa.org/xmlns/sca/1.0 http://www.osoa.org/xmlns/sca/1.0 ">
+	
+  <include>tns:CompleteDivide</include>
+  
+  <service name="CalculatorService" policySets="" promote="CalculatorComponent/CalculatorService" requires="">
+    <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
+    <operation name="add" policySets="" requires=""/>
+
+    <binding.ws name="CalculatorWS" policySets="" port="" requires="" uri="http://calc/ws">
+      <operation name="add" policySets="" requires=""/>
+    </binding.ws>
+
+    <callback policySets="" requires="">
+      <binding.ws name="CalculatorCallbackWS" policySets="" port="" requires="" uri="http://calc/callback/ws">
+        <operation name="addCallback" policySets="" requires=""/>
+      </binding.ws>
+    </callback>
+  </service>
+  
+   <component name="CalculatorServiceComponent" autowire="false" constrainingType="tns:CalculatorServiceComponent" policySets="" requires="">
+   		<service name="CalculatorService" policySets="" requires="">
+   			<interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
+   		</service>
+
+   		<reference name="addService" target="AddServiceComponent" autowire="false" multiplicity="1..1" policySets="" requires="" wiredByImpl="false">
+   			<interface.java interface="calculator.AddService" callbackInterface="calculator.AddCallback"/>
+   		</reference>
+   		<reference name="subtractService" target="SubtractServiceComponent"/>
+   		<reference name="multiplyService"/>
+   		<reference name="divideService" target="DivideServiceComponent"/>
+
+   		<property name="round" type="xsd:boolean" many="false">true</property>
+
+		<implementation.java class="calculator.CalculatorServiceImpl" policySets="" requires=""/>
+   </component>
+
+   <component name="AddServiceComponent">
+       <implementation.java class="calculator.AddServiceImpl"/>
+   </component>
+
+   <component name="SubtractServiceComponent">
+       <implementation.java class="calculator.SubtractServiceImpl"/>
+   </component>
+
+   <component name="MultiplyServiceComponent">
+       <implementation.java class="calculator.MultiplyServiceImpl"/>
+   </component>
+
+   <component name="DivideServiceComponent">
+       <implementation.java class="calculator.DivideServiceImpl"/>
+   </component>
+
+  <reference name="MultiplyService" policySets="" promote="CalculatorComponent/multiplyService" requires="">
+    <interface.java interface="calculator.MultiplyService" callbackInterface="calculator.MultiplyCallback"/>
+    <operation name="multiply" policySets="" requires=""/>
+
+    <binding.ws name="MultiplyWS" policySets="" port="" requires="" uri="http://calc/ws">
+      <operation name="multiply" policySets="" requires=""/>
+    </binding.ws>
+
+    <callback policySets="" requires="">
+      <binding.ws name="MultiplyCallbackWS" policySets="" port="" requires="" uri="http://calc/callback/ws">
+        <operation name="multiplyCallback" policySets="" requires=""/>
+      </binding.ws>
+    </callback>
+  </service>
+  
+</composite>

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/scdl4j/xml/src/test/resources/TestAllDivide.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org