You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/06/09 19:03:27 UTC
[1/6] qpid-jms git commit: NO-JIRA: use a more typical option in the
example URI
Repository: qpid-jms
Updated Branches:
refs/heads/master c2bc1463a -> 6667bcffc
NO-JIRA: use a more typical option in the example URI
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/6667bcff
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/6667bcff
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/6667bcff
Branch: refs/heads/master
Commit: 6667bcffc975f0e0bd895c33b798cc75ce4f066a
Parents: ef37505
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 9 17:56:26 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 9 18:03:04 2015 +0100
----------------------------------------------------------------------
qpid-jms-docs/Configuration.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6667bcff/qpid-jms-docs/Configuration.md
----------------------------------------------------------------------
diff --git a/qpid-jms-docs/Configuration.md b/qpid-jms-docs/Configuration.md
index 661b3ab..84f22a9 100644
--- a/qpid-jms-docs/Configuration.md
+++ b/qpid-jms-docs/Configuration.md
@@ -100,7 +100,7 @@ These values control how many messages the remote peer can send to the client an
When connected to a remote using plain TCP these options configure the behaviour of the underlying socket. These options are appended to the connection URI along with the other configuration options, for example:
- amqp://localhost:5672?jms.topicPrefix=foo&transport.connectTimeout=30000
+ amqp://localhost:5672?jms.clientID=foo&transport.connectTimeout=30000
The complete set of TCP Transport options is listed below:
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/6] qpid-jms git commit: QPIDJMS-48: wire up connection option for
toggling behaviour,
add some integration test to verify new and received messages both pick it up
Posted by ro...@apache.org.
QPIDJMS-48: wire up connection option for toggling behaviour, add some integration test to verify new and received messages both pick it up
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/e9d752a0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/e9d752a0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/e9d752a0
Branch: refs/heads/master
Commit: e9d752a048ea984fc5ea750a23c539fcb7a12b65
Parents: dacdce0
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 9 17:27:11 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 9 18:03:04 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/qpid/jms/JmsConnection.java | 12 +-
.../apache/qpid/jms/JmsConnectionFactory.java | 9 ++
.../apache/qpid/jms/meta/JmsConnectionInfo.java | 10 ++
.../jms/integration/IntegrationTestFixture.java | 2 +-
.../jms/integration/MessageIntegrationTest.java | 110 +++++++++++++++++++
.../qpid/jms/meta/JmsConnectionInfoTest.java | 3 +
6 files changed, 144 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index f6c907a..bd8ebbd 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -845,6 +845,14 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
connectionInfo.setQueuePrefix(queuePrefix);
}
+ public boolean isValidatePropertyNames() {
+ return connectionInfo.isValidatePropertyNames();
+ }
+
+ public void setValidatePropertyNames(boolean validatePropertyNames) {
+ connectionInfo.setValidatePropertyNames(validatePropertyNames);
+ }
+
public JmsPrefetchPolicy getPrefetchPolicy() {
return prefetchPolicy;
}
@@ -970,10 +978,12 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
public void onInboundMessage(final JmsInboundMessageDispatch envelope) {
JmsMessage incoming = envelope.getMessage();
- // Ensure incoming Messages are in readonly mode.
if (incoming != null) {
+ // Ensure incoming Messages are in readonly mode.
incoming.setReadOnlyBody(true);
incoming.setReadOnlyProperties(true);
+
+ incoming.setValidatePropertyNames(isValidatePropertyNames());
}
JmsMessageDispatcher dispatcher = dispatchers.get(envelope.getConsumerId());
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
index 47a936f..dbeec40 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
@@ -62,6 +62,7 @@ public class JmsConnectionFactory extends JNDIStorable implements ConnectionFact
private boolean localMessagePriority;
private String queuePrefix = null;
private String topicPrefix = null;
+ private boolean validatePropertyNames = true;
private long sendTimeout = JmsConnectionInfo.DEFAULT_SEND_TIMEOUT;
private long requestTimeout = JmsConnectionInfo.DEFAULT_REQUEST_TIMEOUT;
private long closeTimeout = JmsConnectionInfo.DEFAULT_CLOSE_TIMEOUT;
@@ -424,6 +425,14 @@ public class JmsConnectionFactory extends JNDIStorable implements ConnectionFact
this.topicPrefix = topicPrefix;
}
+ public boolean isValidatePropertyNames() {
+ return validatePropertyNames;
+ }
+
+ public void setValidatePropertyNames(boolean validatePropertyNames) {
+ this.validatePropertyNames = validatePropertyNames;
+ }
+
/**
* Gets the currently set close timeout.
*
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
index 0f7ec3f..b7d1ae7 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
@@ -42,6 +42,7 @@ public final class JmsConnectionInfo implements JmsResource, Comparable<JmsConne
public long closeTimeout = DEFAULT_CLOSE_TIMEOUT;
private String queuePrefix = null;
private String topicPrefix = null;
+ private boolean validatePropertyNames = true;
public JmsConnectionInfo(JmsConnectionId connectionId) {
if (connectionId == null) {
@@ -69,6 +70,7 @@ public final class JmsConnectionInfo implements JmsResource, Comparable<JmsConne
copy.queuePrefix = queuePrefix;
copy.topicPrefix = topicPrefix;
copy.connectTimeout = connectTimeout;
+ copy.validatePropertyNames = validatePropertyNames;
}
public boolean isForceAsyncSend() {
@@ -131,6 +133,14 @@ public final class JmsConnectionInfo implements JmsResource, Comparable<JmsConne
this.topicPrefix = topicPrefix;
}
+ public boolean isValidatePropertyNames() {
+ return validatePropertyNames;
+ }
+
+ public void setValidatePropertyNames(boolean validatePropertyNames) {
+ this.validatePropertyNames = validatePropertyNames;
+ }
+
public long getCloseTimeout() {
return closeTimeout;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
index 1791cd8..fef76fe 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
@@ -50,7 +50,7 @@ public class IntegrationTestFixture {
}
Connection establishConnecton(TestAmqpPeer testPeer, String optionsString, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties) throws JMSException {
- return establishConnecton(testPeer, false, null, serverCapabilities, serverProperties, true);
+ return establishConnecton(testPeer, false, optionsString, serverCapabilities, serverProperties, true);
}
Connection establishConnecton(TestAmqpPeer testPeer, boolean ssl, String optionsString, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties, boolean setClientId) throws JMSException {
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
index 2ab5857..1a1c426 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/MessageIntegrationTest.java
@@ -30,6 +30,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
@@ -38,6 +39,7 @@ import java.util.UUID;
import javax.jms.Connection;
import javax.jms.Destination;
+import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
@@ -211,6 +213,114 @@ public class MessageIntegrationTest extends QpidJmsTestCase
}
}
+ @Test(timeout = 5000)
+ public void testReceiveMessageWithInvalidPropertyName() throws Exception {
+ doReceiveMessageWithInvalidPropertyNameTestImpl(false);
+ }
+
+ @Test(timeout = 5000)
+ public void testReceiveMessageWithInvalidPropertyNameAndWithValidationDisabled() throws Exception {
+ doReceiveMessageWithInvalidPropertyNameTestImpl(true);
+ }
+
+ private void doReceiveMessageWithInvalidPropertyNameTestImpl(boolean disableValidation) throws JMSException, InterruptedException, Exception, IOException {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+ Connection connection = testFixture.establishConnecton(testPeer, "?jms.validatePropertyNames=" + !disableValidation);
+ connection.start();
+
+ testPeer.expectBegin(true);
+
+ String invalidPropName = "invalid-name";
+ String value = "valueA";
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Queue queue = session.createQueue("myQueue");
+
+ ApplicationPropertiesDescribedType appProperties = new ApplicationPropertiesDescribedType();
+ appProperties.setApplicationProperty(invalidPropName, value);
+
+ DescribedType amqpValueNullContent = new AmqpValueDescribedType(null);
+
+ testPeer.expectReceiverAttach();
+ testPeer.expectLinkFlowRespondWithTransfer(null, null, null, appProperties, amqpValueNullContent);
+ testPeer.expectDispositionThatIsAcceptedAndSettled();
+
+ MessageConsumer messageConsumer = session.createConsumer(queue);
+ Message receivedMessage = messageConsumer.receive(1000);
+ testPeer.waitForAllHandlersToComplete(3000);
+
+ if(!disableValidation) {
+ assertFalse("Expected property to be indicated as not existing", receivedMessage.propertyExists(invalidPropName));
+
+ try {
+ receivedMessage.getStringProperty(invalidPropName);
+ fail("Expected exception to be thrown");
+ } catch (IllegalArgumentException iae) {
+ // expected
+ }
+ } else {
+ assertTrue(receivedMessage.propertyExists(invalidPropName));
+ assertEquals(value, receivedMessage.getStringProperty(invalidPropName));
+ }
+
+ }
+ }
+
+ @Test(timeout = 5000)
+ public void testSendMessageWithInvalidPropertyName() throws Exception {
+ doSendMessageWithInvalidPropertyNameTestImpl(false);
+ }
+
+ @Test(timeout = 5000)
+ public void testSendMessageWithInvalidPropertyNameAndWithValidationDisabled() throws Exception {
+ doSendMessageWithInvalidPropertyNameTestImpl(true);
+ }
+
+ private void doSendMessageWithInvalidPropertyNameTestImpl(boolean disableValidation) throws Exception {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+ Connection connection = testFixture.establishConnecton(testPeer, "?jms.validatePropertyNames=" + !disableValidation);
+ connection.start();
+
+ testPeer.expectBegin(true);
+
+ String invalidPropName = "invalid-name";
+ String value = "valueA";
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Queue queue = session.createQueue("myQueue");
+
+ testPeer.expectSenderAttach();
+
+ MessageProducer producer = session.createProducer(queue);
+
+ Message message = session.createMessage();
+
+ if (!disableValidation) {
+ try {
+ message.setStringProperty(invalidPropName, value);
+ fail("Expected exception to be thrown");
+ } catch (IllegalArgumentException iae) {
+ // expected
+ }
+ } else {
+ MessageHeaderSectionMatcher headersMatcher = new MessageHeaderSectionMatcher(true);
+ MessageAnnotationsSectionMatcher msgAnnotationsMatcher = new MessageAnnotationsSectionMatcher(true);
+ MessagePropertiesSectionMatcher propsMatcher = new MessagePropertiesSectionMatcher(true);
+ ApplicationPropertiesSectionMatcher appPropsMatcher = new ApplicationPropertiesSectionMatcher(true);
+ appPropsMatcher.withEntry(invalidPropName, equalTo(value));
+
+ TransferPayloadCompositeMatcher messageMatcher = new TransferPayloadCompositeMatcher();
+ messageMatcher.setHeadersMatcher(headersMatcher);
+ messageMatcher.setMessageAnnotationsMatcher(msgAnnotationsMatcher);
+ messageMatcher.setPropertiesMatcher(propsMatcher);
+
+ testPeer.expectTransfer(messageMatcher);
+
+ producer.send(message);
+ }
+
+ testPeer.waitForAllHandlersToComplete(2000);
+ }
+ }
+
//==== Destination Handling ====
//==============================
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e9d752a0/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
index 8df0949..8f4ec31 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
@@ -71,6 +71,8 @@ public class JmsConnectionInfoTest {
info.setSendTimeout(150);
info.setTopicPrefix("topic");
info.setUsername("user");
+ boolean validatePropertyNames = ! info.isValidatePropertyNames();
+ info.setValidatePropertyNames(validatePropertyNames);
JmsConnectionInfo copy = info.copy();
@@ -85,6 +87,7 @@ public class JmsConnectionInfoTest {
assertEquals(150, copy.getSendTimeout());
assertEquals("topic", copy.getTopicPrefix());
assertEquals("user", copy.getUsername());
+ assertEquals(validatePropertyNames, copy.isValidatePropertyNames());
assertEquals(info, copy);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[5/6] qpid-jms git commit: QPIDJMS-48: update docs with new option
Posted by ro...@apache.org.
QPIDJMS-48: update docs with new option
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ef375058
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ef375058
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ef375058
Branch: refs/heads/master
Commit: ef375058577c79340fd84125b6ba877bda048224
Parents: e9d752a
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 9 17:55:38 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 9 18:03:04 2015 +0100
----------------------------------------------------------------------
qpid-jms-docs/Configuration.md | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ef375058/qpid-jms-docs/Configuration.md
----------------------------------------------------------------------
diff --git a/qpid-jms-docs/Configuration.md b/qpid-jms-docs/Configuration.md
index 983c160..661b3ab 100644
--- a/qpid-jms-docs/Configuration.md
+++ b/qpid-jms-docs/Configuration.md
@@ -80,6 +80,7 @@ The options apply to the behaviour of the JMS objects such as Connection, Sessio
+ **jms.alwaysSyncSend** Override all asynchronous send conditions and always sends every Message from a MessageProducer synchronously.
+ **jms.sendAcksAsync** Causes all Message acknowledgments to be sent asynchronously.
+ **jms.localMessagePriority** If enabled prefetched messages are reordered locally based on their given Message priority value.
++ **jms.validatePropertyNames** If message property names should be validated as valid Java identifiers. Default is true.
+ **jms.queuePrefix** Optional prefix value added to the name of any Queue created from a JMS Session.
+ **jms.topicPrefix** Optional prefix value added to the name of any Topic created from a JMS Session.
+ **jms.closeTimeout** Timeout value that controls how long the client waits on Connection close before returning. (By default the client waits 15 seconds for a normal close completion event).
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[6/6] qpid-jms git commit: QPIDJMS-48: make getPropertyNames and
propertyExists consistent with the get/set property methods validation
behaviour. Add initial base for toggle to escape the validation
Posted by ro...@apache.org.
QPIDJMS-48: make getPropertyNames and propertyExists consistent with the get/set property methods validation behaviour. Add initial base for toggle to escape the validation
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/dacdce01
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/dacdce01
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/dacdce01
Branch: refs/heads/master
Commit: dacdce01580485de7b0a86fe08bfd39aeae0d1b1
Parents: f1cb952
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 9 12:33:27 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 9 18:03:04 2015 +0100
----------------------------------------------------------------------
.../org/apache/qpid/jms/message/JmsMessage.java | 42 ++++-
.../apache/qpid/jms/message/JmsMessageTest.java | 176 ++++++++++++++++++-
2 files changed, 202 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/dacdce01/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
index 094ef4a..82f74b2 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java
@@ -43,6 +43,7 @@ public class JmsMessage implements javax.jms.Message {
protected final JmsMessageFacade facade;
protected boolean readOnlyBody;
protected boolean readOnlyProperties;
+ protected boolean validatePropertyNames = true;
public JmsMessage(JmsMessageFacade facade) {
this.facade = facade;
@@ -59,6 +60,7 @@ public class JmsMessage implements javax.jms.Message {
this.readOnlyProperties = other.readOnlyBody;
this.acknowledgeCallback = other.acknowledgeCallback;
this.connection = other.connection;
+ this.validatePropertyNames = other.validatePropertyNames;
}
@Override
@@ -105,6 +107,14 @@ public class JmsMessage implements javax.jms.Message {
facade.clearBody();
}
+ public boolean isValidatePropertyNames() {
+ return validatePropertyNames;
+ }
+
+ public void setValidatePropertyNames(boolean validatePropertyNames) {
+ this.validatePropertyNames = validatePropertyNames;
+ }
+
public boolean isReadOnlyBody() {
return this.readOnlyBody;
}
@@ -243,13 +253,31 @@ public class JmsMessage implements javax.jms.Message {
@Override
public boolean propertyExists(String name) throws JMSException {
+ try {
+ checkPropertyNameIsValid(name);
+ } catch (IllegalArgumentException iae) {
+ return false;
+ }
+
return JmsMessagePropertyIntercepter.propertyExists(facade, name);
}
@Override
public Enumeration<?> getPropertyNames() throws JMSException {
Set<String> result = new HashSet<String>();
- result.addAll(JmsMessagePropertyIntercepter.getPropertyNames(facade, true));
+
+ Set<String> propertyNames = JmsMessagePropertyIntercepter.getPropertyNames(facade, true);
+ for (String name : propertyNames) {
+ try {
+ checkPropertyNameIsValid(name);
+ } catch (IllegalArgumentException iae) {
+ // Don't add the name
+ continue;
+ }
+
+ result.add(name);
+ }
+
return Collections.enumeration(result);
}
@@ -524,13 +552,11 @@ public class JmsMessage implements javax.jms.Message {
throw new IllegalArgumentException("Property name must not be the empty string");
}
- checkIdentifierFormat(propertyName);
- }
-
- private void checkIdentifierFormat(String identifier) throws IllegalArgumentException {
- checkIdentifierLetterAndDigitRequirements(identifier);
- checkIdentifierIsntNullTrueFalse(identifier);
- checkIdentifierIsntLogicOperator(identifier);
+ if (isValidatePropertyNames()) {
+ checkIdentifierLetterAndDigitRequirements(propertyName);
+ checkIdentifierIsntNullTrueFalse(propertyName);
+ checkIdentifierIsntLogicOperator(propertyName);
+ }
}
private void checkIdentifierIsntLogicOperator(String identifier) {
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/dacdce01/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
index 82ede41..23d2b95 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
@@ -36,6 +36,7 @@ import org.apache.qpid.jms.JmsConnection;
import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsTopic;
import org.apache.qpid.jms.message.facade.JmsMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFacade;
import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.junit.Before;
import org.junit.Test;
@@ -211,6 +212,8 @@ public class JmsMessageTest {
msg1.setJMSTimestamp(this.jmsTimestamp);
msg1.setReadOnlyProperties(true);
msg1.setConnection(connection);
+ boolean isValidate = !msg1.isValidatePropertyNames();
+ msg1.setValidatePropertyNames(isValidate);
JmsMessage msg2 = msg1.copy();
assertEquals(msg1.getJMSMessageID(), msg2.getJMSMessageID());
assertTrue(msg1.getJMSCorrelationID().equals(msg2.getJMSCorrelationID()));
@@ -223,6 +226,7 @@ public class JmsMessageTest {
assertEquals(msg1.getJMSPriority(), msg2.getJMSPriority());
assertEquals(msg1.getJMSTimestamp(), msg2.getJMSTimestamp());
assertEquals(msg1.getConnection(), msg2.getConnection());
+ assertEquals(msg1.isValidatePropertyNames(), msg2.isValidatePropertyNames());
LOG.info("Message is: " + msg1);
}
@@ -364,6 +368,34 @@ public class JmsMessageTest {
}
@Test
+ public void testPropertyExistsWithInvalidName() throws JMSException {
+ doPropertyExistsWithInvalidNameTestImpl(false);
+ }
+
+ private void doPropertyExistsWithInvalidNameTestImpl(boolean disableValidation) throws JMSException {
+ String invalidPropName = "my-invalid-property";
+ String valueA = "valueA";
+
+ JmsMessage msg = factory.createMessage();
+ if(disableValidation) {
+ msg.setValidatePropertyNames(false);
+ }
+
+ assertTrue(msg.getFacade() instanceof JmsTestMessageFacade);
+ JmsTestMessageFacade testFacade = (JmsTestMessageFacade) msg.getFacade();
+
+ assertFalse(testFacade.propertyExists(invalidPropName));
+ testFacade.setProperty(invalidPropName, valueA);
+ assertTrue(testFacade.propertyExists(invalidPropName));
+
+ if(!disableValidation) {
+ assertFalse("Property should be indicated to not exist", msg.propertyExists(invalidPropName));
+ } else {
+ assertTrue("Property should be indicated to exist", msg.propertyExists(invalidPropName));
+ }
+ }
+
+ @Test
public void testGetBooleanProperty() throws JMSException {
JmsMessage msg = factory.createMessage();
String name = "booleanProperty";
@@ -437,7 +469,39 @@ public class JmsMessageTest {
}
@Test
- @SuppressWarnings("rawtypes")
+ public void testGetObjectPropertyWithInvalidNameThrowsIAEByDefault() throws JMSException {
+ doGetObjectPropertyNameValidationTestImpl(false);
+ }
+
+ private void doGetObjectPropertyNameValidationTestImpl(boolean disableValidation) throws JMSException {
+ String invalidPropName1 = "my-invalid-property";
+ String valueA = "valueA";
+
+ JmsMessage msg = factory.createMessage();
+ if(disableValidation) {
+ msg.setValidatePropertyNames(false);
+ }
+
+ assertTrue(msg.getFacade() instanceof JmsTestMessageFacade);
+ JmsTestMessageFacade testFacade = (JmsTestMessageFacade) msg.getFacade();
+
+ assertNull(testFacade.getProperty(invalidPropName1));
+ testFacade.setProperty(invalidPropName1, valueA);
+ assertEquals(valueA, testFacade.getProperty(invalidPropName1));
+
+ if (!disableValidation) {
+ try {
+ msg.getObjectProperty(invalidPropName1);
+ fail("expected rejection of identifier");
+ } catch (IllegalArgumentException iae) {
+ //expected
+ }
+ } else {
+ assertEquals(valueA, msg.getObjectProperty(invalidPropName1));
+ }
+ }
+
+ @Test
public void testGetPropertyNames() throws JMSException {
JmsMessage msg = factory.createMessage();
String propName = "floatProperty";
@@ -449,7 +513,7 @@ public class JmsMessageTest {
boolean propNameFound = false;
boolean jmsxNameFound = false;
boolean headerNameFound1 = false;
- for (Enumeration iter = msg.getPropertyNames(); iter.hasMoreElements();) {
+ for (Enumeration<?> iter = msg.getPropertyNames(); iter.hasMoreElements();) {
Object element = iter.nextElement();
propNameFound |= element.equals(propName);
jmsxNameFound |= element.equals(jmsxName);
@@ -462,6 +526,60 @@ public class JmsMessageTest {
}
@Test
+ public void testGetPropertyNamesReturnsValidNamesByDefault() throws JMSException {
+ doGetPropertyNamesResultFilteringTestImpl(false);
+ }
+
+ private void doGetPropertyNamesResultFilteringTestImpl(boolean disableValidation) throws JMSException {
+ String invalidPropName1 = "my-invalid-property1";
+ String invalidPropName2 = "my.invalid.property2";
+ String validPropName = "my_valid_property";
+
+ String valueA = "valueA";
+ String valueB = "valueB";
+ String valueC = "valueC";
+
+ JmsMessage msg = factory.createMessage();
+ if(disableValidation) {
+ msg.setValidatePropertyNames(false);
+ }
+
+ assertTrue(msg.getFacade() instanceof JmsTestMessageFacade);
+ JmsTestMessageFacade testFacade = (JmsTestMessageFacade) msg.getFacade();
+
+ assertNull(testFacade.getProperty(invalidPropName1));
+ assertNull(testFacade.getProperty(invalidPropName2));
+ assertNull(testFacade.getProperty(validPropName));
+
+ testFacade.setProperty(invalidPropName1, valueA);
+ testFacade.setProperty(invalidPropName2, valueB);
+ testFacade.setProperty(validPropName, valueC);
+
+ assertEquals(valueA, testFacade.getProperty(invalidPropName1));
+ assertEquals(valueB, testFacade.getProperty(invalidPropName2));
+ assertEquals(valueC, testFacade.getProperty(validPropName));
+
+ boolean invalidPropName1Found = false;
+ boolean invalidPropName2Found = false;
+ boolean validPropNameFound = false;
+ for (Enumeration<?> iter = msg.getPropertyNames(); iter.hasMoreElements();) {
+ Object element = iter.nextElement();
+ invalidPropName1Found |= element.equals(invalidPropName1);
+ invalidPropName2Found |= element.equals(invalidPropName2);
+ validPropNameFound |= element.equals(validPropName);
+ }
+
+ if (!disableValidation) {
+ assertFalse("Invalid prop name 1 was found", invalidPropName1Found);
+ assertFalse("Invalid prop name 2 was found", invalidPropName2Found);
+ } else {
+ assertTrue("Invalid prop name 1 was not found", invalidPropName1Found);
+ assertTrue("Invalid prop name 2 was not found", invalidPropName2Found);
+ }
+ assertTrue("valid prop name was not found", validPropNameFound);
+ }
+
+ @Test
@SuppressWarnings("rawtypes")
public void testGetAllPropertyNames() throws JMSException {
JmsMessage msg = factory.createMessage();
@@ -1108,12 +1226,32 @@ public class JmsMessageTest {
*/
@Test
public void testSetPropertyWithNonLetterOrDigitCharacterThrowsIAE() throws Exception {
- String propertyName = "name-invalid";
- JmsMessage testMessage = factory.createMessage();
- try {
- testMessage.setObjectProperty(propertyName, "value");
- fail("expected rejection of identifier starting with non-letter character");
- } catch (IllegalArgumentException iae) {
+ doSetObjectPropertyWithNonLetterOrDigitCharacterTestImpl(false);
+ }
+
+ private void doSetObjectPropertyWithNonLetterOrDigitCharacterTestImpl(boolean disableValidation) throws JMSException {
+ String invalidPropertyName = "name-invalid";
+ String valueA = "value";
+
+ JmsMessage msg = factory.createMessage();
+ if(disableValidation) {
+ msg.setValidatePropertyNames(false);
+ }
+
+ assertTrue(msg.getFacade() instanceof JmsTestMessageFacade);
+ JmsTestMessageFacade testFacade = (JmsTestMessageFacade) msg.getFacade();
+
+ if (!disableValidation) {
+ try {
+ msg.setObjectProperty(invalidPropertyName, valueA);
+ fail("expected rejection of identifier starting with non-letter character");
+ } catch (IllegalArgumentException iae) {
+ // Expected
+ }
+ } else {
+ msg.setObjectProperty(invalidPropertyName, valueA);
+
+ assertEquals(valueA, testFacade.getProperty(invalidPropertyName));
}
}
@@ -1290,6 +1428,28 @@ public class JmsMessageTest {
}
}
+ //---------- Test disabling Message Properties name validation -------------//
+
+ @Test
+ public void testGetPropertyNamesReturnsAllNamesWithValidationDisabled() throws JMSException {
+ doGetPropertyNamesResultFilteringTestImpl(true);
+ }
+
+ @Test
+ public void testGetObjectPropertyWithInvalidNameAndValidationDisabled() throws JMSException {
+ doGetObjectPropertyNameValidationTestImpl(true);
+ }
+
+ @Test
+ public void testSetObjectPropertyWithInvalidNameAndValidationDisabled() throws Exception {
+ doSetObjectPropertyWithNonLetterOrDigitCharacterTestImpl(true);
+ }
+
+ @Test
+ public void testPropertyExistsWithInvalidNameAndValidationDisabled() throws JMSException {
+ doPropertyExistsWithInvalidNameTestImpl(true);
+ }
+
//--------- Test support method ------------------------------------------//
private void assertGetMissingPropertyThrowsNumberFormatException(JmsMessage testMessage, String propertyName, Class<?> clazz) throws JMSException {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[3/6] qpid-jms git commit: NO-JIRA: rename test message facades etc
for clarity
Posted by ro...@apache.org.
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
index 1fd2c11..2da2397 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
@@ -20,7 +20,7 @@ import javax.jms.JMSException;
import javax.jms.TextMessage;
import org.apache.qpid.jms.message.JmsTextMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultTextMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestTextMessageFacade;
/**
* Foreign JMS TextMessage class
@@ -30,7 +30,7 @@ public class ForeignJmsTextMessage extends ForeignJmsMessage implements TextMess
private final JmsTextMessage message;
public ForeignJmsTextMessage() {
- super(new JmsTextMessage(new JmsDefaultTextMessageFacade()));
+ super(new JmsTextMessage(new JmsTestTextMessageFacade()));
this.message = (JmsTextMessage) super.message;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProvider.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProvider.java
index 66521d2..6f5e279 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProvider.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProvider.java
@@ -32,7 +32,7 @@ import javax.jms.JMSException;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.JmsOutboundMessageDispatch;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.apache.qpid.jms.meta.JmsConnectionInfo;
import org.apache.qpid.jms.meta.JmsConsumerId;
import org.apache.qpid.jms.meta.JmsResource;
@@ -57,7 +57,7 @@ public class MockProvider implements Provider {
private static final AtomicInteger PROVIDER_SEQUENCE = new AtomicInteger();
- private final JmsMessageFactory messageFactory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory messageFactory = new JmsTestMessageFactory();
private final MockProviderStats stats;
private final URI remoteURI;
private final MockProviderConfiguration configuration;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/FifoMessageQueueTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/FifoMessageQueueTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/FifoMessageQueueTest.java
index 3a7b656..fa54050 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/FifoMessageQueueTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/FifoMessageQueueTest.java
@@ -32,7 +32,7 @@ import javax.jms.JMSException;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
import org.apache.qpid.jms.message.JmsMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFacade;
import org.junit.Before;
import org.junit.Test;
@@ -302,7 +302,7 @@ public class FifoMessageQueueTest {
}
private JmsMessage createMessage(int priority) {
- JmsDefaultMessageFacade facade = new JmsDefaultMessageFacade();
+ JmsTestMessageFacade facade = new JmsTestMessageFacade();
facade.setMessageId(messageId.generateId());
facade.setPriority((byte) priority);
JmsMessage message = new JmsMessage(facade);
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
index ad4d4f3..325cf8b 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
@@ -32,7 +32,7 @@ import javax.jms.JMSException;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
import org.apache.qpid.jms.message.JmsMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFacade;
import org.junit.Before;
import org.junit.Test;
@@ -372,7 +372,7 @@ public class PriorityMessageQueueTest {
}
private JmsMessage createMessage(int priority) {
- JmsDefaultMessageFacade facade = new JmsDefaultMessageFacade();
+ JmsTestMessageFacade facade = new JmsTestMessageFacade();
facade.setMessageId(messageId.generateId());
facade.setPriority((byte) priority);
JmsMessage message = new JmsMessage(facade);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[4/6] qpid-jms git commit: NO-JIRA: rename test message facades etc
for clarity
Posted by ro...@apache.org.
NO-JIRA: rename test message facades etc for clarity
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/f1cb952d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/f1cb952d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/f1cb952d
Branch: refs/heads/master
Commit: f1cb952db1208774e431f5be0051dd614da3ab76
Parents: c2bc146
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 9 10:49:37 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 9 18:03:04 2015 +0100
----------------------------------------------------------------------
.../qpid/jms/message/JmsBytesMessageTest.java | 20 +-
.../qpid/jms/message/JmsMapMessageTest.java | 14 +-
.../apache/qpid/jms/message/JmsMessageTest.java | 4 +-
.../message/JmsMessageTransformationTest.java | 12 +-
.../qpid/jms/message/JmsObjectMessageTest.java | 18 +-
.../qpid/jms/message/JmsStreamMessageTest.java | 8 +-
.../qpid/jms/message/JmsTextMessageTest.java | 4 +-
.../defaults/JmsDefaultBytesMessageFacade.java | 136 --------
.../defaults/JmsDefaultMapMessageFacade.java | 75 -----
.../defaults/JmsDefaultMessageFacade.java | 329 -------------------
.../defaults/JmsDefaultMessageFactory.java | 90 -----
.../defaults/JmsDefaultObjectMessageFacade.java | 99 ------
.../defaults/JmsDefaultStreamMessageFacade.java | 85 -----
.../defaults/JmsDefaultTextMessageFacade.java | 57 ----
.../facade/test/JmsTestBytesMessageFacade.java | 136 ++++++++
.../facade/test/JmsTestMapMessageFacade.java | 75 +++++
.../facade/test/JmsTestMessageFacade.java | 329 +++++++++++++++++++
.../facade/test/JmsTestMessageFactory.java | 90 +++++
.../facade/test/JmsTestObjectMessageFacade.java | 99 ++++++
.../facade/test/JmsTestStreamMessageFacade.java | 85 +++++
.../facade/test/JmsTestTextMessageFacade.java | 57 ++++
.../message/foreign/ForeignJmsBytesMessage.java | 4 +-
.../message/foreign/ForeignJmsMapMessage.java | 4 +-
.../jms/message/foreign/ForeignJmsMessage.java | 4 +-
.../foreign/ForeignJmsObjectMessage.java | 4 +-
.../foreign/ForeignJmsStreamMessage.java | 4 +-
.../message/foreign/ForeignJmsTextMessage.java | 4 +-
.../qpid/jms/provider/mock/MockProvider.java | 4 +-
.../qpid/jms/util/FifoMessageQueueTest.java | 4 +-
.../qpid/jms/util/PriorityMessageQueueTest.java | 4 +-
30 files changed, 929 insertions(+), 929 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
index 0206a68..df71e28 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
@@ -35,8 +35,8 @@ import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestBytesMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.junit.Test;
import org.mockito.Mockito;
@@ -47,7 +47,7 @@ public class JmsBytesMessageTest {
private static final int END_OF_STREAM = -1;
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
@Test
public void testToString() throws Exception {
@@ -89,7 +89,7 @@ public class JmsBytesMessageTest {
@Test
public void testReadBytesUsingReceivedMessageWithBodyReturnsBytes() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -113,7 +113,7 @@ public class JmsBytesMessageTest {
@Test(expected = MessageNotWriteableException.class)
public void testReceivedBytesMessageThrowsMessageNotWriteableExceptionOnWriteBytes() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -138,7 +138,7 @@ public class JmsBytesMessageTest {
@Test
public void testClearBodyOnReceivedBytesMessageMakesMessageWritable() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -154,7 +154,7 @@ public class JmsBytesMessageTest {
@Test
public void testClearBodyOnReceivedBytesMessageClearsFacadeInputStream() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -173,7 +173,7 @@ public class JmsBytesMessageTest {
@Test
public void testGetBodyLengthOnClearedReceivedMessageThrowsMessageNotReadableException() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -195,7 +195,7 @@ public class JmsBytesMessageTest {
@Test
public void testResetOnReceivedBytesMessageResetsMarker() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
@@ -221,7 +221,7 @@ public class JmsBytesMessageTest {
@Test
public void testResetOnNewlyPopulatedBytesMessageResetsMarkerAndMakesReadable() throws Exception {
byte[] content = "myBytesData".getBytes();
- JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade(content);
+ JmsTestBytesMessageFacade facade = new JmsTestBytesMessageFacade(content);
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
index e94dbc3..bbfc983 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
@@ -32,8 +32,8 @@ import javax.jms.MessageFormatException;
import javax.jms.MessageNotWriteableException;
import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMapMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMapMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.junit.Test;
/**
@@ -42,7 +42,7 @@ import org.junit.Test;
*/
public class JmsMapMessageTest {
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
// ======= general =========
@@ -66,7 +66,7 @@ public class JmsMapMessageTest {
*/
@Test
public void testGetMapNamesUsingReceivedMessageReturnsExpectedEnumeration() throws Exception {
- JmsMapMessageFacade facade = new JmsDefaultMapMessageFacade();
+ JmsMapMessageFacade facade = new JmsTestMapMessageFacade();
String myKey1 = "key1";
String myKey2 = "key2";
facade.put(myKey1, "value1");
@@ -114,7 +114,7 @@ public class JmsMapMessageTest {
*/
@Test
public void testReceivedMessageIsReadOnlyAndThrowsMNWE() throws Exception {
- JmsMapMessageFacade facade = new JmsDefaultMapMessageFacade();
+ JmsMapMessageFacade facade = new JmsTestMapMessageFacade();
String myKey1 = "key1";
facade.put(myKey1, "value1");
JmsMapMessage mapMessage = new JmsMapMessage(facade);
@@ -133,7 +133,7 @@ public class JmsMapMessageTest {
*/
@Test
public void testClearBodyMakesReceivedMessageWritable() throws Exception {
- JmsMapMessageFacade facade = new JmsDefaultMapMessageFacade();
+ JmsMapMessageFacade facade = new JmsTestMapMessageFacade();
String myKey1 = "key1";
facade.put(myKey1, "value1");
@@ -152,7 +152,7 @@ public class JmsMapMessageTest {
*/
@Test
public void testClearBodyClearsUnderlyingMessageMap() throws Exception {
- JmsMapMessageFacade facade = new JmsDefaultMapMessageFacade();
+ JmsMapMessageFacade facade = new JmsTestMapMessageFacade();
String myKey1 = "key1";
facade.put(myKey1, "value1");
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
index fe4ea49..82ede41 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
@@ -36,7 +36,7 @@ import org.apache.qpid.jms.JmsConnection;
import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsTopic;
import org.apache.qpid.jms.message.facade.JmsMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -47,7 +47,7 @@ public class JmsMessageTest {
private static final Logger LOG = LoggerFactory.getLogger(JmsMessageTest.class);
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
protected boolean readOnlyMessage;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
index 7fe8a80..4771d7f 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
@@ -37,8 +37,8 @@ import org.apache.qpid.jms.JmsConnection;
import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsQueue;
import org.apache.qpid.jms.JmsTopic;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.apache.qpid.jms.message.foreign.ForeignJmsBytesMessage;
import org.apache.qpid.jms.message.foreign.ForeignJmsMapMessage;
import org.apache.qpid.jms.message.foreign.ForeignJmsMessage;
@@ -64,7 +64,7 @@ public class JmsMessageTransformationTest {
@Test
public void testTransformJmsMessageCopies() throws JMSException {
- JmsMessage source = new JmsMessage(new JmsDefaultMessageFacade());
+ JmsMessage source = new JmsMessage(new JmsTestMessageFacade());
source.setJMSMessageID("ID:CONNECTION:1:1");
@@ -278,8 +278,8 @@ public class JmsMessageTransformationTest {
@Test
public void testJMSMessagePropertiesAreCopied() throws JMSException {
- JmsMessage source = new JmsMessage(new JmsDefaultMessageFacade());
- JmsMessage target = new JmsMessage(new JmsDefaultMessageFacade());
+ JmsMessage source = new JmsMessage(new JmsTestMessageFacade());
+ JmsMessage target = new JmsMessage(new JmsTestMessageFacade());
source.setJMSType("text/test");
@@ -441,7 +441,7 @@ public class JmsMessageTransformationTest {
private JmsConnection createMockJmsConnection() {
JmsConnection connection = Mockito.mock(JmsConnection.class);
- Mockito.when(connection.getMessageFactory()).thenReturn(new JmsDefaultMessageFactory());
+ Mockito.when(connection.getMessageFactory()).thenReturn(new JmsTestMessageFactory());
return connection;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
index 305aa5b..720aaaa 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
@@ -37,8 +37,8 @@ import javax.jms.MessageNotWriteableException;
import javax.jms.ObjectMessage;
import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultObjectMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestObjectMessageFacade;
import org.junit.Test;
import org.mockito.Mockito;
@@ -47,7 +47,7 @@ import org.mockito.Mockito;
*/
public class JmsObjectMessageTest {
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
/**
* Test that attempting to write bytes to a received message (without calling {@link ObjectMessage#clearBody()} first)
@@ -56,7 +56,7 @@ public class JmsObjectMessageTest {
@Test
public void testReceivedObjectMessageThrowsMessageNotWriteableExceptionOnSetObject() throws Exception {
String content = "myStringContent";
- JmsObjectMessageFacade facade = new JmsDefaultObjectMessageFacade();
+ JmsObjectMessageFacade facade = new JmsTestObjectMessageFacade();
facade.setObject(content);
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.onDispatch();
@@ -75,7 +75,7 @@ public class JmsObjectMessageTest {
@Test
public void testToString() throws Exception {
String content = "myStringContent";
- JmsObjectMessageFacade facade = new JmsDefaultObjectMessageFacade();
+ JmsObjectMessageFacade facade = new JmsTestObjectMessageFacade();
facade.setObject(content);
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.onDispatch();
@@ -90,7 +90,7 @@ public class JmsObjectMessageTest {
@Test
public void testClearBodyOnReceivedObjectMessageMakesMessageWritable() throws Exception {
String content = "myStringContent";
- JmsObjectMessageFacade facade = new JmsDefaultObjectMessageFacade();
+ JmsObjectMessageFacade facade = new JmsTestObjectMessageFacade();
facade.setObject(content);
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.onDispatch();
@@ -107,7 +107,7 @@ public class JmsObjectMessageTest {
@Test
public void testClearBodyOnReceivedObjectMessageClearsUnderlyingMessageBody() throws Exception {
String content = "myStringContent";
- JmsDefaultObjectMessageFacade facade = new JmsDefaultObjectMessageFacade();
+ JmsTestObjectMessageFacade facade = new JmsTestObjectMessageFacade();
facade.setObject(content);
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.onDispatch();
@@ -132,7 +132,7 @@ public class JmsObjectMessageTest {
Map<String,String> origMap = new HashMap<String,String>();
origMap.put("key1", "value1");
- JmsDefaultObjectMessageFacade facade = new JmsDefaultObjectMessageFacade();
+ JmsTestObjectMessageFacade facade = new JmsTestObjectMessageFacade();
facade.setObject((Serializable) origMap);
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.onDispatch();
@@ -193,7 +193,7 @@ public class JmsObjectMessageTest {
*/
@Test(expected=MessageFormatException.class)
public void testGetObjectWithFailedDeserialisationThrowsJMSMFE() throws Exception {
- JmsObjectMessageFacade facade = Mockito.mock(JmsDefaultObjectMessageFacade.class);
+ JmsObjectMessageFacade facade = Mockito.mock(JmsTestObjectMessageFacade.class);
Mockito.when(facade.getObject()).thenThrow(new ClassCastException("Failed to get object"));
JmsObjectMessage objectMessage = new JmsObjectMessage(facade);
objectMessage.getObject();
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
index d9e4106..f1c9efe 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
@@ -36,13 +36,13 @@ import javax.jms.MessageNotWriteableException;
import javax.jms.StreamMessage;
import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultStreamMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestStreamMessageFacade;
import org.junit.Test;
public class JmsStreamMessageTest {
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
// ======= general =========
@@ -1065,7 +1065,7 @@ public class JmsStreamMessageTest {
@Test
public void testReadObjectGetsInvalidObjectThrowsMFE() throws Exception {
- JmsStreamMessageFacade facade = new JmsDefaultStreamMessageFacade();
+ JmsStreamMessageFacade facade = new JmsTestStreamMessageFacade();
JmsStreamMessage streamMessage = new JmsStreamMessage(facade);
facade.put(new URI("test://test"));
streamMessage.reset();
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
index ec71189..b9b35f8 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
@@ -28,7 +28,7 @@ import javax.jms.JMSException;
import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
import org.junit.Test;
/**
@@ -36,7 +36,7 @@ import org.junit.Test;
*/
public class JmsTextMessageTest {
- private final JmsMessageFactory factory = new JmsDefaultMessageFactory();
+ private final JmsMessageFactory factory = new JmsTestMessageFactory();
@Test
public void testShallowCopy() throws JMSException {
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
deleted file mode 100644
index 2ff009f..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufInputStream;
-import io.netty.buffer.ByteBufOutputStream;
-import io.netty.buffer.Unpooled;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import javax.jms.IllegalStateException;
-import javax.jms.JMSException;
-
-import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
-
-/**
- * A default implementation of the JmsBytesMessageFacade that simply holds a raw Buffer
- */
-public final class JmsDefaultBytesMessageFacade extends JmsDefaultMessageFacade implements JmsBytesMessageFacade {
-
- private ByteBuf content = Unpooled.EMPTY_BUFFER;
- private ByteBufOutputStream bytesOut;
- private ByteBufInputStream bytesIn;
-
- public JmsDefaultBytesMessageFacade() {
- }
-
- public JmsDefaultBytesMessageFacade(byte[] content) {
- this.content = Unpooled.copiedBuffer(content);
- }
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.BYTES;
- }
-
- @Override
- public JmsDefaultBytesMessageFacade copy() {
- reset();
- JmsDefaultBytesMessageFacade copy = new JmsDefaultBytesMessageFacade();
- copyInto(copy);
- if (this.content != null) {
- copy.content = this.content.copy();
- }
-
- return copy;
- }
-
- @Override
- public void clearBody() {
- if (bytesIn != null) {
- try {
- bytesIn.close();
- } catch (IOException e) {
- }
- bytesIn = null;
- }
- if (bytesOut != null) {
- try {
- bytesOut.close();
- } catch (IOException e) {
- }
- bytesOut = null;
- }
-
- content = Unpooled.EMPTY_BUFFER;
- }
-
- @Override
- public InputStream getInputStream() throws JMSException {
- if (bytesOut != null) {
- throw new IllegalStateException("Body is being written to, cannot perform a read.");
- }
-
- if (bytesIn == null) {
- // Duplicate the content buffer to allow for getBodyLength() validity.
- bytesIn = new ByteBufInputStream(content.duplicate());
- }
-
- return bytesIn;
- }
-
- @Override
- public OutputStream getOutputStream() throws JMSException {
- if (bytesIn != null) {
- throw new IllegalStateException("Body is being read from, cannot perform a write.");
- }
-
- if (bytesOut == null) {
- bytesOut = new ByteBufOutputStream(Unpooled.buffer());
- content = Unpooled.EMPTY_BUFFER;
- }
-
- return bytesOut;
- }
-
- @Override
- public void reset() {
- if (bytesOut != null) {
- content = bytesOut.buffer();
- try {
- bytesOut.close();
- } catch (IOException e) {
- }
- bytesOut = null;
- } else if (bytesIn != null) {
- try {
- bytesIn.close();
- } catch (IOException e) {
- }
- bytesIn = null;
- }
- }
-
- @Override
- public int getBodyLength() {
- return content.readableBytes();
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
deleted file mode 100644
index 33da603..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
-
-/**
- * Simple implementation of the JmsMapMessageFacade used for testing.
- */
-public class JmsDefaultMapMessageFacade extends JmsDefaultMessageFacade implements JmsMapMessageFacade {
-
- protected final Map<String, Object> map = new HashMap<String, Object>();
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.MAP;
- }
-
- @Override
- public JmsDefaultMapMessageFacade copy() {
- JmsDefaultMapMessageFacade copy = new JmsDefaultMapMessageFacade();
- copyInto(copy);
- copy.map.putAll(map);
- return copy;
- }
-
- @Override
- public Enumeration<String> getMapNames() {
- return Collections.enumeration(map.keySet());
- }
-
- @Override
- public boolean itemExists(String key) {
- return map.containsKey(key);
- }
-
- @Override
- public Object get(String key) {
- return map.get(key);
- }
-
- @Override
- public void put(String key, Object value) {
- map.put(key, value);
- }
-
- @Override
- public Object remove(String key) {
- return map.remove(key);
- }
-
- @Override
- public void clearBody() {
- map.clear();
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
deleted file mode 100644
index c384b25..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.nio.charset.Charset;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.jms.JMSException;
-
-import org.apache.qpid.jms.JmsDestination;
-import org.apache.qpid.jms.message.facade.JmsMessageFacade;
-
-/**
- * A default implementation of the JmsMessageFaceade that provides a generic
- * message instance which can be used instead of implemented in Provider specific
- * version that maps to a Provider message object.
- */
-public class JmsDefaultMessageFacade implements JmsMessageFacade {
-
- private static final Charset UTF8 = Charset.forName("UTF-8");
-
- public static enum JmsMsgType {
- MESSAGE("jms/message"),
- BYTES("jms/bytes-message"),
- MAP("jms/map-message"),
- OBJECT("jms/object-message"),
- STREAM("jms/stream-message"),
- TEXT("jms/text-message"),
- TEXT_NULL("jms/text-message-null");
-
- public final String buffer = new String(this.name());
- public final String mime;
-
- JmsMsgType(String mime) {
- this.mime = mime;
- }
- }
-
- protected Map<String, Object> properties = new HashMap<String, Object>();
-
- protected int priority = javax.jms.Message.DEFAULT_PRIORITY;
- protected String groupId;
- protected int groupSequence;
- protected String messageId;
- protected long expiration;
- protected long timestamp;
- protected String correlationId;
- protected boolean persistent;
- protected int redeliveryCount;
- protected String type;
- protected JmsDestination destination;
- protected JmsDestination replyTo;
- protected String userId;
-
- public JmsMsgType getMsgType() {
- return JmsMsgType.MESSAGE;
- }
-
- @Override
- public JmsDefaultMessageFacade copy() {
- JmsDefaultMessageFacade copy = new JmsDefaultMessageFacade();
- copyInto(copy);
- return copy;
- }
-
- protected void copyInto(JmsDefaultMessageFacade target) {
- target.priority = this.priority;
- target.groupSequence = this.groupSequence;
- target.groupId = this.groupId;
- target.expiration = this.expiration;
- target.timestamp = this.timestamp;
- target.correlationId = this.correlationId;
- target.persistent = this.persistent;
- target.redeliveryCount = this.redeliveryCount;
- target.type = this.type;
- target.destination = this.destination;
- target.replyTo = this.replyTo;
- target.userId = this.userId;
- target.messageId = this.messageId;
-
- if (this.properties != null) {
- target.properties = new HashMap<String, Object>(this.properties);
- } else {
- target.properties = null;
- }
- }
-
- @Override
- public Set<String> getPropertyNames() throws JMSException {
- Set<String> names = new HashSet<String>();
- if (properties != null) {
- names.addAll(properties.keySet());
- }
-
- return names;
- }
-
- @Override
- public boolean propertyExists(String key) throws JMSException {
- return this.properties.containsKey(key);
- }
-
- @Override
- public Object getProperty(String key) throws JMSException {
- return this.properties.get(key);
- }
-
- @Override
- public void setProperty(String key, Object value) throws JMSException {
- this.properties.put(key, value);
- }
-
- @Override
- public void onSend(boolean disableMessageId, boolean disableTimestamp, long producerTtl) throws JMSException {
- }
-
- @Override
- public void onDispatch() throws JMSException {
- }
-
- @Override
- public void clearBody() {
- }
-
- @Override
- public void clearProperties() {
- properties.clear();
- }
-
- @Override
- public String getMessageId() {
- return messageId;
- }
-
- @Override
- public Object getProviderMessageIdObject() {
- return messageId;
- }
-
- @Override
- public void setMessageId(String messageId) {
- this.messageId = messageId;
- }
-
- @Override
- public long getTimestamp() {
- return this.timestamp;
- }
-
- @Override
- public void setTimestamp(long timestamp) {
- this.timestamp = timestamp;
- }
-
- @Override
- public String getCorrelationId() {
- return correlationId;
- }
-
- @Override
- public void setCorrelationId(String correlationId) {
- this.correlationId = correlationId;
- }
-
- @Override
- public byte[] getCorrelationIdBytes() {
- return correlationId.getBytes(UTF8);
- }
-
- @Override
- public void setCorrelationIdBytes(byte[] correlationId) {
- if (correlationId != null && correlationId.length > 0) {
- this.correlationId = new String(correlationId, UTF8);
- } else {
- this.correlationId = null;
- }
- }
-
- @Override
- public boolean isPersistent() {
- return this.persistent;
- }
-
- @Override
- public void setPersistent(boolean value) {
- this.persistent = value;
- }
-
- @Override
- public int getDeliveryCount() {
- return this.redeliveryCount + 1;
- }
-
- @Override
- public void setDeliveryCount(int deliveryCount) {
- this.redeliveryCount = deliveryCount - 1;
- }
-
- @Override
- public int getRedeliveryCount() {
- return this.redeliveryCount;
- }
-
- @Override
- public void setRedeliveryCount(int redeliveryCount) {
- this.redeliveryCount = redeliveryCount;
- }
-
- @Override
- public boolean isRedelivered() {
- return redeliveryCount > 0;
- }
-
- @Override
- public void setRedelivered(boolean redelivered) {
- if (redelivered) {
- if (!isRedelivered()) {
- setRedeliveryCount(1);
- }
- } else {
- if (isRedelivered()) {
- setRedeliveryCount(0);
- }
- }
- }
-
- @Override
- public String getType() {
- return type;
- }
-
- @Override
- public void setType(String type) {
- this.type = type;
- }
-
- @Override
- public int getPriority() {
- return priority;
- }
-
- @Override
- public void setPriority(int priority) {
- if (priority < 0) {
- this.priority = 0;
- } else if (priority > 9) {
- this.priority = 9;
- } else {
- this.priority = priority;
- }
- }
-
- @Override
- public long getExpiration() {
- return expiration;
- }
-
- @Override
- public void setExpiration(long expiration) {
- this.expiration = expiration;
- }
-
- @Override
- public JmsDestination getDestination() {
- return this.destination;
- }
-
- @Override
- public void setDestination(JmsDestination destination) {
- this.destination = destination;
- }
-
- @Override
- public JmsDestination getReplyTo() {
- return this.replyTo;
- }
-
- @Override
- public void setReplyTo(JmsDestination replyTo) {
- this.replyTo = replyTo;
- }
-
- @Override
- public String getUserId() {
- return this.userId;
- }
-
- @Override
- public void setUserId(String userId) {
- this.userId = userId;
- }
-
- @Override
- public String getGroupId() {
- return this.groupId;
- }
-
- @Override
- public void setGroupId(String groupId) {
- this.groupId = groupId;
- }
-
- @Override
- public int getGroupSequence() {
- return this.groupSequence;
- }
-
- @Override
- public void setGroupSequence(int groupSequence) {
- this.groupSequence = groupSequence;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
deleted file mode 100644
index 2c91bad..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.io.Serializable;
-
-import javax.jms.JMSException;
-
-import org.apache.qpid.jms.message.JmsBytesMessage;
-import org.apache.qpid.jms.message.JmsMapMessage;
-import org.apache.qpid.jms.message.JmsMessage;
-import org.apache.qpid.jms.message.JmsMessageFactory;
-import org.apache.qpid.jms.message.JmsObjectMessage;
-import org.apache.qpid.jms.message.JmsStreamMessage;
-import org.apache.qpid.jms.message.JmsTextMessage;
-
-/**
- * Implementation of the JmsMessageFactory that create simple
- * javax.jms.Message instances with test facades.
- */
-public class JmsDefaultMessageFactory implements JmsMessageFactory {
-
- @Override
- public JmsMessage createMessage() throws UnsupportedOperationException {
- return new JmsMessage(new JmsDefaultMessageFacade());
- }
-
- @Override
- public JmsTextMessage createTextMessage() throws UnsupportedOperationException {
- return createTextMessage(null);
- }
-
- @Override
- public JmsTextMessage createTextMessage(String payload) throws UnsupportedOperationException {
- JmsTextMessage result = new JmsTextMessage(new JmsDefaultTextMessageFacade());
- if (payload != null) {
- try {
- result.setText(payload);
- } catch (JMSException e) {
- }
- }
- return result;
- }
-
- @Override
- public JmsBytesMessage createBytesMessage() throws UnsupportedOperationException {
- return new JmsBytesMessage(new JmsDefaultBytesMessageFacade());
- }
-
- @Override
- public JmsMapMessage createMapMessage() throws UnsupportedOperationException {
- return new JmsMapMessage(new JmsDefaultMapMessageFacade());
- }
-
- @Override
- public JmsStreamMessage createStreamMessage() throws UnsupportedOperationException {
- return new JmsStreamMessage(new JmsDefaultStreamMessageFacade());
- }
-
- @Override
- public JmsObjectMessage createObjectMessage() throws UnsupportedOperationException {
- return createObjectMessage(null);
- }
-
- @Override
- public JmsObjectMessage createObjectMessage(Serializable payload) throws UnsupportedOperationException {
- JmsObjectMessage result = new JmsObjectMessage(new JmsDefaultObjectMessageFacade());
- if (payload != null) {
- try {
- result.setObject(payload);
- } catch (Exception e) {
- }
- }
- return result;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
deleted file mode 100644
index 04608b8..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.util.Arrays;
-
-import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
-import org.apache.qpid.jms.util.ClassLoadingAwareObjectInputStream;
-
-/**
- * Default implementation for a JMS Object Message Facade.
- */
-public class JmsDefaultObjectMessageFacade extends JmsDefaultMessageFacade implements JmsObjectMessageFacade {
-
- private byte[] object;
-
- public byte[] getSerializedObject() {
- return object;
- }
-
- public void setSerializedObject(byte[] object) {
- this.object = object;
- }
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.OBJECT;
- }
-
- @Override
- public JmsDefaultObjectMessageFacade copy() {
- JmsDefaultObjectMessageFacade copy = new JmsDefaultObjectMessageFacade();
- copyInto(copy);
- if (object != null) {
- copy.object = Arrays.copyOf(object, object.length);
- }
-
- return copy;
- }
-
- @Override
- public void clearBody() {
- this.object = null;
- }
-
- @Override
- public Serializable getObject() throws IOException, ClassNotFoundException {
- if (object == null) {
- return null;
- }
-
- Serializable serialized = null;
-
- try (ByteArrayInputStream dataIn = new ByteArrayInputStream(object);
- ClassLoadingAwareObjectInputStream objIn = new ClassLoadingAwareObjectInputStream(dataIn)) {
-
- serialized = (Serializable) objIn.readObject();
- }
-
- return serialized;
- }
-
- @Override
- public void setObject(Serializable value) throws IOException {
- byte[] serialized = null;
- if (value != null) {
- try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos)) {
-
- oos.writeObject(value);
- oos.flush();
- oos.close();
-
- serialized = baos.toByteArray();
- }
- }
-
- this.object = serialized;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
deleted file mode 100644
index 1a0a17a..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jms.MessageEOFException;
-
-import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
-
-/**
- * Default implementation of the JmsStreamMessageFacade
- */
-public class JmsDefaultStreamMessageFacade extends JmsDefaultMessageFacade implements JmsStreamMessageFacade {
-
- private final List<Object> stream = new ArrayList<Object>();
- private int index = -1;
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.STREAM;
- }
-
- @Override
- public JmsDefaultStreamMessageFacade copy() {
- JmsDefaultStreamMessageFacade copy = new JmsDefaultStreamMessageFacade();
- copyInto(copy);
- copy.stream.addAll(stream);
- return copy;
- }
-
- @Override
- public boolean hasNext() {
- return !stream.isEmpty() && index < stream.size();
- }
-
- @Override
- public Object peek() throws MessageEOFException {
- if (stream.isEmpty() || index + 1 >= stream.size()) {
- throw new MessageEOFException("Attempted to read past the end of the stream");
- }
-
- return stream.get(index + 1);
- }
-
- @Override
- public void pop() throws MessageEOFException {
- if (stream.isEmpty() || index + 1 >= stream.size()) {
- throw new MessageEOFException("Attempted to read past the end of the stream");
- }
-
- index++;
- }
-
- @Override
- public void put(Object value) {
- stream.add(value);
- }
-
- @Override
- public void clearBody() {
- stream.clear();
- index = -1;
- }
-
- @Override
- public void reset() {
- index = -1;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
deleted file mode 100644
index 2d56c84..0000000
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import org.apache.qpid.jms.message.facade.JmsTextMessageFacade;
-
-/**
- * Default implementation of the JmsTextMessageFacade.
- */
-public final class JmsDefaultTextMessageFacade extends JmsDefaultMessageFacade implements JmsTextMessageFacade {
-
- private String text;
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.TEXT;
- }
-
- @Override
- public JmsDefaultTextMessageFacade copy() {
- JmsDefaultTextMessageFacade copy = new JmsDefaultTextMessageFacade();
- copyInto(copy);
- if (text != null) {
- copy.setText(text);
- }
- return copy;
- }
-
- @Override
- public void clearBody() {
- this.text = null;
- }
-
- @Override
- public String getText() {
- return text;
- }
-
- @Override
- public void setText(String text) {
- this.text = text;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestBytesMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestBytesMessageFacade.java
new file mode 100644
index 0000000..c608a76
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestBytesMessageFacade.java
@@ -0,0 +1,136 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufInputStream;
+import io.netty.buffer.ByteBufOutputStream;
+import io.netty.buffer.Unpooled;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
+
+/**
+ * A test implementation of the JmsBytesMessageFacade that simply holds a raw Buffer
+ */
+public final class JmsTestBytesMessageFacade extends JmsTestMessageFacade implements JmsBytesMessageFacade {
+
+ private ByteBuf content = Unpooled.EMPTY_BUFFER;
+ private ByteBufOutputStream bytesOut;
+ private ByteBufInputStream bytesIn;
+
+ public JmsTestBytesMessageFacade() {
+ }
+
+ public JmsTestBytesMessageFacade(byte[] content) {
+ this.content = Unpooled.copiedBuffer(content);
+ }
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.BYTES;
+ }
+
+ @Override
+ public JmsTestBytesMessageFacade copy() {
+ reset();
+ JmsTestBytesMessageFacade copy = new JmsTestBytesMessageFacade();
+ copyInto(copy);
+ if (this.content != null) {
+ copy.content = this.content.copy();
+ }
+
+ return copy;
+ }
+
+ @Override
+ public void clearBody() {
+ if (bytesIn != null) {
+ try {
+ bytesIn.close();
+ } catch (IOException e) {
+ }
+ bytesIn = null;
+ }
+ if (bytesOut != null) {
+ try {
+ bytesOut.close();
+ } catch (IOException e) {
+ }
+ bytesOut = null;
+ }
+
+ content = Unpooled.EMPTY_BUFFER;
+ }
+
+ @Override
+ public InputStream getInputStream() throws JMSException {
+ if (bytesOut != null) {
+ throw new IllegalStateException("Body is being written to, cannot perform a read.");
+ }
+
+ if (bytesIn == null) {
+ // Duplicate the content buffer to allow for getBodyLength() validity.
+ bytesIn = new ByteBufInputStream(content.duplicate());
+ }
+
+ return bytesIn;
+ }
+
+ @Override
+ public OutputStream getOutputStream() throws JMSException {
+ if (bytesIn != null) {
+ throw new IllegalStateException("Body is being read from, cannot perform a write.");
+ }
+
+ if (bytesOut == null) {
+ bytesOut = new ByteBufOutputStream(Unpooled.buffer());
+ content = Unpooled.EMPTY_BUFFER;
+ }
+
+ return bytesOut;
+ }
+
+ @Override
+ public void reset() {
+ if (bytesOut != null) {
+ content = bytesOut.buffer();
+ try {
+ bytesOut.close();
+ } catch (IOException e) {
+ }
+ bytesOut = null;
+ } else if (bytesIn != null) {
+ try {
+ bytesIn.close();
+ } catch (IOException e) {
+ }
+ bytesIn = null;
+ }
+ }
+
+ @Override
+ public int getBodyLength() {
+ return content.readableBytes();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMapMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMapMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMapMessageFacade.java
new file mode 100644
index 0000000..dc11c7b
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMapMessageFacade.java
@@ -0,0 +1,75 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
+
+/**
+ * Simple implementation of the JmsMapMessageFacade used for testing.
+ */
+public class JmsTestMapMessageFacade extends JmsTestMessageFacade implements JmsMapMessageFacade {
+
+ protected final Map<String, Object> map = new HashMap<String, Object>();
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.MAP;
+ }
+
+ @Override
+ public JmsTestMapMessageFacade copy() {
+ JmsTestMapMessageFacade copy = new JmsTestMapMessageFacade();
+ copyInto(copy);
+ copy.map.putAll(map);
+ return copy;
+ }
+
+ @Override
+ public Enumeration<String> getMapNames() {
+ return Collections.enumeration(map.keySet());
+ }
+
+ @Override
+ public boolean itemExists(String key) {
+ return map.containsKey(key);
+ }
+
+ @Override
+ public Object get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public void put(String key, Object value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public Object remove(String key) {
+ return map.remove(key);
+ }
+
+ @Override
+ public void clearBody() {
+ map.clear();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFacade.java
new file mode 100644
index 0000000..29adafd
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFacade.java
@@ -0,0 +1,329 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.message.facade.JmsMessageFacade;
+
+/**
+ * A test implementation of the JmsMessageFaceade that provides a generic
+ * message instance which can be used instead of implemented in Provider specific
+ * version that maps to a Provider message object.
+ */
+public class JmsTestMessageFacade implements JmsMessageFacade {
+
+ private static final Charset UTF8 = Charset.forName("UTF-8");
+
+ public static enum JmsMsgType {
+ MESSAGE("jms/message"),
+ BYTES("jms/bytes-message"),
+ MAP("jms/map-message"),
+ OBJECT("jms/object-message"),
+ STREAM("jms/stream-message"),
+ TEXT("jms/text-message"),
+ TEXT_NULL("jms/text-message-null");
+
+ public final String buffer = new String(this.name());
+ public final String mime;
+
+ JmsMsgType(String mime) {
+ this.mime = mime;
+ }
+ }
+
+ protected Map<String, Object> properties = new HashMap<String, Object>();
+
+ protected int priority = javax.jms.Message.DEFAULT_PRIORITY;
+ protected String groupId;
+ protected int groupSequence;
+ protected String messageId;
+ protected long expiration;
+ protected long timestamp;
+ protected String correlationId;
+ protected boolean persistent;
+ protected int redeliveryCount;
+ protected String type;
+ protected JmsDestination destination;
+ protected JmsDestination replyTo;
+ protected String userId;
+
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.MESSAGE;
+ }
+
+ @Override
+ public JmsTestMessageFacade copy() {
+ JmsTestMessageFacade copy = new JmsTestMessageFacade();
+ copyInto(copy);
+ return copy;
+ }
+
+ protected void copyInto(JmsTestMessageFacade target) {
+ target.priority = this.priority;
+ target.groupSequence = this.groupSequence;
+ target.groupId = this.groupId;
+ target.expiration = this.expiration;
+ target.timestamp = this.timestamp;
+ target.correlationId = this.correlationId;
+ target.persistent = this.persistent;
+ target.redeliveryCount = this.redeliveryCount;
+ target.type = this.type;
+ target.destination = this.destination;
+ target.replyTo = this.replyTo;
+ target.userId = this.userId;
+ target.messageId = this.messageId;
+
+ if (this.properties != null) {
+ target.properties = new HashMap<String, Object>(this.properties);
+ } else {
+ target.properties = null;
+ }
+ }
+
+ @Override
+ public Set<String> getPropertyNames() throws JMSException {
+ Set<String> names = new HashSet<String>();
+ if (properties != null) {
+ names.addAll(properties.keySet());
+ }
+
+ return names;
+ }
+
+ @Override
+ public boolean propertyExists(String key) throws JMSException {
+ return this.properties.containsKey(key);
+ }
+
+ @Override
+ public Object getProperty(String key) throws JMSException {
+ return this.properties.get(key);
+ }
+
+ @Override
+ public void setProperty(String key, Object value) throws JMSException {
+ this.properties.put(key, value);
+ }
+
+ @Override
+ public void onSend(boolean disableMessageId, boolean disableTimestamp, long producerTtl) throws JMSException {
+ }
+
+ @Override
+ public void onDispatch() throws JMSException {
+ }
+
+ @Override
+ public void clearBody() {
+ }
+
+ @Override
+ public void clearProperties() {
+ properties.clear();
+ }
+
+ @Override
+ public String getMessageId() {
+ return messageId;
+ }
+
+ @Override
+ public Object getProviderMessageIdObject() {
+ return messageId;
+ }
+
+ @Override
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
+ @Override
+ public long getTimestamp() {
+ return this.timestamp;
+ }
+
+ @Override
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ @Override
+ public String getCorrelationId() {
+ return correlationId;
+ }
+
+ @Override
+ public void setCorrelationId(String correlationId) {
+ this.correlationId = correlationId;
+ }
+
+ @Override
+ public byte[] getCorrelationIdBytes() {
+ return correlationId.getBytes(UTF8);
+ }
+
+ @Override
+ public void setCorrelationIdBytes(byte[] correlationId) {
+ if (correlationId != null && correlationId.length > 0) {
+ this.correlationId = new String(correlationId, UTF8);
+ } else {
+ this.correlationId = null;
+ }
+ }
+
+ @Override
+ public boolean isPersistent() {
+ return this.persistent;
+ }
+
+ @Override
+ public void setPersistent(boolean value) {
+ this.persistent = value;
+ }
+
+ @Override
+ public int getDeliveryCount() {
+ return this.redeliveryCount + 1;
+ }
+
+ @Override
+ public void setDeliveryCount(int deliveryCount) {
+ this.redeliveryCount = deliveryCount - 1;
+ }
+
+ @Override
+ public int getRedeliveryCount() {
+ return this.redeliveryCount;
+ }
+
+ @Override
+ public void setRedeliveryCount(int redeliveryCount) {
+ this.redeliveryCount = redeliveryCount;
+ }
+
+ @Override
+ public boolean isRedelivered() {
+ return redeliveryCount > 0;
+ }
+
+ @Override
+ public void setRedelivered(boolean redelivered) {
+ if (redelivered) {
+ if (!isRedelivered()) {
+ setRedeliveryCount(1);
+ }
+ } else {
+ if (isRedelivered()) {
+ setRedeliveryCount(0);
+ }
+ }
+ }
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public void setPriority(int priority) {
+ if (priority < 0) {
+ this.priority = 0;
+ } else if (priority > 9) {
+ this.priority = 9;
+ } else {
+ this.priority = priority;
+ }
+ }
+
+ @Override
+ public long getExpiration() {
+ return expiration;
+ }
+
+ @Override
+ public void setExpiration(long expiration) {
+ this.expiration = expiration;
+ }
+
+ @Override
+ public JmsDestination getDestination() {
+ return this.destination;
+ }
+
+ @Override
+ public void setDestination(JmsDestination destination) {
+ this.destination = destination;
+ }
+
+ @Override
+ public JmsDestination getReplyTo() {
+ return this.replyTo;
+ }
+
+ @Override
+ public void setReplyTo(JmsDestination replyTo) {
+ this.replyTo = replyTo;
+ }
+
+ @Override
+ public String getUserId() {
+ return this.userId;
+ }
+
+ @Override
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ @Override
+ public String getGroupId() {
+ return this.groupId;
+ }
+
+ @Override
+ public void setGroupId(String groupId) {
+ this.groupId = groupId;
+ }
+
+ @Override
+ public int getGroupSequence() {
+ return this.groupSequence;
+ }
+
+ @Override
+ public void setGroupSequence(int groupSequence) {
+ this.groupSequence = groupSequence;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFactory.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFactory.java
new file mode 100644
index 0000000..5aa37ae
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestMessageFactory.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import java.io.Serializable;
+
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.message.JmsBytesMessage;
+import org.apache.qpid.jms.message.JmsMapMessage;
+import org.apache.qpid.jms.message.JmsMessage;
+import org.apache.qpid.jms.message.JmsMessageFactory;
+import org.apache.qpid.jms.message.JmsObjectMessage;
+import org.apache.qpid.jms.message.JmsStreamMessage;
+import org.apache.qpid.jms.message.JmsTextMessage;
+
+/**
+ * Implementation of the JmsMessageFactory that create simple
+ * javax.jms.Message instances with test facades.
+ */
+public class JmsTestMessageFactory implements JmsMessageFactory {
+
+ @Override
+ public JmsMessage createMessage() throws UnsupportedOperationException {
+ return new JmsMessage(new JmsTestMessageFacade());
+ }
+
+ @Override
+ public JmsTextMessage createTextMessage() throws UnsupportedOperationException {
+ return createTextMessage(null);
+ }
+
+ @Override
+ public JmsTextMessage createTextMessage(String payload) throws UnsupportedOperationException {
+ JmsTextMessage result = new JmsTextMessage(new JmsTestTextMessageFacade());
+ if (payload != null) {
+ try {
+ result.setText(payload);
+ } catch (JMSException e) {
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public JmsBytesMessage createBytesMessage() throws UnsupportedOperationException {
+ return new JmsBytesMessage(new JmsTestBytesMessageFacade());
+ }
+
+ @Override
+ public JmsMapMessage createMapMessage() throws UnsupportedOperationException {
+ return new JmsMapMessage(new JmsTestMapMessageFacade());
+ }
+
+ @Override
+ public JmsStreamMessage createStreamMessage() throws UnsupportedOperationException {
+ return new JmsStreamMessage(new JmsTestStreamMessageFacade());
+ }
+
+ @Override
+ public JmsObjectMessage createObjectMessage() throws UnsupportedOperationException {
+ return createObjectMessage(null);
+ }
+
+ @Override
+ public JmsObjectMessage createObjectMessage(Serializable payload) throws UnsupportedOperationException {
+ JmsObjectMessage result = new JmsObjectMessage(new JmsTestObjectMessageFacade());
+ if (payload != null) {
+ try {
+ result.setObject(payload);
+ } catch (Exception e) {
+ }
+ }
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestObjectMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestObjectMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestObjectMessageFacade.java
new file mode 100644
index 0000000..699ef1f
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestObjectMessageFacade.java
@@ -0,0 +1,99 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Arrays;
+
+import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
+import org.apache.qpid.jms.util.ClassLoadingAwareObjectInputStream;
+
+/**
+ * Test implementation for a JMS Object Message Facade.
+ */
+public class JmsTestObjectMessageFacade extends JmsTestMessageFacade implements JmsObjectMessageFacade {
+
+ private byte[] object;
+
+ public byte[] getSerializedObject() {
+ return object;
+ }
+
+ public void setSerializedObject(byte[] object) {
+ this.object = object;
+ }
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.OBJECT;
+ }
+
+ @Override
+ public JmsTestObjectMessageFacade copy() {
+ JmsTestObjectMessageFacade copy = new JmsTestObjectMessageFacade();
+ copyInto(copy);
+ if (object != null) {
+ copy.object = Arrays.copyOf(object, object.length);
+ }
+
+ return copy;
+ }
+
+ @Override
+ public void clearBody() {
+ this.object = null;
+ }
+
+ @Override
+ public Serializable getObject() throws IOException, ClassNotFoundException {
+ if (object == null) {
+ return null;
+ }
+
+ Serializable serialized = null;
+
+ try (ByteArrayInputStream dataIn = new ByteArrayInputStream(object);
+ ClassLoadingAwareObjectInputStream objIn = new ClassLoadingAwareObjectInputStream(dataIn)) {
+
+ serialized = (Serializable) objIn.readObject();
+ }
+
+ return serialized;
+ }
+
+ @Override
+ public void setObject(Serializable value) throws IOException {
+ byte[] serialized = null;
+ if (value != null) {
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos)) {
+
+ oos.writeObject(value);
+ oos.flush();
+ oos.close();
+
+ serialized = baos.toByteArray();
+ }
+ }
+
+ this.object = serialized;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestStreamMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestStreamMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestStreamMessageFacade.java
new file mode 100644
index 0000000..7353b0c
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestStreamMessageFacade.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jms.MessageEOFException;
+
+import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
+
+/**
+ * Test implementation of the JmsStreamMessageFacade
+ */
+public class JmsTestStreamMessageFacade extends JmsTestMessageFacade implements JmsStreamMessageFacade {
+
+ private final List<Object> stream = new ArrayList<Object>();
+ private int index = -1;
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.STREAM;
+ }
+
+ @Override
+ public JmsTestStreamMessageFacade copy() {
+ JmsTestStreamMessageFacade copy = new JmsTestStreamMessageFacade();
+ copyInto(copy);
+ copy.stream.addAll(stream);
+ return copy;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return !stream.isEmpty() && index < stream.size();
+ }
+
+ @Override
+ public Object peek() throws MessageEOFException {
+ if (stream.isEmpty() || index + 1 >= stream.size()) {
+ throw new MessageEOFException("Attempted to read past the end of the stream");
+ }
+
+ return stream.get(index + 1);
+ }
+
+ @Override
+ public void pop() throws MessageEOFException {
+ if (stream.isEmpty() || index + 1 >= stream.size()) {
+ throw new MessageEOFException("Attempted to read past the end of the stream");
+ }
+
+ index++;
+ }
+
+ @Override
+ public void put(Object value) {
+ stream.add(value);
+ }
+
+ @Override
+ public void clearBody() {
+ stream.clear();
+ index = -1;
+ }
+
+ @Override
+ public void reset() {
+ index = -1;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestTextMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestTextMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestTextMessageFacade.java
new file mode 100644
index 0000000..8a8cfd6
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/test/JmsTestTextMessageFacade.java
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.test;
+
+import org.apache.qpid.jms.message.facade.JmsTextMessageFacade;
+
+/**
+ * Test implementation of the JmsTextMessageFacade.
+ */
+public final class JmsTestTextMessageFacade extends JmsTestMessageFacade implements JmsTextMessageFacade {
+
+ private String text;
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.TEXT;
+ }
+
+ @Override
+ public JmsTestTextMessageFacade copy() {
+ JmsTestTextMessageFacade copy = new JmsTestTextMessageFacade();
+ copyInto(copy);
+ if (text != null) {
+ copy.setText(text);
+ }
+ return copy;
+ }
+
+ @Override
+ public void clearBody() {
+ this.text = null;
+ }
+
+ @Override
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public void setText(String text) {
+ this.text = text;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
index d8ea4be..7a04c96 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
@@ -20,7 +20,7 @@ import javax.jms.BytesMessage;
import javax.jms.JMSException;
import org.apache.qpid.jms.message.JmsBytesMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestBytesMessageFacade;
/**
* Foreign JMS BytesMessage type.
@@ -30,7 +30,7 @@ public class ForeignJmsBytesMessage extends ForeignJmsMessage implements BytesMe
private final JmsBytesMessage message;
public ForeignJmsBytesMessage() {
- super(new JmsBytesMessage(new JmsDefaultBytesMessageFacade()));
+ super(new JmsBytesMessage(new JmsTestBytesMessageFacade()));
this.message = (JmsBytesMessage) super.message;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
index 9d31868..71888fd 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
@@ -22,7 +22,7 @@ import javax.jms.JMSException;
import javax.jms.MapMessage;
import org.apache.qpid.jms.message.JmsMapMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMapMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestMapMessageFacade;
/**
* Foreign JMS MapMessage class
@@ -32,7 +32,7 @@ public class ForeignJmsMapMessage extends ForeignJmsMessage implements MapMessag
private final JmsMapMessage message;
public ForeignJmsMapMessage() {
- super(new JmsMapMessage(new JmsDefaultMapMessageFacade()));
+ super(new JmsMapMessage(new JmsTestMapMessageFacade()));
this.message = (JmsMapMessage) super.message;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
index 3ce20a0..503dd47 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
@@ -23,7 +23,7 @@ import javax.jms.JMSException;
import javax.jms.Message;
import org.apache.qpid.jms.message.JmsMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.facade.test.JmsTestMessageFactory;
/**
* Test class used to simulate receipt of a JMS Message from another
@@ -34,7 +34,7 @@ public class ForeignJmsMessage implements Message {
protected final JmsMessage message;
public ForeignJmsMessage() {
- this.message = new JmsDefaultMessageFactory().createMessage();
+ this.message = new JmsTestMessageFactory().createMessage();
}
protected ForeignJmsMessage(JmsMessage message) {
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
index dcce895..2097655 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
@@ -22,7 +22,7 @@ import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import org.apache.qpid.jms.message.JmsObjectMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultObjectMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestObjectMessageFacade;
/**
* Foreign JMS ObjectMessage class
@@ -32,7 +32,7 @@ public class ForeignJmsObjectMessage extends ForeignJmsMessage implements Object
private final JmsObjectMessage message;
public ForeignJmsObjectMessage() {
- super(new JmsObjectMessage(new JmsDefaultObjectMessageFacade()));
+ super(new JmsObjectMessage(new JmsTestObjectMessageFacade()));
this.message = (JmsObjectMessage) super.message;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f1cb952d/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
index b35f455..268b3f8 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
@@ -20,7 +20,7 @@ import javax.jms.JMSException;
import javax.jms.StreamMessage;
import org.apache.qpid.jms.message.JmsStreamMessage;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultStreamMessageFacade;
+import org.apache.qpid.jms.message.facade.test.JmsTestStreamMessageFacade;
/**
* Foreign JMS StreamMessage class
@@ -30,7 +30,7 @@ public class ForeignJmsStreamMessage extends ForeignJmsMessage implements Stream
private final JmsStreamMessage message;
public ForeignJmsStreamMessage() {
- super(new JmsStreamMessage(new JmsDefaultStreamMessageFacade()));
+ super(new JmsStreamMessage(new JmsTestStreamMessageFacade()));
this.message = (JmsStreamMessage) super.message;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org