You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/04/10 21:48:43 UTC

svn commit: r527263 - in /incubator/tuscany/java/sca/modules/assembly-xml/src: main/java/org/apache/tuscany/assembly/xml/impl/ test/java/org/apache/tuscany/assembly/xml/

Author: svkrish
Date: Tue Apr 10 12:48:43 2007
New Revision: 527263

URL: http://svn.apache.org/viewvc?view=rev&rev=527263
Log:
enhanced property, reference, service defn. reading and validation

Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/assembly/xml/ReadAllTestCase.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java?view=diff&rev=527263&r1=527262&r2=527263
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java Tue Apr 10 12:48:43 2007
@@ -43,12 +43,14 @@
 import org.apache.tuscany.assembly.AbstractReference;
 import org.apache.tuscany.assembly.AssemblyFactory;
 import org.apache.tuscany.assembly.Binding;
+import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.assembly.ComponentType;
 import org.apache.tuscany.assembly.ConstrainingType;
 import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.assembly.Implementation;
 import org.apache.tuscany.assembly.Multiplicity;
 import org.apache.tuscany.assembly.Property;
+import org.apache.tuscany.assembly.Reference;
 import org.apache.tuscany.assembly.xml.Constants;
 import org.apache.tuscany.interfacedef.Interface;
 import org.apache.tuscany.interfacedef.Operation;
@@ -161,6 +163,9 @@
      */
     protected boolean getBoolean(XMLStreamReader reader, String name) {
         String value = reader.getAttributeValue(null, name);
+        if (value == null) {
+            value = Boolean.toString(false);
+        }
         return Boolean.valueOf(value);
     }
 
@@ -213,7 +218,7 @@
             }
         }
     }
-
+    
     /**
      * Reads policy intents and policy sets.
      * @param attachPoint
@@ -246,7 +251,25 @@
             }
         }
     }
-
+    
+    /**
+     * Read list of refence targets
+     * @param reference
+     * @param reader
+     */
+    protected void readTargets(Reference reference, XMLStreamReader reader) {
+        String value = reader.getAttributeValue(null, Constants.TARGET);
+        ComponentService target = null;
+        if (value != null) {
+            for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
+                target = factory.createComponentService();
+                target.setUnresolved(true);
+                target.setName(tokens.nextToken());
+                reference.getTargets().add(target);
+            }
+        }
+    }
+    
     /**
      * Read a multiplicity attribute.
      * @param reference
@@ -296,7 +319,7 @@
         prop.setXSDType(getQName(reader, "type"));
         try {
             Document value = readPropertyValue(reader, prop.getXSDType());
-            prop.setDefaultValue(value);
+            prop.setValue(value);
         } catch (ParserConfigurationException e) {
             throw new ContributionReadException(e);
         }

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java?view=diff&rev=527263&r1=527262&r2=527263
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java Tue Apr 10 12:48:43 2007
@@ -22,12 +22,16 @@
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.tuscany.assembly.AssemblyFactory;
+import org.apache.tuscany.assembly.Base;
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.Callback;
 import org.apache.tuscany.assembly.ComponentService;
@@ -109,19 +113,13 @@
                             readPolicies(service, reader);
     
                         } else if (Constants.REFERENCE_QNAME.equals(name)) {
-    
                             // Read a <reference>
                             reference = factory.createReference();
                             contract = reference;
                             reference.setName(getString(reader, Constants.NAME));
+                            reference.setWiredByImpl(getBoolean(reader, Constants.WIRED_BY_IMPL));
                             readMultiplicity(reference, reader);
-    
-                            // TODO support multivalued attribute
-                            ComponentService target = factory.createComponentService();
-                            target.setUnresolved(true);
-                            target.setName(getString(reader, Constants.TARGET));
-                            reference.getTargets().add(target);
-    
+                            readTargets(reference, reader);
                             componentType.getReferences().add(reference);
                             readPolicies(reference, reader);
     
@@ -198,6 +196,21 @@
             throw new ContributionReadException(e);
         }
         return componentType;
+    }
+    
+    public void validate(ComponentType componentType, List<Base> problems) {
+        if (problems == null) {
+            problems = new ArrayList<Base>();
+        }
+        validatePropertyDefinitions(componentType.getProperties(), problems);
+    }
+    
+    public void validatePropertyDefinitions(List<Property> properties, List<Base> problems) {
+        for(Property aProperty : properties) {
+            if (aProperty.isMustSupply() && aProperty.getValue() != null) {
+                problems.add(aProperty);
+            }
+        }
     }
 
     public void write(ComponentType componentType, XMLStreamWriter writer) throws ContributionWriteException {

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java?view=diff&rev=527263&r1=527262&r2=527263
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java Tue Apr 10 12:48:43 2007
@@ -22,6 +22,8 @@
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 
+import java.util.StringTokenizer;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -47,6 +49,7 @@
 import org.apache.tuscany.assembly.Wire;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.assembly.util.CompositeUtil;
+import org.apache.tuscany.assembly.xml.Constants;
 import org.apache.tuscany.interfacedef.Interface;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.policy.PolicyFactory;
@@ -69,7 +72,7 @@
      * Construct a new composite processor
      * @param assemblyFactory
      * @param policyFactory
-     * @param extensionProcessor
+     * @param extensionProcessor 
      */
     public CompositeProcessor(AssemblyFactory factory, PolicyFactory policyFactory, StAXArtifactProcessor extensionProcessor) {
         super(factory, policyFactory, extensionProcessor);
@@ -151,45 +154,36 @@
     
                         } else if (REFERENCE_QNAME.equals(name)) {
                             if (component != null) {
-    
                                 // Read a <component><reference>
                                 componentReference = factory.createComponentReference();
                                 contract = componentReference;
                                 componentReference.setName(getString(reader, NAME));
                                 readMultiplicity(componentReference, reader);
-    
-                                // TODO support multivalued attribute
-                                ComponentService target = factory.createComponentService();
-                                target.setUnresolved(true);
-                                target.setName(getString(reader, TARGET));
-                                componentReference.getTargets().add(target);
-    
+                                componentReference.setAutowire(getBoolean(reader, AUTOWIRE));
+                                readTargets(componentReference, reader);
+                                componentReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL));
                                 component.getReferences().add(componentReference);
                                 readPolicies(contract, reader);
                             } else {
-    
                                 // Read a <composite><reference>
                                 compositeReference = factory.createCompositeReference();
                                 contract = compositeReference;
                                 compositeReference.setName(getString(reader, NAME));
                                 readMultiplicity(compositeReference, reader);
-    
-                                // TODO support multivalued attribute
-                                ComponentReference promoted = factory.createComponentReference();
-                                promoted.setUnresolved(true);
-                                promoted.setName(getString(reader, PROMOTE));
-                                compositeReference.getPromotedReferences().add(promoted);
-    
+                                readTargets(compositeReference, reader);
+                                readPromotes(compositeReference, reader);
+                                compositeReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL));
                                 composite.getReferences().add(compositeReference);
                                 readPolicies(contract, reader);
                             }
     
                         } else if (PROPERTY_QNAME.equals(name)) {
                             if (component != null) {
-    
                                 // Read a <component><property>
                                 componentProperty = factory.createComponentProperty();
                                 property = componentProperty;
+                                componentProperty.setSource(getString(reader, SOURCE));
+                                componentProperty.setFile(getString(reader, FILE));
                                 readPolicies(property, reader);
                                 readProperty(componentProperty, reader);
                                 component.getProperties().add(componentProperty);
@@ -497,5 +491,23 @@
     
     public Class<Composite> getModelType() {
         return Composite.class;
+    }
+    
+    /**
+     * Read list of refence targets
+     * @param reference
+     * @param reader
+     */
+    protected void readPromotes(CompositeReference reference, XMLStreamReader reader) {
+        String value = reader.getAttributeValue(null, Constants.PROMOTE);
+        ComponentReference promoted = null;
+        if (value != null) {
+            for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
+                promoted = factory.createComponentReference();
+                promoted.setUnresolved(true);
+                promoted.setName(tokens.nextToken());
+                reference.getPromotedReferences().add(promoted);
+            }
+        }
     }
 }

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/assembly/xml/ReadAllTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/assembly/xml/ReadAllTestCase.java?view=diff&rev=527263&r1=527262&r2=527263
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/assembly/xml/ReadAllTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/assembly/xml/ReadAllTestCase.java Tue Apr 10 12:48:43 2007
@@ -121,7 +121,7 @@
 
         Property property = calcComponent.getProperties().get(0);
         assertEquals(property.getName(), "round");
-        Document doc = (Document) property.getDefaultValue();
+        Document doc = (Document) property.getValue();
         Element element = doc.getDocumentElement();
         String value = element.getTextContent();
         assertEquals(value, "true");



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