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