diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2014-08-25 14:48:20 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2014-08-25 14:48:20 +0000 |
commit | 2a7c8b3061fda47cc53ef997c339599dd2285395 (patch) | |
tree | 40334230aa105819bb4e1bc0ea7794e39050c64b /qpid/java/client/src/main | |
parent | 717bfa2e17d949bf0771ca14fb15bc99dd41f9fd (diff) | |
download | qpid-python-2a7c8b3061fda47cc53ef997c339599dd2285395.tar.gz |
Merging from trunk r1616861:1617235 in the Java tree
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.30@1620330 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src/main')
6 files changed, 44 insertions, 27 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java index e1a0e18262..d76fdf25e6 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java @@ -20,6 +20,9 @@ */ package org.apache.qpid.client.handler; +import java.util.HashMap; +import java.util.Map; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,9 +32,6 @@ import org.apache.qpid.client.state.AMQMethodNotImplementedException; import org.apache.qpid.client.state.AMQStateManager; import org.apache.qpid.framing.*; -import java.util.HashMap; -import java.util.Map; - public class ClientMethodDispatcherImpl implements MethodDispatcher { @@ -101,6 +101,10 @@ public class ClientMethodDispatcherImpl implements MethodDispatcher } DispatcherFactory factory = _dispatcherFactories.get(version); + if(factory == null) + { + throw new UnsupportedOperationException("The protocol version " + version + " is not supported"); + } return factory.createMethodDispatcher(session); } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java index 617380e149..1f2df2026b 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java @@ -72,6 +72,8 @@ public class ConnectionTuneMethodHandler implements StateAwareMethodListener<Con ConnectionTuneOkBody tuneOkBody = methodRegistry.createConnectionTuneOkBody(params.getChannelMax(), params.getFrameMax(), params.getHeartbeat()); + + session.setMaxFrameSize(params.getFrameMax()); // Be aware of possible changes to parameter order as versions change. session.writeFrame(tuneOkBody.generateFrame(channelId)); diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java index c8ebb7f9c7..08f05cc8d6 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java @@ -38,7 +38,7 @@ import org.apache.qpid.client.state.AMQState; import org.apache.qpid.client.state.AMQStateManager; import org.apache.qpid.client.state.StateWaiter; import org.apache.qpid.client.state.listener.SpecificMethodFrameListener; -import org.apache.qpid.codec.AMQCodecFactory; +import org.apache.qpid.codec.AMQDecoder; import org.apache.qpid.configuration.ClientProperties; import org.apache.qpid.framing.AMQBody; import org.apache.qpid.framing.AMQDataBlock; @@ -165,7 +165,7 @@ public class AMQProtocolHandler implements ProtocolEngine /** Object to lock on when changing the latch */ private Object _failoverLatchChange = new Object(); - private AMQCodecFactory _codecFactory; + private AMQDecoder _decoder; private ProtocolVersion _suggestedProtocolVersion; @@ -188,7 +188,7 @@ public class AMQProtocolHandler implements ProtocolEngine _connection = con; _protocolSession = new AMQProtocolSession(this, _connection); _stateManager = new AMQStateManager(_protocolSession); - _codecFactory = new AMQCodecFactory(false, _protocolSession); + _decoder = new AMQDecoder(false, _protocolSession); _failoverHandler = new FailoverHandler(this); } @@ -443,7 +443,7 @@ public class AMQProtocolHandler implements ProtocolEngine _lastReadTime = System.currentTimeMillis(); try { - final ArrayList<AMQDataBlock> dataBlocks = _codecFactory.getDecoder().decodeBuffer(msg); + final ArrayList<AMQDataBlock> dataBlocks = _decoder.decodeBuffer(msg); // Decode buffer int size = dataBlocks.size(); @@ -927,4 +927,9 @@ public class AMQProtocolHandler implements ProtocolEngine { _heartbeatListener.heartbeatReceived(); } + + public void setMaxFrameSize(final long frameMax) + { + _decoder.setMaxFrameSize(frameMax == 0l ? 0xffffffffl : frameMax); + } } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java index 121715d439..2c69aa1b51 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java @@ -20,8 +20,16 @@ */ package org.apache.qpid.client.protocol; +import java.nio.ByteBuffer; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import javax.jms.JMSException; +import javax.security.sasl.SaslClient; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.qpid.AMQException; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.client.AMQSession; @@ -47,13 +55,6 @@ import org.apache.qpid.transport.ConnectionSettings; import org.apache.qpid.transport.Sender; import org.apache.qpid.transport.TransportException; -import javax.jms.JMSException; -import javax.security.sasl.SaslClient; - -import java.nio.ByteBuffer; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - /** * Wrapper for protocol session that provides type-safe access to session attributes. * <p> @@ -543,4 +544,9 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession { return _connectionStartServerProperties; } + + public void setMaxFrameSize(final long frameMax) + { + _protocolHandler.setMaxFrameSize(frameMax); + } } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java b/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java index 6f99e53055..8d53438bb7 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java @@ -20,11 +20,6 @@ */ package org.apache.qpid.client.security; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.apache.qpid.util.FileUtils; - import java.io.IOException; import java.io.InputStream; import java.util.Arrays; @@ -39,6 +34,11 @@ import java.util.Set; import java.util.StringTokenizer; import java.util.TreeMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.qpid.util.FileUtils; + /** * CallbackHandlerRegistry is a registry for call back handlers for user authentication and interaction during user * authentication. It is capable of reading its configuration from a properties file containing call back handler @@ -75,7 +75,7 @@ public class CallbackHandlerRegistry /** Ordered collection of mechanisms for which callback handlers exist. */ private Collection<String> _mechanisms; - private static final Collection<String> MECHS_THAT_NEED_USERPASS = Arrays.asList(new String [] {"PLAIN", "AMQPLAIN", "CRAM-MD5","CRAM-MD5-HASHED"}); + private static final Collection<String> MECHS_THAT_NEED_USERPASS = Arrays.asList(new String [] {"PLAIN", "AMQPLAIN", "CRAM-MD5","CRAM-MD5-HASHED", "SCRAM-SHA-1", "SCRAM-SHA-256"}); static { diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties b/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties index 8f02ee2c38..b77fa033d6 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties @@ -26,11 +26,11 @@ EXTERNAL.1=org.apache.qpid.client.security.UsernamePasswordCallbackHandler GSSAPI.2=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -CRAM-MD5-HASHED.3=org.apache.qpid.client.security.UsernameHashedPasswordCallbackHandler -CRAM-MD5.4=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -AMQPLAIN.5=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -PLAIN.6=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -ANONYMOUS.7=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -SCRAM-SHA-1.8=org.apache.qpid.client.security.UsernamePasswordCallbackHandler -SCRAM-SHA-256.9=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +SCRAM-SHA-256.3=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +SCRAM-SHA-1.4=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +CRAM-MD5-HASHED.5=org.apache.qpid.client.security.UsernameHashedPasswordCallbackHandler +CRAM-MD5.6=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +PLAIN.7=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +AMQPLAIN.8=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +ANONYMOUS.9=org.apache.qpid.client.security.UsernamePasswordCallbackHandler |