I noticed some changes in the modelResolvers to give access to definitions.xml to JMS binding. Could we just instantiate a unresolved model or a artifact and delegate resolution to the model resolver to properly get access to resolved definitions.xml ?
On Wed, Aug 27, 2008 at 3:09 AM, <[email protected]> wrote: > Author: antelder > Date: Wed Aug 27 04:09:51 2008 > New Revision: 689448 > > URL: http://svn.apache.org/viewvc?rev=689448&view=rev > Log: > Updates to get the JMS binding requestConnection and responseConnection > attributes working using bindings defined in the definitions.xml file. This > is not the final code for this as the definitions.xml processing is being > refactored (by Simon Laws?) as part of TUSCANY-2499, this shows the type of > function that the JMS binding will need as part of that work. Two parts that > need work are that SCADefinitions.getBindings currently returns a list of > Objects not Bindings as otherwise theres a cyclic dependency in the maven > modules, and there needs to be a way for bindings to get at the > SCADefinitions which is currently being done by getting at the contribution > processing internals with ExtensibleModelResolver.getDefaultModelResolver and > DefaultModelResolver.getModels. > > Modified: > > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java > > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java > > tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java > > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java > > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java > > tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java > > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitions.java > > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/impl/SCADefinitionsImpl.java > > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java > > Modified: > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java > (original) > +++ > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java > Wed Aug 27 04:09:51 2008 > @@ -102,6 +102,10 @@ > private Map<String, Long> operationJMSTimeToLives = new HashMap<String, > Long>(); > private Map<String, Integer> operationJMSPriorities = new HashMap<String, > Integer>(); > private String jmsSelector; > + private String requestConnectionName; > + private String responseConnectionName; > + private JMSBinding requestConnectionBinding; > + private JMSBinding responseConnectionBinding; > > public JMSBinding() { > super(); > @@ -183,7 +187,11 @@ > } > > public String getDestinationName() { > - return destinationName; > + if (requestConnectionBinding != null && > requestConnectionBinding.getDestinationName() != null) { > + return requestConnectionBinding.getDestinationName(); > + } else { > + return destinationName; > + } > } > > public void setDestinationName(String destinationName) { > @@ -207,7 +215,11 @@ > } > > public String getConnectionFactoryName() { > - return connectionFactoryName; > + if (requestConnectionBinding != null && > requestConnectionBinding.getConnectionFactoryName() != null) { > + return requestConnectionBinding.getConnectionFactoryName(); > + } else { > + return connectionFactoryName; > + } > } > > public void setConnectionFactoryName(String connectionFactoryName) { > @@ -239,7 +251,11 @@ > } > > public String getResponseDestinationName() { > - return this.responseDestinationName; > + if (requestConnectionBinding != null && > requestConnectionBinding.getResponseDestinationName() != null) { > + return requestConnectionBinding.getResponseDestinationName(); > + } else { > + return this.responseDestinationName; > + } > } > > public void setResponseDestinationName(String name) { > @@ -263,7 +279,11 @@ > } > > public String getResponseConnectionFactoryName() { > - return responseConnectionFactoryName; > + if (requestConnectionBinding != null && > requestConnectionBinding.getResponseConnectionFactoryName() != null) { > + return > requestConnectionBinding.getResponseConnectionFactoryName(); > + } else { > + return responseConnectionFactoryName; > + } > } > > public void setResponseConnectionFactoryName(String > connectionFactoryName) { > @@ -483,4 +503,32 @@ > this.jmsSelector = jmsSelector; > } > > + public String getRequestConnectionName() { > + return requestConnectionName; > + } > + > + public void setRequestConnectionName(String requestConnectionName) { > + this.requestConnectionName = requestConnectionName; > + } > + > + public void setResponseConnectionName(String responseConnectionName) { > + this.responseConnectionName = responseConnectionName; > + } > + public String getResponseConnectionName() { > + return responseConnectionName; > + } > + > + public void setRequestConnectionBinding(JMSBinding binding) { > + this.requestConnectionBinding = binding; > + } > + public JMSBinding getRequestConnectionBinding() { > + return requestConnectionBinding; > + } > + > + public void setResponseConnectionBinding(JMSBinding binding) { > + this.responseConnectionBinding = binding; > + } > + public JMSBinding getResponseConnectionBinding() { > + return responseConnectionBinding; > + } > } > > Modified: > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java > (original) > +++ > tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java > Wed Aug 27 04:09:51 2008 > @@ -22,6 +22,7 @@ > import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; > import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; > > +import java.util.Map; > import java.util.StringTokenizer; > > import javax.xml.namespace.QName; > @@ -34,6 +35,8 @@ > import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor; > import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; > import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; > +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; > +import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; > import org.apache.tuscany.sca.contribution.resolver.ModelResolver; > import org.apache.tuscany.sca.contribution.service.ContributionReadException; > import > org.apache.tuscany.sca.contribution.service.ContributionResolveException; > @@ -215,10 +218,14 @@ > > } > > - // Read requestConnection > - // TODO > - // Read reponseConnection > - // TODO > + String requestConnectionName = reader.getAttributeValue(null, > "requestConnection"); > + if (requestConnectionName != null && requestConnectionName.length() > > 0) { > + jmsBinding.setRequestConnectionName(requestConnectionName); > + } > + String responseConnectionName = reader.getAttributeValue(null, > "responseConnection"); > + if (responseConnectionName != null && > responseConnectionName.length() > 0) { > + jmsBinding.setResponseConnectionName(responseConnectionName); > + } > > // Read sub-elements of binding.jms > boolean endFound = false; > @@ -286,6 +293,28 @@ > } > > public void resolve(JMSBinding model, ModelResolver resolver) throws > ContributionResolveException { > + if (model.getRequestConnectionName() != null) { > + > model.setRequestConnectionBinding(getConnectionBinding(model.getRequestConnectionName(), > resolver)); > + } > + if (model.getResponseConnectionName() != null) { > + > model.setResponseConnectionBinding(getConnectionBinding(model.getResponseConnectionName(), > resolver)); > + } > + } > + > + private JMSBinding getConnectionBinding(String bindingName, > ModelResolver resolver) { > + if (resolver instanceof ExtensibleModelResolver) { > + DefaultModelResolver dr = > (DefaultModelResolver)((ExtensibleModelResolver) > resolver).getDefaultModelResolver(); > + Map models = dr.getModels(); > + for (Object o : models.keySet()) { > + if (o instanceof JMSBinding) { > + JMSBinding binding = (JMSBinding) o; > + if (bindingName.equals(binding.getName())) { > + return binding; > + } > + } > + } > + } > + return null; > } > > public void write(JMSBinding rmiBinding, XMLStreamWriter writer) throws > ContributionWriteException, > > Modified: > tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java > (original) > +++ > tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java > Wed Aug 27 04:09:51 2008 > @@ -474,6 +474,9 @@ > for (IntentAttachPointType attachPointType : > definitions.getImplementationTypes() ) { > > policyDefinitionsResolver.addModel(attachPointType); > } > + for (Object binding : definitions.getBindings() ) { > + policyDefinitionsResolver.addModel(binding); > + } > } > } > } > > Modified: > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java > (original) > +++ > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java > Wed Aug 27 04:09:51 2008 > @@ -57,4 +57,10 @@ > return map.remove(resolved); > } > > + // FIXME: TUSCANY-2499: temporarily give access to the models to get > the jms binding > + // use of definitions.xml working while the definitions.xml processing > is being refactored > + public Map getModels() { > + return map; > + } > + > } > > Modified: > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java > (original) > +++ > tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java > Wed Aug 27 04:09:51 2008 > @@ -191,5 +191,11 @@ > > return unresolved; > } > + > + // FIXME: TUSCANY-2499: temporarily give access to the defaultResolver > to get the jms binding > + // use of definitions.xml working while the definitions.xml processing > is being refactored > + public ModelResolver getDefaultModelResolver() { > + return defaultResolver; > + } > > } > > Modified: > tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java > (original) > +++ > tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java > Wed Aug 27 04:09:51 2008 > @@ -31,6 +31,7 @@ > import javax.xml.stream.XMLStreamReader; > import javax.xml.stream.XMLStreamWriter; > > +import org.apache.tuscany.sca.assembly.Binding; > import > org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; > import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; > import org.apache.tuscany.sca.contribution.resolver.ModelResolver; > @@ -120,6 +121,9 @@ > policySet.setName(new QName(targetNamespace, > > policySet.getName().getLocalPart())); > definitions.getPolicySets().add(policySet); > + } else if ( extension instanceof Binding ) { > + Binding binding = (Binding)extension; > + definitions.getBindings().add(binding); > } else if ( extension instanceof > IntentAttachPointType ) { > IntentAttachPointType type = > (IntentAttachPointType)extension; > if ( > type.getName().getLocalPart().startsWith(BINDING)) { > > Modified: > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitions.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitions.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitions.java > (original) > +++ > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitions.java > Wed Aug 27 04:09:51 2008 > @@ -72,4 +72,11 @@ > * @return a list of domain wide Implementation Types > */ > List<IntentAttachPointType> getImplementationTypes(); > + > + /** > + * Returns a list of domain wide binding definition objects > + * > + * @return a list of domain wide binding definition objects > + */ > + List<Object> getBindings(); > } > > Modified: > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/impl/SCADefinitionsImpl.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/impl/SCADefinitionsImpl.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/impl/SCADefinitionsImpl.java > (original) > +++ > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/impl/SCADefinitionsImpl.java > Wed Aug 27 04:09:51 2008 > @@ -38,6 +38,7 @@ > private List<PolicySet> policySets = new > CopyOnWriteArrayList<PolicySet>(); > private List<IntentAttachPointType> bindingTypes = new > CopyOnWriteArrayList<IntentAttachPointType>(); > private List<IntentAttachPointType> implementationTypes = new > CopyOnWriteArrayList<IntentAttachPointType>(); > + private List<Object> bindings = new CopyOnWriteArrayList<Object>(); > > > public List<IntentAttachPointType> getBindingTypes() { > @@ -63,4 +64,8 @@ > public void setTargetNamespace(String ns) { > this.targetNamespace = ns; > } > + > + public List<Object> getBindings() { > + return bindings; > + } > } > > Modified: > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java?rev=689448&r1=689447&r2=689448&view=diff > ============================================================================== > --- > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java > (original) > +++ > tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java > Wed Aug 27 04:09:51 2008 > @@ -73,6 +73,7 @@ > target.getPolicySets().addAll(source.getPolicySets()); > target.getBindingTypes().addAll(source.getBindingTypes()); > > target.getImplementationTypes().addAll(source.getImplementationTypes()); > + target.getBindings().addAll(source.getBindings()); > } > > public static boolean isSCADefnsFile(URI uri) { > > > -- Luciano Resende Apache Tuscany, Apache PhotArk http://people.apache.org/~lresende http://lresende.blogspot.com/
