QPIDJMS-208 Assign the set deserialization policy to new connections.

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/1c3ff1cb
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/1c3ff1cb
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/1c3ff1cb

Branch: refs/heads/master
Commit: 1c3ff1cbba17bb1f2fe09735abd16d96c1c40339
Parents: 6dd3d2b
Author: Timothy Bish <tabish...@gmail.com>
Authored: Tue Sep 20 11:23:40 2016 -0400
Committer: Timothy Bish <tabish...@gmail.com>
Committed: Tue Sep 20 11:23:40 2016 -0400

----------------------------------------------------------------------
 .../apache/qpid/jms/JmsConnectionFactory.java   |  1 +
 .../qpid/jms/JmsConnectionFactoryTest.java      | 24 ++++++++++++++++++++
 .../qpid/jms/SerializationTestSupport.java      | 15 ++++++++++++
 3 files changed, 40 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1c3ff1cb/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 4105842..c40b9f1 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
@@ -219,6 +219,7 @@ public class JmsConnectionFactory extends JNDIStorable 
implements ConnectionFact
             connection.setPrefetchPolicy(prefetchPolicy.copy());
             connection.setPresettlePolicy(presettlePolicy.copy());
             connection.setRedeliveryPolicy(redeliveryPolicy.copy());
+            connection.setDeserializationPolicy(deserializationPolicy.copy());
 
             PropertyUtil.setProperties(connection, properties);
             connection.setExceptionListener(exceptionListener);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1c3ff1cb/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
index 48c668b..ea8c867 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
@@ -732,4 +732,28 @@ public class JmsConnectionFactoryTest extends 
QpidJmsTestCase {
             fail("should throw IllegalArgumentException");
         } catch (IllegalArgumentException ex) {}
     }
+
+    @Test
+    public void testDeserializationPolicyRestsToDefault() {
+        JmsConnectionFactory factory = new 
JmsConnectionFactory("amqp://127.0.0.1:5672");
+
+        assertNotNull(factory.getDeserializationPolicy());
+        factory.setDeserializationPolicy(null);
+        assertNotNull(factory.getDeserializationPolicy());
+        assertTrue(factory.getDeserializationPolicy() instanceof 
JmsDefaultDeserializationPolicy);
+    }
+
+    @Test
+    public void testCustomDeserializationPolicyIsAppliedToConnections() throws 
JMSException {
+        JmsConnectionFactory factory = new 
JmsConnectionFactory("mock://127.0.0.1:5672");
+
+        assertNotNull(factory.getDeserializationPolicy());
+        factory.setDeserializationPolicy(new 
SerializationTestSupport.TestJmsDeserializationPolicy());
+        assertNotNull(factory.getDeserializationPolicy());
+        assertTrue(factory.getDeserializationPolicy() instanceof 
SerializationTestSupport.TestJmsDeserializationPolicy);
+
+        JmsConnection connection = (JmsConnection) factory.createConnection();
+
+        assertTrue(connection.getDeserializationPolicy() instanceof 
SerializationTestSupport.TestJmsDeserializationPolicy);
+    }
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1c3ff1cb/qpid-jms-client/src/test/java/org/apache/qpid/jms/SerializationTestSupport.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/SerializationTestSupport.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/SerializationTestSupport.java
index 0078aaa..bcb2eca 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/SerializationTestSupport.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/SerializationTestSupport.java
@@ -22,6 +22,8 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
+import org.apache.qpid.jms.policy.JmsDeserializationPolicy;
+
 public class SerializationTestSupport {
 
     public static Object roundTripSerialize(final Object o) throws 
IOException, ClassNotFoundException {
@@ -47,4 +49,17 @@ public class SerializationTestSupport {
         ois.close();
         return deserializedObject;
     }
+
+    public static class TestJmsDeserializationPolicy implements 
JmsDeserializationPolicy {
+
+        @Override
+        public JmsDeserializationPolicy copy() {
+            return new TestJmsDeserializationPolicy();
+        }
+
+        @Override
+        public boolean isTrustedType(JmsDestination destination, Class<?> 
clazz) {
+            return true;
+        }
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to