summaryrefslogtreecommitdiff
path: root/qpid/java/client/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/client/src/main/java/org')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java10
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java2
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java13
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java20
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java12
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties14
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