summaryrefslogtreecommitdiffstats
path: root/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java')
-rw-r--r--sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
index 06b208540a..0fd745ce0e 100644
--- a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
+++ b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
@@ -43,9 +43,12 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Base;
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.ComponentConsumer;
+import org.apache.tuscany.sca.assembly.ComponentProducer;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.ComponentType;
import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.Consumer;
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
import org.apache.tuscany.sca.assembly.ConstrainingType;
import org.apache.tuscany.sca.assembly.Contract;
@@ -53,6 +56,7 @@ import org.apache.tuscany.sca.assembly.Extensible;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Multiplicity;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
+import org.apache.tuscany.sca.assembly.Producer;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
@@ -251,6 +255,44 @@ abstract class BaseAssemblyProcessor extends BaseStAXArtifactProcessor implement
reference.setMultiplicity(Multiplicity.ZERO_N);
}
}
+
+ /**
+ * Read list of producer targets
+ * @param producer - the producer
+ * @param reader - XMLStreamReader for the producer element
+ */
+ protected void readProducerTargets(Producer producer, XMLStreamReader reader) {
+ String value = reader.getAttributeValue(null, TARGET);
+ ComponentConsumer target = null;
+ // TODO - need to deal with a target that is a Channel
+ if (value != null) {
+ for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
+ target = assemblyFactory.createComponentConsumer();
+ target.setUnresolved(true);
+ target.setName(tokens.nextToken());
+ producer.getTargets().add(target);
+ }
+ }
+ } // end readProducerTargets
+
+ /**
+ * Read list of consumer sources
+ * @param producer - the consumer
+ * @param reader - XMLStreamReader for the consumer element
+ */
+ protected void readConsumerSources(Consumer consumer, XMLStreamReader reader) {
+ String value = reader.getAttributeValue(null, SOURCE);
+ ComponentProducer source = null;
+ // TODO - need to deal with a source that is a Channel
+ if (value != null) {
+ for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
+ source = assemblyFactory.createComponentProducer();
+ source.setUnresolved(true);
+ source.setName(tokens.nextToken());
+ consumer.getSources().add(source);
+ }
+ }
+ } // end readConsumerSources
/**
* Returns the value of a constrainingType attribute.