summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java18
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java26
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java2
-rw-r--r--java/client/src/test/java/org/apache/qpid/testutil/QpidClientConnection.java2
5 files changed, 47 insertions, 5 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
index c7cc0ad394..9b0183967d 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
@@ -60,16 +60,26 @@ public class AMQConnectionFactory implements ConnectionFactory, QueueConnectionF
{
}
+ /**
+ * This is the Only constructor used!
+ * It is used form the context and from the JNDI objects.
+ */
public AMQConnectionFactory(String url) throws URLSyntaxException
{
_connectionDetails = new AMQConnectionURL(url);
}
+ /**
+ * This constructor is never used!
+ */
public AMQConnectionFactory(ConnectionURL url)
{
_connectionDetails = url;
}
+ /**
+ * This constructor is never used!
+ */
public AMQConnectionFactory(String broker, String username, String password,
String clientName, String virtualHost) throws URLSyntaxException
{
@@ -78,11 +88,17 @@ public class AMQConnectionFactory implements ConnectionFactory, QueueConnectionF
virtualHost + "?brokerlist='" + broker + "'"));
}
+ /**
+ * This constructor is never used!
+ */
public AMQConnectionFactory(String host, int port, String virtualPath)
{
this(host, port, "guest", "guest", virtualPath);
}
+ /**
+ * This constructor is never used!
+ */
public AMQConnectionFactory(String host, int port, String defaultUsername, String defaultPassword,
String virtualPath)
{
@@ -382,7 +398,7 @@ public class AMQConnectionFactory implements ConnectionFactory, QueueConnectionF
if (addr != null)
{
- return new AMQConnectionFactory(new AMQConnectionURL((String) addr.getContent()));
+ return new AMQConnectionFactory((String) addr.getContent());
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java
index 8c42ec6629..42e8284b10 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java
@@ -24,8 +24,10 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.net.MalformedURLException;
import org.apache.qpid.client.url.URLParser_0_8;
+import org.apache.qpid.client.url.URLParser_0_10;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.jms.BrokerDetails;
import org.apache.qpid.jms.ConnectionURL;
@@ -67,11 +69,28 @@ public class AMQConnectionURL implements ConnectionURL
if (fullURL.startsWith("qpid"))
{
//URLParser
+ URLParser_0_10 parser = null;
+ try
+ {
+ parser = new URLParser_0_10(fullURL);
+ }
+ catch (MalformedURLException e)
+ {
+ throw new URLSyntaxException(fullURL,e.getMessage(),0,0);
+ }
+ setBrokerDetails(parser.getAllBrokerDetails());
+ // use the first instance username and password
+ // This is temporary as the URL must be changed for olding this information as part of the full URL
+ BrokerDetails firstBroker = getBrokerDetails(0);
+ setUsername(firstBroker.getProperty(BrokerDetails.USERNAME));
+ setPassword(firstBroker.getProperty(BrokerDetails.PASSWORD));
+ setClientName(firstBroker.getProperty(BrokerDetails.CLIENT_ID));
+ setVirtualHost(firstBroker.getProperty(BrokerDetails.VIRTUAL_HOST));
_urlVersion = URL_0_10;
}
else
{
- URLParser_0_8 urlParser = new URLParser_0_8(this);
+ new URLParser_0_8(this);
_urlVersion = URL_0_8;
}
}
@@ -147,6 +166,11 @@ public class AMQConnectionURL implements ConnectionURL
}
}
+ public void setBrokerDetails(List<BrokerDetails> brokers)
+ {
+ _brokers = brokers;
+ }
+
public List<BrokerDetails> getAllBrokerDetails()
{
return _brokers;
diff --git a/java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java b/java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java
index ee47ad2a94..758088dd68 100644
--- a/java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java
@@ -96,7 +96,7 @@ public class URLParser_0_10
public URLParser_0_10(String url) throws MalformedURLException
{
- _url = (url + "END_OF_URL_MARKER").toCharArray();
+ _url = (url + END_OF_URL_MARKER).toCharArray();
_endOfURL = false;
_currentParserState = URLParserState.QPID_URL_START;
URLParserState prevState = _currentParserState; // for error handling
@@ -402,7 +402,7 @@ public class URLParser_0_10
public static void main(String[] args)
{
- String testurl = "qpid:password=pass;username=name@tcp:test1,tcp:fooBroker,keystore=/usr/foo@tls:tlsBroker";
+ String testurl = "qpid:password=pass;username=name@tcp:test1";
try
{
URLParser_0_10 impl = new URLParser_0_10(testurl);
diff --git a/java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java b/java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java
index 0aafaa2ccf..7cae7f8a9f 100644
--- a/java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java
+++ b/java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java
@@ -60,6 +60,8 @@ public interface ConnectionURL
void addBrokerDetails(BrokerDetails broker);
+ void setBrokerDetails(List<BrokerDetails> brokers);
+
List<BrokerDetails> getAllBrokerDetails();
String getClientName();
diff --git a/java/client/src/test/java/org/apache/qpid/testutil/QpidClientConnection.java b/java/client/src/test/java/org/apache/qpid/testutil/QpidClientConnection.java
index 7eb2abe7eb..acfb00c9ba 100644
--- a/java/client/src/test/java/org/apache/qpid/testutil/QpidClientConnection.java
+++ b/java/client/src/test/java/org/apache/qpid/testutil/QpidClientConnection.java
@@ -75,7 +75,7 @@ public class QpidClientConnection implements ExceptionListener
String brokerUrl = "amqp://guest:guest@" + virtualHost + "?brokerlist='" + brokerlist + "'";
try
{
- AMQConnectionFactory factory = new AMQConnectionFactory(new AMQConnectionURL(brokerUrl));
+ AMQConnectionFactory factory = new AMQConnectionFactory(brokerUrl);
_logger.info("connecting to Qpid :" + brokerUrl);
connection = factory.createConnection();