You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ru...@apache.org on 2009/10/12 11:42:52 UTC
svn commit: r824281 - in
/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms:
JMSConnectionFactory.java JMSEndpoint.java JMSMessageReceiver.java
JMSMessageSender.java JMSSender.java
Author: ruwan
Date: Mon Oct 12 09:42:51 2009
New Revision: 824281
URL: http://svn.apache.org/viewvc?rev=824281&view=rev
Log:
Refactoring of the jms transport get destination (In progress)
Modified:
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConnectionFactory.java
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSEndpoint.java
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageSender.java
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConnectionFactory.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConnectionFactory.java?rev=824281&r1=824280&r2=824281&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConnectionFactory.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConnectionFactory.java Mon Oct 12 09:42:51 2009
@@ -168,16 +168,12 @@
/**
* Lookup a Destination using this JMS CF definitions and JNDI name
- * @param name JNDI name of the Destionation
+ * @param destinationName JNDI name of the Destionation
+ * @param destinationType looking up destination type
* @return JMS Destination for the given JNDI name or null
*/
- public Destination getDestination(String name) {
- try {
- return JMSUtils.lookup(context, Destination.class, name);
- } catch (NamingException e) {
- handleException("Unknown JMS Destination : " + name + " using : " + parameters, e);
- }
- return null;
+ public Destination getDestination(String destinationName, String destinationType) {
+ return JMSUtils.lookupDestination(context, destinationName, destinationType);
}
/**
@@ -188,6 +184,16 @@
return parameters.get(JMSConstants.PARAM_REPLY_DESTINATION);
}
+ /**
+ * Get the reply destination type from the PARAM_REPLY_DEST_TYPE parameter
+ * @return reply destination defined in the JMS CF
+ */
+ public String getReplyDestinationType() {
+ return parameters.get(JMSConstants.PARAM_REPLY_DEST_TYPE) != null ?
+ parameters.get(JMSConstants.PARAM_REPLY_DEST_TYPE) :
+ JMSConstants.DESTINATION_TYPE_GENERIC;
+ }
+
private void handleException(String msg, Exception e) {
log.error(msg, e);
throw new AxisJMSException(msg, e);
Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSEndpoint.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSEndpoint.java?rev=824281&r1=824280&r2=824281&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSEndpoint.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSEndpoint.java Mon Oct 12 09:42:51 2009
@@ -56,6 +56,7 @@
private String jndiDestinationName;
private int destinationType = JMSConstants.GENERIC;
private String jndiReplyDestinationName;
+ private String replyDestinationType = JMSConstants.DESTINATION_TYPE_GENERIC;
private Set<EndpointReference> endpointReferences = new HashSet<EndpointReference>();
private ContentTypeRuleSet contentTypeRuleSet;
private ServiceTaskManager serviceTaskManager;
@@ -79,10 +80,24 @@
}
}
+ private void setReplyDestinationType(String destinationType) {
+ if (JMSConstants.DESTINATION_TYPE_TOPIC.equalsIgnoreCase(destinationType)) {
+ this.replyDestinationType = JMSConstants.DESTINATION_TYPE_TOPIC;
+ } else if (JMSConstants.DESTINATION_TYPE_QUEUE.equalsIgnoreCase(destinationType)) {
+ this.replyDestinationType = JMSConstants.DESTINATION_TYPE_QUEUE;
+ } else {
+ this.replyDestinationType = JMSConstants.DESTINATION_TYPE_GENERIC;
+ }
+ }
+
public String getJndiReplyDestinationName() {
return jndiReplyDestinationName;
}
+ public String getReplyDestinationType() {
+ return replyDestinationType;
+ }
+
@Override
public EndpointReference[] getEndpointReferences(String ip) {
return endpointReferences.toArray(new EndpointReference[endpointReferences.size()]);
@@ -201,6 +216,20 @@
log.debug("JMS destination type not given. default queue");
destinationType = JMSConstants.QUEUE;
}
+
+ Parameter replyDestTypeParam = service.getParameter(JMSConstants.PARAM_REPLY_DEST_TYPE);
+ if (replyDestTypeParam != null) {
+ String paramValue = (String) replyDestTypeParam.getValue();
+ if (JMSConstants.DESTINATION_TYPE_QUEUE.equals(paramValue) ||
+ JMSConstants.DESTINATION_TYPE_TOPIC.equals(paramValue) ) {
+ setReplyDestinationType(paramValue);
+ } else {
+ throw new AxisFault("Invalid destinaton type value " + paramValue);
+ }
+ } else {
+ log.debug("JMS reply destination type not given. default queue");
+ destinationType = JMSConstants.QUEUE;
+ }
jndiReplyDestinationName = ParamUtils.getOptionalParam(service,
JMSConstants.PARAM_REPLY_DESTINATION);
Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java?rev=824281&r1=824280&r2=824281&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java Mon Oct 12 09:42:51 2009
@@ -176,7 +176,8 @@
// does the service specify a default reply destination ?
String jndiReplyDestinationName = endpoint.getJndiReplyDestinationName();
if (jndiReplyDestinationName != null) {
- replyTo = jmsConnectionFactory.getDestination(jndiReplyDestinationName);
+ replyTo = jmsConnectionFactory.getDestination(jndiReplyDestinationName,
+ endpoint.getReplyDestinationType());
}
}
Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageSender.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageSender.java?rev=824281&r1=824280&r2=824281&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageSender.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageSender.java Mon Oct 12 09:42:51 2009
@@ -87,7 +87,8 @@
this.session = jmsConnectionFactory.getSession(connection);
this.destination =
jmsConnectionFactory.getSharedDestination() == null ?
- jmsConnectionFactory.getDestination(JMSUtils.getDestination(targetAddress)) :
+ jmsConnectionFactory.getDestination(JMSUtils.getDestination(targetAddress),
+ JMSConstants.DESTINATION_TYPE_GENERIC) :
jmsConnectionFactory.getSharedDestination();
this.producer = jmsConnectionFactory.getMessageProducer(connection, session, destination);
}
Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java?rev=824281&r1=824280&r2=824281&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java Mon Oct 12 09:42:51 2009
@@ -173,9 +173,15 @@
replyDestName = jmsConnectionFactory.getReplyToDestination();
}
+ String replyDestType = (String) msgCtx.getProperty(JMSConstants.JMS_REPLY_TO_TYPE);
+ if (replyDestType == null && jmsConnectionFactory != null) {
+ replyDestType = jmsConnectionFactory.getReplyDestinationType();
+ }
+
if (replyDestName != null) {
if (jmsConnectionFactory != null) {
- replyDestination = jmsConnectionFactory.getDestination(replyDestName);
+ replyDestination = jmsConnectionFactory.getDestination(
+ replyDestName, replyDestType);
} else {
replyDestination = jmsOut.getReplyDestination(replyDestName);
}