diff options
Diffstat (limited to '')
13 files changed, 469 insertions, 12 deletions
diff --git a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java index 09ec7664ce..93199e7d6f 100644 --- a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java +++ b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java @@ -40,10 +40,14 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Callback; 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.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.CompositeConsumer; +import org.apache.tuscany.sca.assembly.CompositeProducer; import org.apache.tuscany.sca.assembly.CompositeReference; import org.apache.tuscany.sca.assembly.CompositeService; import org.apache.tuscany.sca.assembly.ConfiguredOperation; @@ -159,6 +163,10 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt ComponentProperty componentProperty = null; CompositeService compositeService = null; CompositeReference compositeReference = null; + ComponentConsumer componentConsumer = null; + ComponentProducer componentProducer = null; + CompositeConsumer compositeConsumer = null; + CompositeProducer compositeProducer = null; Contract contract = null; Wire wire = null; Callback callback = null; @@ -297,6 +305,108 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt composite.getReferences().add(compositeReference); policyProcessor.readPolicies(contract, reader); } + } else if (CONSUMER_QNAME.equals(name)) { + if (component != null) { + + // Read a <component><consumer> + componentConsumer = assemblyFactory.createComponentConsumer(); + contract = componentConsumer; + componentConsumer.setName(getString(reader, NAME)); + + //handle extension attributes + this.readExtendedAttributes(reader, name, componentConsumer, extensionAttributeProcessor); + + component.getConsumers().add(componentConsumer); + policyProcessor.readPolicies(componentConsumer, reader); + + } else { + + // Read a <composite><consumer> + compositeConsumer = assemblyFactory.createCompositeConsumer(); + contract = componentConsumer; + compositeConsumer.setName(getString(reader, NAME)); + + String promoted = getString(reader, PROMOTE); + if (promoted != null) { + String promotedComponentName; + String promotedConsumerName; + int s = promoted.indexOf('/'); + if (s == -1) { + promotedComponentName = promoted; + promotedConsumerName = null; + } else { + promotedComponentName = promoted.substring(0, s); + promotedConsumerName = promoted.substring(s + 1); + } + + Component promotedComponent = assemblyFactory.createComponent(); + promotedComponent.setUnresolved(true); + promotedComponent.setName(promotedComponentName); + compositeConsumer.setPromotedComponent(promotedComponent); + + ComponentConsumer promotedConsumer = assemblyFactory.createComponentConsumer(); + promotedConsumer.setUnresolved(true); + promotedConsumer.setName(promotedConsumerName); + compositeConsumer.setPromotedConsumer(promotedConsumer); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, compositeConsumer, extensionAttributeProcessor); + + composite.getConsumers().add(compositeConsumer); + policyProcessor.readPolicies(compositeConsumer, reader); + } + + } else if (PRODUCER_QNAME.equals(name)) { + if (component != null) { + // Read a <component><reference> + componentProducer = assemblyFactory.createComponentProducer(); + contract = componentProducer; + componentProducer.setName(getString(reader, NAME)); + + //handle extension attributes + this.readExtendedAttributes(reader, name, componentProducer, extensionAttributeProcessor); + + component.getProducers().add(componentProducer); + policyProcessor.readPolicies(componentProducer, reader); + + } else { + // Read a <composite><reference> + compositeProducer = assemblyFactory.createCompositeProducer(); + contract = componentProducer; + compositeProducer.setName(getString(reader, NAME)); + String promoted = getString(reader, PROMOTE); + if (promoted != null) { + String promotedComponentName; + String promotedProducerName; + int s = promoted.indexOf('/'); + if (s == -1) { + promotedComponentName = promoted; + promotedProducerName = null; + } else { + promotedComponentName = promoted.substring(0, s); + promotedProducerName = promoted.substring(s + 1); + } + + Component promotedComponent = assemblyFactory.createComponent(); + promotedComponent.setUnresolved(true); + promotedComponent.setName(promotedComponentName); + compositeProducer.setPromotedComponent(promotedComponent); + + ComponentProducer promotedProducer = assemblyFactory.createComponentProducer(); + promotedProducer.setUnresolved(true); + promotedProducer.setName(promotedProducerName); + compositeProducer.setPromotedProducer(promotedProducer); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, compositeProducer, extensionAttributeProcessor); + + composite.getProducers().add(compositeProducer); + policyProcessor.readPolicies(compositeProducer, reader); + } + + } else if (PROPERTY_QNAME.equals(name)) { if (component != null) { @@ -560,6 +670,12 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt wire = null; } else if (CALLBACK_QNAME.equals(name)) { callback = null; + } else if (CONSUMER_QNAME.equals(name)) { + componentConsumer = null; + compositeConsumer = null; + } else if (PRODUCER_QNAME.equals(name)) { + componentProducer = null; + compositeProducer = null; } break; } @@ -946,6 +1062,8 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt //Resolve composite services and references resolveContracts(composite, composite.getServices(), resolver); resolveContracts(composite, composite.getReferences(), resolver); + resolveContracts(composite, composite.getConsumers(), resolver); + resolveContracts(composite, composite.getProducers(), resolver); // Resolve component implementations, services and references for (Component component : composite.getComponents()) { @@ -971,6 +1089,8 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt //resolve component services and references resolveContracts(component, component.getServices(), resolver); resolveContracts(component, component.getReferences(), resolver); + resolveContracts(component, component.getConsumers(), resolver); + resolveContracts(component, component.getProducers(), resolver); for (ComponentProperty componentProperty : component.getProperties()) { if (componentProperty.getFile() != null) { diff --git a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java index 3bf5a1173b..8f29f4efa4 100644 --- a/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java +++ b/sandbox/event/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java @@ -72,6 +72,12 @@ public interface Constants { String BINDING_SCA = "binding.sca"; QName BINDING_SCA_QNAME = new QName(Constants.SCA10_NS, BINDING_SCA); + String CONSUMER = "consumer"; + QName CONSUMER_QNAME = new QName(SCA10_NS, CONSUMER); + + String PRODUCER = "producer"; + QName PRODUCER_QNAME = new QName(SCA10_NS, PRODUCER); + String NAME = "name"; String TARGET_NAMESPACE = "targetNamespace"; String LOCAL = "local"; diff --git a/sandbox/event/modules/assembly-xsd/src/main/resources/sca-core.xsd b/sandbox/event/modules/assembly-xsd/src/main/resources/sca-core.xsd index b0d94102af..6e4a63d09c 100644 --- a/sandbox/event/modules/assembly-xsd/src/main/resources/sca-core.xsd +++ b/sandbox/event/modules/assembly-xsd/src/main/resources/sca-core.xsd @@ -15,7 +15,9 @@ <choice minOccurs="0" maxOccurs="unbounded"> <element name="service" type="sca:ComponentService" /> <element name="reference" type="sca:ComponentReference"/> - <element name="property" type="sca:Property"/> + <element name="property" type="sca:Property"/> + <element name="producer" type="sca:ComponentProducer"/> + <element name="consumer" type="sca:ComponentConsumer"/> </choice> <!-- <any namespace="##other" processContents="lax" minOccurs="0" @@ -34,7 +36,9 @@ <element name="service" type="sca:Service"/> <element name="property" type="sca:Property"/> <element name="component" type="sca:Component"/> - <element name="reference" type="sca:Reference"/> + <element name="reference" type="sca:Reference"/> + <element name="producer" type="sca:Producer"/> + <element name="consumer" type="sca:Consumer"/> <element name="wire" type="sca:Wire"/> <!-- <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> --> </choice> @@ -147,6 +151,41 @@ </complexContent> </complexType> + + <complexType name="Producer"> + <sequence> + <element name="operation" type="sca:Operation" minOccurs="0" + maxOccurs="unbounded" /> + <choice minOccurs="0" maxOccurs="unbounded"> + <element ref="sca:binding" /> + <any namespace="##other" processContents="lax"/> + </choice> + </sequence> + <attribute name="name" type="NCName" use="required" /> + <attribute name="promote" type="anyURI" use="required" /> + <attribute name="target" type="sca:listOfAnyURIs" use="optional" /> + <attribute name="requires" type="sca:listOfQNames" use="optional" /> + <attribute name="policySets" type="sca:listOfQNames" use="optional"/> + <anyAttribute namespace="##any" processContents="lax" /> + </complexType> + + <complexType name="Consumer"> + <sequence> + <element name="operation" type="sca:Operation" minOccurs="0" + maxOccurs="unbounded" /> + <choice minOccurs="0" maxOccurs="unbounded"> + <element ref="sca:binding" /> + <any namespace="##other" processContents="lax"/> + </choice> + </sequence> + <attribute name="name" type="NCName" use="required" /> + <attribute name="promote" type="anyURI" use="required" /> + <attribute name="source" type="sca:listOfAnyURIs" use="optional" /> + <attribute name="requires" type="sca:listOfQNames" use="optional" /> + <attribute name="policySets" type="sca:listOfQNames" use="optional"/> + <anyAttribute namespace="##any" processContents="lax" /> + </complexType> + <element name="binding" type="sca:Binding" abstract="true"/> <complexType name="Binding" abstract="true"> <sequence> @@ -190,7 +229,9 @@ <choice minOccurs="0" maxOccurs="unbounded"> <element name="service" type="sca:ComponentService"/> <element name="reference" type="sca:ComponentReference"/> - <element name="property" type="sca:PropertyValue" /> + <element name="property" type="sca:PropertyValue" /> + <element name="producer" type="sca:ComponentProducer"/> + <element name="consumer" type="sca:ComponentConsumer"/> </choice> <!-- <any namespace="##other" processContents="lax" minOccurs="0" @@ -252,6 +293,43 @@ use="optional"/> <anyAttribute namespace="##any" processContents="lax" /> </complexType> + + <complexType name="ComponentProducer"> + <sequence> + <element name="operation" type="sca:Operation" minOccurs="0" + maxOccurs="unbounded" /> + <choice minOccurs="0" maxOccurs="unbounded"> + <element ref="sca:binding" /> + <any namespace="##other" processContents="lax"/> + </choice> + </sequence> + <attribute name="name" type="NCName" use="required"/> + <attribute name="target" type="sca:listOfAnyURIs" use="optional" /> + <attribute name="requires" type="sca:listOfQNames" + use="optional"/> + <attribute name="policySets" type="sca:listOfQNames" + use="optional"/> + <anyAttribute namespace="##any" processContents="lax"/> + </complexType> + + <complexType name="ComponentConsumer"> + <sequence> + <element name="operation" type="sca:Operation" minOccurs="0" + maxOccurs="unbounded" /> + <choice minOccurs="0" maxOccurs="unbounded"> + <element ref="sca:binding" /> + <any namespace="##other" processContents="lax"/> + </choice> + </sequence> + <attribute name="name" type="NCName" use="required"/> + <attribute name="source" type="sca:listOfAnyURIs" use="optional" /> + <attribute name="requires" type="sca:listOfQNames" + use="optional"/> + <attribute name="policySets" type="sca:listOfQNames" + use="optional"/> + <anyAttribute namespace="##any" processContents="lax"/> + </complexType> + <element name="implementation" type="sca:Implementation" abstract="true" /> diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java index 8a4fc6dfda..04fd754427 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java @@ -81,6 +81,20 @@ public interface AssemblyFactory { * @return a new component service */ ComponentService createComponentService(); + + /** + * Create a new component producer. + * + * @return a new component producer + */ + ComponentProducer createComponentProducer(); + + /** + * Create a new component consumer. + * + * @return a new component consumer + */ + ComponentConsumer createComponentConsumer(); /** * Create a new component type @@ -109,6 +123,21 @@ public interface AssemblyFactory { * @return a new composite service */ CompositeService createCompositeService(); + + + /** + * Create a new composite producer. + * + * @return a new composite producer + */ + CompositeProducer createCompositeProducer(); + + /** + * Create a new composite consumer. + * + * @return a new composite consumer + */ + CompositeConsumer createCompositeConsumer(); /** * Create a new constraining type. @@ -137,6 +166,21 @@ public interface AssemblyFactory { * @return a new service */ Service createService(); + + + /** + * Create a new producer. + * + * @return a new producer + */ + Producer createProducer(); + + /** + * Create a new consumer. + * + * @return a new consumer + */ + Consumer createConsumer(); /** * Create a new wire. diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java index 8e1943224c..b6bc55c7bd 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java @@ -85,6 +85,20 @@ public interface Component extends Base, Extensible, PolicySetAttachPoint, Clone * @return a list of services exposed by the component */ List<ComponentService> getServices(); + + /** + * Returns a list of producers used by the component. + * + * @return a list of producers used by the component + */ + List<ComponentProducer> getProducers(); + + /** + * Returns a list of consumers exposed by the component. + * + * @return a list of consumers exposed by the component + */ + List<ComponentConsumer> getConsumers(); /** * Returns a list of properties for the component. diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java index e1ea65ea39..5f8cba585d 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java @@ -53,6 +53,21 @@ public interface ComponentType extends Base { */ List<Reference> getReferences(); + + /** + * Returns a list of consumers that are offered. + * + * @return a list of consumers that are offered + */ + List<Consumer> getConsumers(); + + /** + * Returns the list of producer types that are used. + * + * @return the list of producer types that are used + */ + List<Producer> getProducers(); + /** * Returns the list of properties that can be set. * 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); + } + } + } } diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java index 0643421a45..115051fa9a 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java @@ -24,6 +24,7 @@ import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.EventBindingFactory; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; @@ -45,10 +46,11 @@ public class ComponentConfigurationBuilderImpl extends BaseConfigurationBuilderI SCADefinitions policyDefinitions, Monitor monitor) { super(assemblyFactory, scaBindingFactory, - null, null, + null, null, null, interfaceContractMapper, policyDefinitions, monitor); } + @Deprecated public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, DocumentBuilderFactory documentBuilderFactory, @@ -56,10 +58,25 @@ public class ComponentConfigurationBuilderImpl extends BaseConfigurationBuilderI InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - super(assemblyFactory, scaBindingFactory, + super(assemblyFactory, scaBindingFactory, null, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); } + + public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + EventBindingFactory eventBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + + super(assemblyFactory, scaBindingFactory, eventBindingFactory, + documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); + + } public void build(Composite composite) throws CompositeBuilderException { configureComponents(composite); diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java index 85af173c0d..3f9c6e28b8 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java @@ -24,6 +24,7 @@ import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.EventBindingFactory; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; @@ -45,10 +46,11 @@ public class CompositeBindingURIBuilderImpl extends BaseConfigurationBuilderImpl SCADefinitions policyDefinitions, Monitor monitor) { super(assemblyFactory, scaBindingFactory, - null, null, + null, null, null, interfaceContractMapper, policyDefinitions, monitor); } + @Deprecated public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, DocumentBuilderFactory documentBuilderFactory, @@ -56,10 +58,24 @@ public class CompositeBindingURIBuilderImpl extends BaseConfigurationBuilderImpl InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - super(assemblyFactory, scaBindingFactory, + super(assemblyFactory, scaBindingFactory, null, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); } + + public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + EventBindingFactory eventBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + + super(assemblyFactory, scaBindingFactory, eventBindingFactory, + documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); + } public void build(Composite composite) throws CompositeBuilderException { configureBindingURIsAndNames(composite); diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java index 282fe032ba..2840985e0f 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java @@ -27,6 +27,7 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.DefaultEndpointFactory; import org.apache.tuscany.sca.assembly.EndpointFactory; +import org.apache.tuscany.sca.assembly.EventBindingFactory; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; @@ -79,7 +80,7 @@ public class CompositeBuilderImpl implements CompositeBuilder { InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - this(assemblyFactory, endpointFactory, scaBindingFactory, intentAttachPointTypeFactory, + this(assemblyFactory, endpointFactory, scaBindingFactory, null, intentAttachPointTypeFactory, null, null, interfaceContractMapper, policyDefinitions, monitor); } @@ -100,7 +101,7 @@ public class CompositeBuilderImpl implements CompositeBuilder { IntentAttachPointTypeFactory intentAttachPointTypeFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, + this(assemblyFactory, null, scaBindingFactory, null, intentAttachPointTypeFactory, null, null, interfaceContractMapper, null, monitor); } @@ -117,12 +118,13 @@ public class CompositeBuilderImpl implements CompositeBuilder { */ public CompositeBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, + EventBindingFactory eventBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, + this(assemblyFactory, null, scaBindingFactory, eventBindingFactory, intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, null, monitor); } @@ -140,6 +142,7 @@ public class CompositeBuilderImpl implements CompositeBuilder { public CompositeBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, SCABindingFactory scaBindingFactory, + EventBindingFactory eventBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, @@ -156,10 +159,10 @@ public class CompositeBuilderImpl implements CompositeBuilder { componentReferencePromotionWireBuilder = new ComponentReferencePromotionWireBuilderImpl(assemblyFactory, endpointFactory, monitor); compositeReferenceWireBuilder = new CompositeReferenceWireBuilderImpl(assemblyFactory, endpointFactory, monitor); compositeCloneBuilder = new CompositeCloneBuilderImpl(monitor); - componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); + componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, eventBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); compositeServiceConfigurationBuilder = new CompositeServiceConfigurationBuilderImpl(assemblyFactory); compositeReferenceConfigurationBuilder = new CompositeReferenceConfigurationBuilderImpl(assemblyFactory); - compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); + compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, eventBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); componentServicePromotionBuilder = new ComponentServicePromotionBuilderImpl(assemblyFactory); compositeServicePromotionBuilder = new CompositeServicePromotionBuilderImpl(assemblyFactory); compositePromotionBuilder = new CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java index 016a9a5b05..e3d9355930 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java @@ -25,15 +25,21 @@ import org.apache.tuscany.sca.assembly.AbstractService; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Callback; 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.ComponentProperty; import org.apache.tuscany.sca.assembly.ComponentReference; 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.CompositeConsumer; +import org.apache.tuscany.sca.assembly.CompositeProducer; import org.apache.tuscany.sca.assembly.CompositeReference; import org.apache.tuscany.sca.assembly.CompositeService; import org.apache.tuscany.sca.assembly.ConfiguredOperation; import org.apache.tuscany.sca.assembly.ConstrainingType; +import org.apache.tuscany.sca.assembly.Consumer; +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.Service; @@ -77,6 +83,15 @@ public abstract class AssemblyFactoryImpl implements AssemblyFactory { public ComponentService createComponentService() { return new ComponentServiceImpl(); } + + + public ComponentProducer createComponentProducer() { + return new ComponentProducerImpl(); + } + + public ComponentConsumer createComponentConsumer() { + return new ComponentConsumerImpl(); + } public ComponentType createComponentType() { return new ComponentTypeImpl(); @@ -93,6 +108,15 @@ public abstract class AssemblyFactoryImpl implements AssemblyFactory { public CompositeService createCompositeService() { return new CompositeServiceImpl(); } + + + public CompositeProducer createCompositeProducer() { + return new CompositeProducerImpl(); + } + + public CompositeConsumer createCompositeConsumer() { + return new CompositeConsumerImpl(); + } public ConstrainingType createConstrainingType() { return new ConstrainingTypeImpl(); @@ -109,6 +133,14 @@ public abstract class AssemblyFactoryImpl implements AssemblyFactory { public Service createService() { return new ServiceImpl(); } + + public Producer createProducer() { + return new ProducerImpl(); + } + + public Consumer createConsumer() { + return new ConsumerImpl(); + } public Wire createWire() { return new WireImpl(); diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java index 34429a6703..59a4237b9f 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.List; 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.ComponentProperty; import org.apache.tuscany.sca.assembly.ComponentReference; import org.apache.tuscany.sca.assembly.ComponentService; @@ -46,6 +48,8 @@ public class ComponentImpl extends ExtensibleImpl implements Component, Cloneabl private List<ComponentProperty> properties = new ArrayList<ComponentProperty>(); private List<ComponentReference> references = new ArrayList<ComponentReference>(); private List<ComponentService> services = new ArrayList<ComponentService>(); + private List<ComponentProducer> producers = new ArrayList<ComponentProducer>(); + private List<ComponentConsumer> consumers = new ArrayList<ComponentConsumer>(); private List<Intent> requiredIntents = new ArrayList<Intent>(); private List<PolicySet> policySets = new ArrayList<PolicySet>(); private Boolean autowire; @@ -109,6 +113,14 @@ public class ComponentImpl extends ExtensibleImpl implements Component, Cloneabl return services; } + public List<ComponentProducer> getProducers() { + return producers; + } + + public List<ComponentConsumer> getConsumers() { + return consumers; + } + public void setConstrainingType(ConstrainingType constrainingType) { this.constrainingType = constrainingType; } diff --git a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java index bbe665d52f..189e13ecba 100644 --- a/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java +++ b/sandbox/event/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java @@ -23,6 +23,8 @@ import java.util.List; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.assembly.ConstrainingType; +import org.apache.tuscany.sca.assembly.Consumer; +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.Service; @@ -38,6 +40,9 @@ public class ComponentTypeImpl extends ExtensibleImpl implements ComponentType, private List<Property> properties = new ArrayList<Property>(); private List<Reference> references = new ArrayList<Reference>(); private List<Service> services = new ArrayList<Service>(); + private List<Producer> producers = new ArrayList<Producer>(); + private List<Consumer> consumers = new ArrayList<Consumer>(); + /** * Constructs a new component type. */ @@ -86,6 +91,15 @@ public class ComponentTypeImpl extends ExtensibleImpl implements ComponentType, public List<Service> getServices() { return services; } + + + public List<Producer> getProducers() { + return producers; + } + + public List<Consumer> getConsumers() { + return consumers; + } public void setConstrainingType(ConstrainingType constrainingType) { this.constrainingType = constrainingType; |