summaryrefslogtreecommitdiff
path: root/java/client
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2007-02-25 01:08:57 +0000
committerRobert Godfrey <rgodfrey@apache.org>2007-02-25 01:08:57 +0000
commit2ea003c24ab3170dec118af6f9f8c128241cec65 (patch)
tree5d062e29ec7eceeda453c1402117978c211a2db8 /java/client
parentb9f9c16645933e0e2f4c6c9b58e8cd1716434467 (diff)
downloadqpid-python-2ea003c24ab3170dec118af6f9f8c128241cec65.tar.gz
QPID-391 : Broker Refactoring - initial tidy... add some mechanisms for multi version
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@511389 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java38
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java12
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java13
5 files changed, 25 insertions, 48 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
index 2aa2c1872b..f6ddfdc715 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
@@ -44,7 +44,7 @@ import org.apache.qpid.framing.ConnectionStartBody;
import org.apache.qpid.framing.ConnectionStartOkBody;
import org.apache.qpid.framing.FieldTable;
import org.apache.qpid.framing.FieldTableFactory;
-import org.apache.qpid.framing.ProtocolVersionList;
+import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.protocol.AMQMethodEvent;
public class ConnectionStartMethodHandler implements StateAwareMethodListener
@@ -69,28 +69,21 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
ConnectionStartBody body = (ConnectionStartBody) evt.getMethod();
- byte major = (byte) body.versionMajor;
- byte minor = (byte) body.versionMinor;
- boolean versionOk = false;
+ ProtocolVersion pv = new ProtocolVersion((byte) body.versionMajor,(byte) body.versionMinor);
+
// For the purposes of interop, we can make the client accept the broker's version string.
// If it does, it then internally records the version as being the latest one that it understands.
// It needs to do this since frame lookup is done by version.
- if (Boolean.getBoolean("qpid.accept.broker.version"))
- {
- versionOk = true;
- int lastIndex = ProtocolVersionList.pv.length - 1;
- major = ProtocolVersionList.pv[lastIndex][ProtocolVersionList.PROTOCOL_MAJOR];
- minor = ProtocolVersionList.pv[lastIndex][ProtocolVersionList.PROTOCOL_MINOR];
- }
- else
+ if (Boolean.getBoolean("qpid.accept.broker.version") && !pv.isSupported())
{
- versionOk = checkVersionOK(major, minor);
+
+ pv = ProtocolVersion.getLatestSupportedVersion();
}
- if (versionOk)
+ if (pv.isSupported())
{
- protocolSession.setProtocolVersion(major, minor);
+ protocolSession.setProtocolVersion(pv.getMajorVersion(), pv.getMinorVersion());
try
{
@@ -189,20 +182,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
}
}
- private boolean checkVersionOK(byte versionMajor, byte versionMinor)
- {
- byte[][] supportedVersions = ProtocolVersionList.pv;
- boolean supported = false;
- int i = supportedVersions.length;
- while ((i-- != 0) && !supported)
- {
- supported = (supportedVersions[i][ProtocolVersionList.PROTOCOL_MAJOR] == versionMajor)
- && (supportedVersions[i][ProtocolVersionList.PROTOCOL_MINOR] == versionMinor);
- }
-
- return supported;
- }
-
+
private String getFullSystemInfo()
{
StringBuffer fullSystemInfo = new StringBuffer();
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
index 36dd4d400c..66524edce3 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
@@ -121,12 +121,12 @@ public abstract class AbstractJMSMessage extends AMQMessage implements org.apach
public String getJMSMessageID() throws JMSException
{
- if (getContentHeaderProperties().getMessageId() == null)
+ if (getContentHeaderProperties().getMessageIdAsString() == null)
{
getContentHeaderProperties().setMessageId("ID:" + _deliveryTag);
}
- return getContentHeaderProperties().getMessageId();
+ return getContentHeaderProperties().getMessageIdAsString();
}
public void setJMSMessageID(String messageId) throws JMSException
@@ -146,7 +146,7 @@ public abstract class AbstractJMSMessage extends AMQMessage implements org.apach
public byte[] getJMSCorrelationIDAsBytes() throws JMSException
{
- return getContentHeaderProperties().getCorrelationId().getBytes();
+ return getContentHeaderProperties().getCorrelationIdAsString().getBytes();
}
public void setJMSCorrelationIDAsBytes(byte[] bytes) throws JMSException
@@ -161,12 +161,12 @@ public abstract class AbstractJMSMessage extends AMQMessage implements org.apach
public String getJMSCorrelationID() throws JMSException
{
- return getContentHeaderProperties().getCorrelationId();
+ return getContentHeaderProperties().getCorrelationIdAsString();
}
public Destination getJMSReplyTo() throws JMSException
{
- String replyToEncoding = getContentHeaderProperties().getReplyTo();
+ String replyToEncoding = getContentHeaderProperties().getReplyToAsString();
if (replyToEncoding == null)
{
return null;
@@ -250,7 +250,7 @@ public abstract class AbstractJMSMessage extends AMQMessage implements org.apach
public String getJMSType() throws JMSException
{
- return getContentHeaderProperties().getType();
+ return getContentHeaderProperties().getTypeAsString();
}
public void setJMSType(String string) throws JMSException
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
index c05667902f..763af312f4 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
@@ -116,7 +116,7 @@ public class JMSTextMessage extends AbstractJMSMessage implements javax.jms.Text
_data.limit(text.length()) ;
//_data.sweep();
_data.setAutoExpand(true);
- final String encoding = getContentHeaderProperties().getEncoding();
+ final String encoding = getContentHeaderProperties().getEncodingAsString();
if (encoding == null)
{
_data.put(text.getBytes());
@@ -155,11 +155,11 @@ public class JMSTextMessage extends AbstractJMSMessage implements javax.jms.Text
{
return null;
}
- if (getContentHeaderProperties().getEncoding() != null)
+ if (getContentHeaderProperties().getEncodingAsString() != null)
{
try
{
- _decodedValue = _data.getString(Charset.forName(getContentHeaderProperties().getEncoding()).newDecoder());
+ _decodedValue = _data.getString(Charset.forName(getContentHeaderProperties().getEncodingAsString()).newDecoder());
}
catch (CharacterCodingException e)
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java b/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
index e02771d8f5..c2015f9e7c 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
@@ -92,14 +92,14 @@ public class MessageFactoryRegistry
// Get the message content type. This may be null for pure AMQP messages, but will always be set for JMS over
// AMQP. When the type is null, it can only be assumed that the message is a byte message.
- AMQShortString contentTypeShortString = properties.getContentTypeShortString();
+ AMQShortString contentTypeShortString = properties.getContentType();
contentTypeShortString = (contentTypeShortString == null) ? new AMQShortString(JMSBytesMessage.MIME_TYPE)
: contentTypeShortString;
MessageFactory mf = _mimeShortStringToFactoryMap.get(contentTypeShortString);
if (mf == null)
{
- throw new AMQException("Unsupport MIME type of " + properties.getContentType());
+ throw new AMQException("Unsupport MIME type of " + properties.getContentTypeAsString());
}
else
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
index 055109d3be..19767b6575 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
@@ -45,8 +45,8 @@ import org.apache.qpid.framing.ContentBody;
import org.apache.qpid.framing.ContentHeaderBody;
import org.apache.qpid.framing.MainRegistry;
import org.apache.qpid.framing.ProtocolInitiation;
-import org.apache.qpid.framing.ProtocolVersionList;
import org.apache.qpid.framing.VersionSpecificRegistry;
+import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.protocol.AMQVersionAwareProtocolSession;
import org.apache.qpid.protocol.AMQConstant;
@@ -56,7 +56,7 @@ import org.apache.qpid.protocol.AMQConstant;
* The underlying protocol session is still available but clients should not
* use it to obtain session attributes.
*/
-public class AMQProtocolSession implements ProtocolVersionList, AMQVersionAwareProtocolSession
+public class AMQProtocolSession implements AMQVersionAwareProtocolSession
{
protected static final int LAST_WRITE_FUTURE_JOIN_TIMEOUT = 1000 * 60 * 2;
@@ -104,7 +104,7 @@ public class AMQProtocolSession implements ProtocolVersionList, AMQVersionAwareP
private byte _protocolMinorVersion;
private byte _protocolMajorVersion;
- private VersionSpecificRegistry _registry = MainRegistry.getVersionSpecificRegistry(pv[pv.length-1][PROTOCOL_MAJOR],pv[pv.length-1][PROTOCOL_MINOR]);
+ private VersionSpecificRegistry _registry = MainRegistry.getVersionSpecificRegistry(ProtocolVersion.getLatestSupportedVersion());
/**
@@ -147,11 +147,8 @@ public class AMQProtocolSession implements ProtocolVersionList, AMQVersionAwareP
{
// start the process of setting up the connection. This is the first place that
// data is written to the server.
- /* Find last protocol version in protocol version list. Make sure last protocol version
- listed in the build file (build-module.xml) is the latest version which will be used
- here. */
- int i = pv.length - 1;
- _minaProtocolSession.write(new ProtocolInitiation(pv[i][PROTOCOL_MAJOR], pv[i][PROTOCOL_MINOR]));
+
+ _minaProtocolSession.write(new ProtocolInitiation(ProtocolVersion.getLatestSupportedVersion()));
}
public String getClientID()