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