summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/binding-jms/src/main/java/org/apache
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-08-27 11:09:51 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-08-27 11:09:51 +0000
commitb28088fe84d2f7be4225ef7aeacab9a3c57e8631 (patch)
tree1d1b4e22b914ab578719f6af9aac9c0fc3fbd0eb /java/sca/modules/binding-jms/src/main/java/org/apache
parent14defce62607b6848740e8dd66188898b5e32dec (diff)
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.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@689448 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/binding-jms/src/main/java/org/apache')
-rw-r--r--java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java56
-rw-r--r--java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java37
2 files changed, 85 insertions, 8 deletions
diff --git a/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java b/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
index 7db508dbd2..6fdffaf4d4 100644
--- a/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
+++ b/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
@@ -102,6 +102,10 @@ public class JMSBinding implements Binding {
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 class JMSBinding implements Binding {
}
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 class JMSBinding implements Binding {
}
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 class JMSBinding implements Binding {
}
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 class JMSBinding implements Binding {
}
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 @@ public class JMSBinding implements Binding {
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;
+ }
}
diff --git a/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java b/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
index e3d46edc46..6913be730b 100644
--- a/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
+++ b/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.binding.jms.impl;
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.Constants;
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 @@ public class JMSBindingProcessor implements StAXArtifactProcessor<JMSBinding> {
}
- // 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 class JMSBindingProcessor implements StAXArtifactProcessor<JMSBinding> {
}
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,