Author: rgodfrey
Date: Fri Oct 19 21:04:20 2012
New Revision: 1400289

URL: http://svn.apache.org/viewvc?rev=1400289&view=rev
Log:
QPID-4383 : Fix connection URLs

Modified:
    
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
    
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
    
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/jndi/PropertiesFileInitialContextFactory.java

Modified: 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java?rev=1400289&r1=1400288&r2=1400289&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
 (original)
+++ 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
 Fri Oct 19 21:04:20 2012
@@ -20,8 +20,12 @@
  */
 package org.apache.qpid.amqp_1_0.jms.impl;
 
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.net.URLStreamHandler;
 import javax.jms.JMSException;
 import javax.jms.QueueConnection;
 import javax.jms.QueueConnectionFactory;
@@ -96,12 +100,35 @@ public class ConnectionFactoryImpl imple
 
     public static ConnectionFactoryImpl createFromURL(final String urlString) 
throws MalformedURLException
     {
-        URL url = new URL(urlString);
+        URL url = new URL(null, urlString, new URLStreamHandler()
+                    {
+                        @Override
+                        protected URLConnection openConnection(URL u) throws 
IOException
+                        {
+                            throw new UnsupportedOperationException();
+                        }
+                    });
+        String protocol = url.getProtocol();
+        if(protocol == null || "".equals(protocol))
+        {
+            protocol = "amqp";
+        }
+        else if(!protocol.equals("amqp") && !protocol.equals("amqps"))
+        {
+            throw new MalformedURLException("Protocol '"+protocol+"' unknown. 
Must be one of 'amqp' or 'amqps'.");
+        }
         String host = url.getHost();
         int port = url.getPort();
         if(port == -1)
         {
-            port = 5672;
+            if("amqps".equals(protocol))
+            {
+                port = 5671;
+            }
+            else
+            {
+                port = 5672;
+            }
         }
         String userInfo = url.getUserInfo();
         String username = null;
@@ -112,10 +139,10 @@ public class ConnectionFactoryImpl imple
         if(userInfo != null)
         {
             String[] components = userInfo.split(":",2);
-            username = components[0];
+            username = URLDecoder.decode(components[0]);
             if(components.length == 2)
             {
-                password = components[1];
+                password = URLDecoder.decode(components[1]);
             }
         }
         String query = url.getQuery();
@@ -170,4 +197,5 @@ public class ConnectionFactoryImpl imple
         connection.setTopicConnection(true);
         return connection;
     }
+
 }

Modified: 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java?rev=1400289&r1=1400288&r2=1400289&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
 (original)
+++ 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
 Fri Oct 19 21:04:20 2012
@@ -766,7 +766,7 @@ public class SessionImpl implements Sess
             {
                 while(!_closed)
                 {
-                    while(!_started || (_recoveredMessage == null && 
_messageConsumerList.isEmpty()))
+                    while(!_closed && (!_started || (_recoveredMessage == null 
&& _messageConsumerList.isEmpty())))
                     {
                         try
                         {
@@ -777,7 +777,7 @@ public class SessionImpl implements Sess
                             return;
                         }
                     }
-                    while(_started && (_recoveredMessage != null || 
!_messageConsumerList.isEmpty()))
+                    while(!_closed && (_started && (_recoveredMessage != null 
|| !_messageConsumerList.isEmpty())))
                     {
                         Message msg;
 

Modified: 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/jndi/PropertiesFileInitialContextFactory.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/jndi/PropertiesFileInitialContextFactory.java?rev=1400289&r1=1400288&r2=1400289&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/jndi/PropertiesFileInitialContextFactory.java
 (original)
+++ 
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/jndi/PropertiesFileInitialContextFactory.java
 Fri Oct 19 21:04:20 2012
@@ -57,6 +57,9 @@ public class PropertiesFileInitialContex
         Map data = new ConcurrentHashMap();
 
         String file = null;
+        String fileName = (environment.containsKey(Context.PROVIDER_URL))
+                            ? (String)environment.get(Context.PROVIDER_URL) : 
System.getProperty(Context.PROVIDER_URL);
+
         try
         {
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to