Author: edwardsmj
Date: Thu Nov  6 08:57:27 2008
New Revision: 711908

URL: http://svn.apache.org/viewvc?rev=711908&view=rev
Log:
Changes to enable consumers and producers to be connected via binding.sca

Modified:
    
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
    
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java

Modified: 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java?rev=711908&r1=711907&r2=711908&view=diff
==============================================================================
--- 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
 (original)
+++ 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
 Thu Nov  6 08:57:27 2008
@@ -43,9 +43,12 @@
 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.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 @@
             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.

Modified: 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=711908&r1=711907&r2=711908&view=diff
==============================================================================
--- 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 (original)
+++ 
tuscany/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 Thu Nov  6 08:57:27 2008
@@ -321,6 +321,8 @@
                                 } // end for
                             } // end if
                             
+                            readConsumerSources( componentConsumer, reader );
+                            
                             //handle extension attributes
                             this.readExtendedAttributes(reader, name, 
componentConsumer, extensionAttributeProcessor);
 
@@ -341,6 +343,8 @@
                                     
compositeConsumer.getEventTypes().addEventType(tokens.nextToken());
                                 } // end for
                             } // end if
+                            
+                            //TODO deal with @source attribute
 
                             String promoted = getString(reader, PROMOTE);
                             if (promoted != null) {
@@ -388,6 +392,8 @@
                                 } // end for
                             } // end if
                             
+                            readProducerTargets( componentProducer, reader );
+                                                        
                             //handle extension attributes
                             this.readExtendedAttributes(reader, name, 
componentProducer, extensionAttributeProcessor);
 
@@ -395,7 +401,7 @@
                             policyProcessor.readPolicies(componentProducer, 
reader);
                             
                         } else {
-                            // Read a <composite><reference>
+                            // Read a <composite><producer>
                             compositeProducer = 
assemblyFactory.createCompositeProducer();
                             contract = componentProducer;
                             compositeProducer.setName(getString(reader, NAME));
@@ -408,6 +414,8 @@
                                 } // end for
                             } // end if
                             
+                            //TODO deal with @target attribute
+                            
                             String promoted = getString(reader, PROMOTE);
                             if (promoted != null) {
                                 String promotedComponentName;


Reply via email to