summaryrefslogtreecommitdiffstats
path: root/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder')
-rw-r--r--sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java29
-rw-r--r--sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java5
2 files changed, 33 insertions, 1 deletions
diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java
index 5bbc547932..57c674d623 100644
--- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java
+++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java
@@ -40,7 +40,9 @@ import org.apache.tuscany.sca.assembly.Consumer;
import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.EventBinding;
import org.apache.tuscany.sca.assembly.EventBindingFactory;
+import org.apache.tuscany.sca.assembly.EventTarget;
import org.apache.tuscany.sca.assembly.Implementation;
+import org.apache.tuscany.sca.assembly.Multiplicity;
import org.apache.tuscany.sca.assembly.Producer;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
@@ -1351,6 +1353,17 @@ public abstract class BaseConfigurationBuilderImpl {
for (Producer producer : impl.getProducers()) {
Reference reference = assemblyFactory.createReference();
reference.setName(producer.getName());
+ // Add a pointer back to the Producer... Mike Edwards, 03/11/2008
+ reference.setProducer(producer);
+ // For a Producer, the multiplicity is inherently 0..n Mike Edwards, 03/11/2008
+ reference.setMultiplicity(Multiplicity.ONE_ONE);
+ // Copy through any target attribute Mike Edwards, 03/11/2008
+ for( EventTarget target : producer.getTargets()) {
+ ComponentService targetService = assemblyFactory.createComponentService();
+ targetService.setName( target.getName() );
+ targetService.setUnresolved( true );
+ reference.getTargets().add( targetService );
+ } // end for
reference.setInterfaceContract(producer.getInterfaceContract());
if (producer.getInterfaceContract() != null && producer.getInterfaceContract().getInterface() != null)
producer.getInterfaceContract().getInterface().setRemotable(true);
@@ -1370,6 +1383,8 @@ public abstract class BaseConfigurationBuilderImpl {
for (Consumer consumer : impl.getConsumers()) {
Service service = assemblyFactory.createService();
service.setName(consumer.getName());
+ // Add a pointer back to the consumer... Mike Edwards, 03/11/2008
+ service.setConsumer(consumer);
service.setInterfaceContract(consumer.getInterfaceContract());
service.setType(consumer.getType());
service.getApplicablePolicySets().addAll(consumer.getApplicablePolicySets());
@@ -1388,6 +1403,18 @@ public abstract class BaseConfigurationBuilderImpl {
for (Producer producer : component.getProducers()) {
ComponentReference reference = assemblyFactory.createComponentReference();
reference.setName(producer.getName());
+ // Add a pointer back to the Producer... Mike Edwards, 03/11/2008
+ reference.setProducer(producer);
+ // For a Producer, the multiplicity is inherently 0..n Mike Edwards, 03/11/2008
+ // FIXME (0..n implies an array in the implementation code - can't have this)
+ reference.setMultiplicity(Multiplicity.ONE_ONE);
+ // Copy through any target attribute Mike Edwards, 03/11/2008
+ for( EventTarget target : producer.getTargets()) {
+ ComponentService targetService = assemblyFactory.createComponentService();
+ targetService.setName( target.getName() );
+ targetService.setUnresolved( true );
+ reference.getTargets().add( targetService );
+ } // end for
reference.setInterfaceContract(producer.getInterfaceContract());
if (producer.getInterfaceContract() != null && producer.getInterfaceContract().getInterface() != null)
producer.getInterfaceContract().getInterface().setRemotable(true);
@@ -1408,6 +1435,8 @@ public abstract class BaseConfigurationBuilderImpl {
for (Consumer consumer : component.getConsumers()) {
ComponentService service = assemblyFactory.createComponentService();
service.setName(consumer.getName());
+ // Add a pointer back to the consumer... Mike Edwards, 03/11/2008
+ service.setConsumer(consumer);
service.setInterfaceContract(consumer.getInterfaceContract());
service.setType(consumer.getType());
service.getApplicablePolicySets().addAll(consumer.getApplicablePolicySets());
diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java
index b2f662918c..d0c3080da0 100644
--- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java
+++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java
@@ -430,6 +430,9 @@ class BaseWireBuilderImpl {
// Check that the target component service provides
// a superset of the component reference interface
if (componentReference.getInterfaceContract() == null ||
+ // Handling for Producers and Consumers Mike Edwards, 03/11/2008
+ // TODO - need to validate overlap of event types on producer and consumer
+ ( componentReference.isProducer() && targetComponentService.isConsumer() ) ||
interfaceContractMapper.isCompatible(componentReference.getInterfaceContract(), targetComponentService.getInterfaceContract())) {
Endpoint endpoint = endpointFactory.createEndpoint();
@@ -685,7 +688,7 @@ class BaseWireBuilderImpl {
// the result of calculating the endpoints is either that bindings have been
// configured manually using a URI or that targets have been provided and the
- // endpoint remains unresolved. So all endpoints should be either resved or uresolved.
+ // endpoint remains unresolved. So all endpoints should be either resolved or uresolved.
boolean endpointsRequireAutomaticResolution = false;
for(Endpoint endpoint : endpoints){
endpointsRequireAutomaticResolution = endpoint.isUnresolved();