diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-01-09 16:53:51 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-01-09 16:53:51 +0000 |
| commit | 30d213dc1e6d743f2f0abb44c8bc91868d5126b1 (patch) | |
| tree | f3d16257ed0a431f2f4c43166f4df84ccb877a6c /qpid/java/amqp-1-0-client-jms | |
| parent | b165cf52a4ef16ac5a5ee181d4da2db351f7882d (diff) | |
| download | qpid-python-30d213dc1e6d743f2f0abb44c8bc91868d5126b1.tar.gz | |
QPID-5459 : Add WebSocket transport support to the Java Broker and AMQP 1-0 JMS client
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1556873 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/amqp-1-0-client-jms')
2 files changed, 29 insertions, 4 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java index f58a78e7e3..f72c9b3020 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java @@ -36,6 +36,7 @@ import org.apache.qpid.amqp_1_0.jms.ConnectionFactory; public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnectionFactory, QueueConnectionFactory { + private final String _protocol; private String _host; private int _port; private String _username; @@ -98,6 +99,20 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection final boolean ssl, final int maxSessions) { + this(ssl?"amqps":"amqp",host,port,username,password,clientId,remoteHost,ssl,maxSessions); + } + + public ConnectionFactoryImpl(final String protocol, + final String host, + final int port, + final String username, + final String password, + final String clientId, + final String remoteHost, + final boolean ssl, + final int maxSessions) + { + _protocol = protocol; _host = host; _port = port; _username = username; @@ -115,7 +130,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection public ConnectionImpl createConnection(final String username, final String password) throws JMSException { - ConnectionImpl connection = new ConnectionImpl(_host, _port, username, password, _clientId, _remoteHost, _ssl, _maxSessions); + ConnectionImpl connection = new ConnectionImpl(_protocol,_host, _port, username, password, _clientId, _remoteHost, _ssl, _maxSessions); connection.setQueuePrefix(_queuePrefix); connection.setTopicPrefix(_topicPrefix); connection.setUseBinaryMessageId(_useBinaryMessageId); @@ -138,10 +153,12 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection { 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(); @@ -226,7 +243,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection } ConnectionFactoryImpl connectionFactory = - new ConnectionFactoryImpl(host, port, username, password, clientId, remoteHost, ssl, maxSessions); + new ConnectionFactoryImpl(protocol,host, port, username, password, clientId, remoteHost, ssl, maxSessions); connectionFactory.setUseBinaryMessageId(binaryMessageId); connectionFactory.setSyncPublish(syncPublish); diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java index f3ae849dac..55bc8e4f96 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java @@ -38,6 +38,7 @@ import org.apache.qpid.amqp_1_0.type.transport.Error; public class ConnectionImpl implements Connection, QueueConnection, TopicConnection { + private final String _protocol; private ConnectionMetaData _connectionMetaData; private volatile ExceptionListener _exceptionListener; @@ -87,8 +88,15 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect this(host, port, username, password, clientId, remoteHost, ssl,0); } + public ConnectionImpl(String host, int port, String username, String password, String clientId, String remoteHost, boolean ssl, int maxSessions) throws JMSException { + this(ssl?"amqps":"amqp",host,port,username,password,clientId,remoteHost,ssl,maxSessions); + } + + public ConnectionImpl(String protocol, String host, int port, String username, String password, String clientId, String remoteHost, boolean ssl, int maxSessions) throws JMSException + { + _protocol = protocol; _host = host; _port = port; _username = username; @@ -109,10 +117,10 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect _state = State.STOPPED; Container container = _clientId == null ? new Container() : new Container(_clientId); - // TODO - authentication, containerId, clientId, ssl?, etc + try { - _conn = new org.apache.qpid.amqp_1_0.client.Connection(_host, + _conn = new org.apache.qpid.amqp_1_0.client.Connection(_protocol, _host, _port, _username, _password, container, _remoteHost, _ssl, _maxSessions - 1); _conn.setConnectionErrorTask(new ConnectionErrorTask()); |
