summaryrefslogtreecommitdiffstats
path: root/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java')
-rw-r--r--sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java86
1 files changed, 86 insertions, 0 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 6f856986ad..0a4bd1939e 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
@@ -36,8 +36,12 @@ import org.apache.tuscany.sca.assembly.ComponentProperty;
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.Composite;
+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.Implementation;
+import org.apache.tuscany.sca.assembly.Producer;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.SCABinding;
@@ -67,6 +71,7 @@ public abstract class BaseConfigurationBuilderImpl {
private AssemblyFactory assemblyFactory;
private SCABindingFactory scaBindingFactory;
+ private EventBindingFactory eventBindingFactory;
private Monitor monitor;
private InterfaceContractMapper interfaceContractMapper;
private SCADefinitions policyDefinitions;
@@ -75,6 +80,7 @@ public abstract class BaseConfigurationBuilderImpl {
protected BaseConfigurationBuilderImpl(AssemblyFactory assemblyFactory,
SCABindingFactory scaBindingFactory,
+ EventBindingFactory eventBindingFactory,
DocumentBuilderFactory documentBuilderFactory,
TransformerFactory transformerFactory,
InterfaceContractMapper interfaceContractMapper,
@@ -82,6 +88,7 @@ public abstract class BaseConfigurationBuilderImpl {
Monitor monitor) {
this.assemblyFactory = assemblyFactory;
this.scaBindingFactory = scaBindingFactory;
+ this.eventBindingFactory = eventBindingFactory;
this.documentBuilderFactory = documentBuilderFactory;
this.transformerFactory = transformerFactory;
this.interfaceContractMapper = interfaceContractMapper;
@@ -110,6 +117,8 @@ public abstract class BaseConfigurationBuilderImpl {
*/
private void configureComponents(Composite composite, String uri) {
String parentURI = uri;
+
+ configureProducersAndConsumers(composite);
// Process nested composites recursively
for (Component component : composite.getComponents()) {
@@ -1334,4 +1343,81 @@ public abstract class BaseConfigurationBuilderImpl {
return URI.create(baseURI.toString() + str).normalize();
}
+ private void configureProducersAndConsumers(Composite composite) {
+
+ for (Component component : composite.getComponents()) {
+ Implementation impl = component.getImplementation();
+ for (Producer producer : impl.getProducers()) {
+ Reference reference = assemblyFactory.createReference();
+ reference.setName(producer.getName());
+ reference.setInterfaceContract(producer.getInterfaceContract());
+ if (producer.getInterfaceContract() != null && producer.getInterfaceContract().getInterface() != null)
+ producer.getInterfaceContract().getInterface().setRemotable(true);
+ reference.setType(producer.getType());
+ reference.getApplicablePolicySets().addAll(producer.getApplicablePolicySets());
+ reference.getPolicySets().addAll(producer.getPolicySets());
+ reference.getRequiredIntents().addAll(producer.getRequiredIntents());
+ for (Binding binding : producer.getBindings()) {
+ EventBinding eventBinding = eventBindingFactory.createEventBinding();
+ eventBinding.setBaseBinding(binding);
+ reference.getBindings().add(binding);// FIXME: remove
+ reference.getBindings().add(eventBinding);
+ }
+ impl.getReferences().add(reference);
+ }
+
+ for (Producer producer : component.getProducers()) {
+ ComponentReference reference = assemblyFactory.createComponentReference();
+ reference.setName(producer.getName());
+ reference.setInterfaceContract(producer.getInterfaceContract());
+ if (producer.getInterfaceContract() != null && producer.getInterfaceContract().getInterface() != null)
+ producer.getInterfaceContract().getInterface().setRemotable(true);
+ reference.setType(producer.getType());
+ reference.getApplicablePolicySets().addAll(producer.getApplicablePolicySets());
+ reference.getPolicySets().addAll(producer.getPolicySets());
+ reference.getRequiredIntents().addAll(producer.getRequiredIntents());
+ for (Binding binding : producer.getBindings()) {
+ EventBinding eventBinding = eventBindingFactory.createEventBinding();
+ eventBinding.setBaseBinding(binding);
+ reference.getBindings().add(binding);// FIXME: remove
+ reference.getBindings().add(eventBinding);
+ }
+ component.getReferences().add(reference);
+ }
+
+ for (Consumer consumer : impl.getConsumers()) {
+ Service service = assemblyFactory.createService();
+ service.setName(consumer.getName());
+ service.setInterfaceContract(consumer.getInterfaceContract());
+ service.setType(consumer.getType());
+ service.getApplicablePolicySets().addAll(consumer.getApplicablePolicySets());
+ service.getPolicySets().addAll(consumer.getPolicySets());
+ service.getRequiredIntents().addAll(consumer.getRequiredIntents());
+ for (Binding binding : consumer.getBindings()) {
+ EventBinding eventBinding = eventBindingFactory.createEventBinding();
+ eventBinding.setBaseBinding(binding);
+ service.getBindings().add(binding);// FIXME: remove
+ service.getBindings().add(eventBinding);
+ }
+ impl.getServices().add(service);
+ }
+
+ for (Consumer consumer : component.getConsumers()) {
+ ComponentService service = assemblyFactory.createComponentService();
+ service.setName(consumer.getName());
+ service.setInterfaceContract(consumer.getInterfaceContract());
+ service.setType(consumer.getType());
+ service.getApplicablePolicySets().addAll(consumer.getApplicablePolicySets());
+ service.getPolicySets().addAll(consumer.getPolicySets());
+ service.getRequiredIntents().addAll(consumer.getRequiredIntents());
+ for (Binding binding : consumer.getBindings()) {
+ EventBinding eventBinding = eventBindingFactory.createEventBinding();
+ eventBinding.setBaseBinding(binding);
+ service.getBindings().add(binding); // FIXME: remove
+ service.getBindings().add(eventBinding);
+ }
+ component.getServices().add(service);
+ }
+ }
+ }
}