Author: kpvdr
Date: Tue Jan 23 06:23:25 2007
New Revision: 499030
URL: http://svn.apache.org/viewvc?view=rev&rev=499030
Log:
Modified Content to make get methods to be non-consuming through use of
light-weight copys. Shortened name of Content type enum.
Modified:
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
Modified:
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
Tue Jan 23 06:23:25 2007
@@ -193,10 +193,10 @@
message.setPublisher(publisher);
Content body = transferBody.getBody();
switch (body.getContentType()) {
- case CONTENT_TYPE_INLINE:
+ case INLINE_T:
route(message);
break;
- case CONTENT_TYPE_REFERENCE:
+ case REF_T:
getMessages(body.getContentAsByteArray()).add(message);
break;
}
Modified:
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
Tue Jan 23 06:23:25 2007
@@ -139,7 +139,7 @@
int size = _transferBody.getBodySize();
Content body = _transferBody.getBody();
switch (body.getContentType()) {
- case CONTENT_TYPE_INLINE:
+ case INLINE_T:
size -= _transferBody.getBody().getEncodedSize();
break;
}
@@ -149,9 +149,9 @@
public long getBodySize() {
Content body = _transferBody.getBody();
switch (body.getContentType()) {
- case CONTENT_TYPE_INLINE:
+ case INLINE_T:
return _transferBody.getBody().getContent().limit();
- case CONTENT_TYPE_REFERENCE:
+ case REF_T:
return getReferenceSize();
default:
throw new IllegalStateException("unrecognized type: " +
body.getContentType());
Modified:
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
Tue Jan 23 06:23:25 2007
@@ -577,7 +577,7 @@
// Inline message case
_logger.debug("Inline case, sending data inline with the
transfer method");
- Content data = new
Content(Content.ContentTypeEnum.CONTENT_TYPE_INLINE,payload);
+ Content data = new Content(Content.TypeEnum.INLINE_T, payload);
doMessageTransfer(messageHeaders,destination,data,message,deliveryMode,priority,timeToLive,immediate);
} else {
@@ -598,7 +598,7 @@
doMessageOpen(referenceId);
// Message.Transfer
- Content data = new
Content(Content.ContentTypeEnum.CONTENT_TYPE_REFERENCE,referenceId.getBytes());
+ Content data = new Content(Content.TypeEnum.REF_T,
referenceId.getBytes());
doMessageTransfer(messageHeaders,destination,data,message,deliveryMode,priority,timeToLive,immediate);
//Message.Append
Modified:
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
Tue Jan 23 06:23:25 2007
@@ -75,7 +75,7 @@
msg.contentHeader = messageHeaders;
- if(transferBody.getBody().contentType ==
Content.ContentTypeEnum.CONTENT_TYPE_INLINE)
+ if(transferBody.getBody().contentType == Content.TypeEnum.INLINE_T)
{
msg.addContent(transferBody.getBody().getContentAsByteArray());
protocolSession.deliverMessageToAMQSession(evt.getChannelId(),
msg);
Modified:
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
Tue Jan 23 06:23:25 2007
@@ -24,38 +24,38 @@
public class Content
{
- public enum ContentTypeEnum
+ public enum TypeEnum
{
- CONTENT_TYPE_INLINE((byte)0), CONTENT_TYPE_REFERENCE((byte)1);
+ INLINE_T((byte)0), REF_T((byte)1);
private byte type;
- ContentTypeEnum(byte type) { this.type = type; }
+ TypeEnum(byte type) { this.type = type; }
public byte toByte() { return type; }
- public static ContentTypeEnum toContentEnum(byte b)
+ public static TypeEnum toContentEnum(byte b)
{
switch (b)
{
- case 0: return CONTENT_TYPE_INLINE;
- case 1: return CONTENT_TYPE_REFERENCE;
+ case 0: return INLINE_T;
+ case 1: return REF_T;
default: throw new IllegalArgumentException("Illegal value " +
b +
- ", not represented in ContentTypeEnum.");
+ ", not represented in TypeEnum.");
}
}
}
- public ContentTypeEnum contentType;
+ public TypeEnum contentType;
public ByteBuffer content;
// Constructors
public Content()
{
- contentType = ContentTypeEnum.CONTENT_TYPE_INLINE; // default
+ contentType = TypeEnum.INLINE_T; // default
content = null;
}
- public Content(ContentTypeEnum contentType, byte[] content)
+ public Content(TypeEnum contentType, byte[] content)
{
- if (contentType == ContentTypeEnum.CONTENT_TYPE_REFERENCE)
+ if (contentType == TypeEnum.REF_T)
{
if (content == null)
throw new IllegalArgumentException("Content cannot be null for
a ref type.");
@@ -67,14 +67,14 @@
this.content.put(content);
}
- public Content(ContentTypeEnum contentType, String contentStr)
+ public Content(TypeEnum contentType, String contentStr)
{
this(contentType, contentStr.getBytes());
}
- public Content(ContentTypeEnum contentType, ByteBuffer content)
+ public Content(TypeEnum contentType, ByteBuffer content)
{
- if (contentType == ContentTypeEnum.CONTENT_TYPE_REFERENCE)
+ if (contentType == TypeEnum.REF_T)
{
if (content == null)
throw new IllegalArgumentException("Content cannot be null for
a ref type.");
@@ -87,13 +87,21 @@
// Get functions
- public ContentTypeEnum getContentType() { return contentType; }
- public ByteBuffer getContent() { return content; }
+ public TypeEnum getContentType()
+ {
+ return contentType;
+ }
+
+ public ByteBuffer getContent()
+ {
+ return content.duplicate();
+ }
public byte[] getContentAsByteArray()
{
- byte[] ba = new byte[content.remaining()];
- content.get(ba);
+ ByteBuffer dup = content.duplicate().rewind();
+ byte[] ba = new byte[dup.remaining()];
+ dup.get(ba);
return ba;
}
@@ -122,7 +130,7 @@
public void populateFromBuffer(ByteBuffer buffer) throws
AMQFrameDecodingException
{
- contentType = ContentTypeEnum.toContentEnum(buffer.get());
+ contentType = TypeEnum.toContentEnum(buffer.get());
int length = buffer.getInt();
content = buffer.slice();
buffer.skip(length);
@@ -131,11 +139,6 @@
public synchronized String toString()
{
- int position = content.position();
- content.flip();
- String tmp = content.toString();
- content.position(position);
-
- return tmp;
+ return getContent().rewind().toString();
}
}
Modified:
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
Tue Jan 23 06:23:25 2007
@@ -80,6 +80,8 @@
logger.debug((serverFlag ? "SRV" : "CLI") + " TX REQ: ch=" +
channel +
" Req[" + requestId + " " + lastProcessedResponseId + "]; " +
requestMethodBody);
}
+ //System.out.println((serverFlag ? "SRV" : "CLI") + " TX REQ: ch=" +
channel +
+ // " Req[" + requestId + " " + lastProcessedResponseId + "]; "
+ requestMethodBody);
return requestId;
}
@@ -93,6 +95,8 @@
logger.debug((serverFlag ? "SRV" : "CLI") + " RX RES: ch=" +
channel +
" " + responseBody + "; " + responseBody.getMethodPayload());
}
+ //System.out.println((serverFlag ? "SRV" : "CLI") + " RX RES: ch=" +
channel +
+ // " " + responseBody + "; " + responseBody.getMethodPayload());
for (long requestId = requestIdStart; requestId <= requestIdStop;
requestId++)
{
AMQMethodListener methodListener = requestSentMap.get(requestId);
Modified:
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
---
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
(original)
+++
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
Tue Jan 23 06:23:25 2007
@@ -122,11 +122,14 @@
logger.debug((serverFlag ? "SRV" : "CLI") + " RX REQ: ch=" +
channel +
" " + requestBody + "; " + requestBody.getMethodPayload());
}
+ //System.out.println((serverFlag ? "SRV" : "CLI") + " RX REQ: ch=" +
channel +
+ // " " + requestBody + "; " + requestBody.getMethodPayload());
// TODO: responseMark is used in HA, but until then, ignore...
long responseMark = requestBody.getResponseMark();
lastReceivedRequestId = requestId;
responseMap.put(requestId, new ResponseStatus(requestId));
- AMQMethodEvent methodEvent = new AMQMethodEvent(channel,
requestBody.getMethodPayload(), requestId);
+ AMQMethodEvent methodEvent = new AMQMethodEvent(channel,
+ requestBody.getMethodPayload(), requestId);
methodListener.methodReceived(methodEvent);
}
@@ -138,6 +141,8 @@
logger.debug((serverFlag ? "SRV" : "CLI") + " TX RES: ch=" +
channel +
" Res[# " + requestId + "]; " + responseMethodBody);
}
+ //System.out.println((serverFlag ? "SRV" : "CLI") + " TX RES: ch=" +
channel +
+ // " Res[# " + requestId + "]; " + responseMethodBody);
ResponseStatus responseStatus = responseMap.get(requestId);
if (responseStatus == null)
throw new RequestResponseMappingException(requestId,