You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by as...@apache.org on 2007/06/21 10:25:29 UTC
svn commit: r549425 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms:
JMSConnectionFactory.java JMSConstants.java JMSListener.java
Author: asankha
Date: Thu Jun 21 01:25:28 2007
New Revision: 549425
URL: http://svn.apache.org/viewvc?view=rev&rev=549425
Log:
Apply patch for AXIS2-2816
Thanks to Mark Badorrek
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConnectionFactory.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConstants.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSListener.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConnectionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConnectionFactory.java?view=diff&rev=549425&r1=549424&r2=549425
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConnectionFactory.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConnectionFactory.java Thu Jun 21 01:25:28 2007
@@ -50,23 +50,23 @@
* <p/>
* e.g.
* <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- * <parameter name="myTopicConnectionFactory">
- * <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- * <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- * <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- * <parameter name="transport.jms.Destination">myTopicOne, myTopicTwo</parameter>
+ * <parameter name="myTopicConnectionFactory" locked="false">
+ * <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ * <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
+ * <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
+ * <parameter name="transport.jms.Destination" locked="false">myTopicOne, myTopicTwo</parameter>
* </parameter>
- * <parameter name="myQueueConnectionFactory">
- * <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- * <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- * <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- * <parameter name="transport.jms.Destination">myQueueOne, myQueueTwo</parameter>
+ * <parameter name="myQueueConnectionFactory" locked="false">
+ * <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ * <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
+ * <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
+ * <parameter name="transport.jms.Destination" locked="false">myQueueOne, myQueueTwo</parameter>
* </parameter>
- * <parameter name="default">
- * <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- * <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- * <parameter name="transport.jms.ConnectionFactoryJNDIName">ConnectionFactory</parameter>
- * <parameter name="transport.jms.Destination">myDestinationOne, myDestinationTwo</parameter>
+ * <parameter name="default" locked="false">
+ * <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ * <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
+ * <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
+ * <parameter name="transport.jms.Destination" locked="false">myDestinationOne, myDestinationTwo</parameter>
* </parameter>
* </transportReceiver>
*/
@@ -83,6 +83,14 @@
*/
private String jndiName = null;
/**
+ * The JNDI name of the actual connection factory username
+ */
+ private String jndiUser = null;
+ /**
+ * The JNDI name of the actual connection factory password
+ */
+ private String jndiPass = null;
+ /**
* Map of destination JNDI names to service names
*/
private Map serviceJNDINameMapping = null;
@@ -171,6 +179,24 @@
}
/**
+ * Get the JNDI name of the actual factory username
+ *
+ * @return the jndi name of the actual connection factory username
+ */
+ public void setJndiUser(String jndiUser) {
+ this.jndiUser = jndiUser;
+ }
+
+ /**
+ * Get the JNDI name of the actual factory password
+ *
+ * @return the jndi name of the actual connection factory password
+ */
+ public void setJndiPass(String jndiPass) {
+ this.jndiPass = jndiPass;
+ }
+
+ /**
* Add a listen destination on this connection factory on behalf of the given service
*
* @param destinationJndi destination JNDI name
@@ -186,7 +212,13 @@
Connection con = null;
try {
- con = conFactory.createConnection();
+ if ((jndiUser == null) || (jndiPass == null)){
+ // User the OS username and credentials
+ con = conFactory.createConnection();
+ } else{
+ // use an explicit username and password
+ con = conFactory.createConnection(jndiUser, jndiPass);
+ }
Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(destinationJndi);
destinationName = queue.getQueueName();
@@ -208,7 +240,7 @@
}
}
}
-
+
serviceDestinationMapping.put(destinationName, serviceName);
log.info("Mapping JNDI name : " + destinationJndi + " and JMS Destination name : " +
destinationName + " against service : " + serviceName);
@@ -259,6 +291,24 @@
}
/**
+ * Get the JNDI name of the actual factory username
+ *
+ * @return the jndi name of the actual connection factory username
+ */
+ public String getJndiUser() {
+ return jndiUser;
+ }
+
+ /**
+ * Get the JNDI name of the actual factory password
+ *
+ * @return the jndi name of the actual connection factory password
+ */
+ public String getJndiPass() {
+ return jndiPass;
+ }
+
+ /**
* Get the actual underlying connection factory
*
* @return actual connection factory
@@ -305,7 +355,13 @@
"Connection factory must be 'connected' before listening");
} else {
try {
- connection = conFactory.createConnection();
+ if ((jndiUser == null) || (jndiPass == null)){
+ // User the OS username and credentials
+ connection = conFactory.createConnection();
+ } else{
+ // use an explicit username and password
+ connection = conFactory.createConnection(jndiUser, jndiPass);
+ }
} catch (JMSException e) {
handleException("Error creating a JMS connection using the " +
"factory : " + jndiName, e);
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConstants.java?view=diff&rev=549425&r1=549424&r2=549425
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSConstants.java Thu Jun 21 01:25:28 2007
@@ -58,10 +58,23 @@
* the local (Axis2) name of the connection factory and not a JNDI name
*/
public static final String CONFAC_PARAM = "transport.jms.ConnectionFactory";
+
/**
* The Parameter name indicating the JMS connection factory JNDI name
*/
public static final String CONFAC_JNDI_NAME_PARAM = "transport.jms.ConnectionFactoryJNDIName";
+
+ /**
+ * The Parameter name indicating the JMS connection factory username (useful for WebsphereMQ CLIENT connections)
+ * n.b. This is not the actual username, it is the JNDI name of the variable that will hold the username
+ */
+ public static final String CONFAC_JNDI_NAME_USER = "transport.jms.ConnectionFactoryJNDIUser";
+
+ /**
+ * The Parameter name indicating the JMS connection factory password (useful for WebsphereMQ CLIENT connections)
+ * n.b. This is not the actual password, it is the JNDI name of the variable that will hold the password
+ */
+ public static final String CONFAC_JNDI_NAME_PASS = "transport.jms.ConnectionFactoryJNDIPass";
/**
* The Parameter name indicating the operation to dispatch non SOAP/XML messages
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSListener.java?view=diff&rev=549425&r1=549424&r2=549425
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSListener.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/jms/JMSListener.java Thu Jun 21 01:25:28 2007
@@ -232,6 +232,10 @@
Context.SECURITY_CREDENTIALS, (String) p.getValue());
} else if (JMSConstants.CONFAC_JNDI_NAME_PARAM.equals(p.getName())) {
jmsConFactory.setJndiName((String) p.getValue());
+ } else if (JMSConstants.CONFAC_JNDI_NAME_USER.equals(p.getName())) {
+ jmsConFactory.setJndiUser((String) p.getValue());
+ } else if (JMSConstants.CONFAC_JNDI_NAME_PASS.equals(p.getName())) {
+ jmsConFactory.setJndiPass((String) p.getValue());
} else if (JMSConstants.DEST_PARAM.equals(p.getName())) {
StringTokenizer st =
new StringTokenizer((String) p.getValue(), " ,");
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org