Repository: activemq
Updated Branches:
  refs/heads/activemq-5.12.x 5a8cd2919 -> 9a0298f3e


https://issues.apache.org/jira/browse/AMQ-6077 - define default values (based 
on system property) for connection factory and object message

(cherry picked from commit eeec0c07b06e6121ed33e20f7c663214538d0da1)


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/9a0298f3
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/9a0298f3
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/9a0298f3

Branch: refs/heads/activemq-5.12.x
Commit: 9a0298f3e95d5b489b2589e37f0945084bcbab5a
Parents: 5a8cd29
Author: Dejan Bosanac <de...@nighttale.net>
Authored: Tue Dec 15 13:33:49 2015 +0100
Committer: Christopher L. Shannon (cshannon) <christopher.l.shan...@gmail.com>
Committed: Tue Dec 15 12:52:30 2015 +0000

----------------------------------------------------------------------
 .../activemq/camel/ObjectMessageTest.java       |  8 +++++--
 .../activemq/camel/jms-object-message.xml       | 23 ++++++++++++++++++++
 .../activemq/ActiveMQConnectionFactory.java     |  7 ++----
 .../activemq/command/ActiveMQObjectMessage.java |  3 ++-
 .../ClassLoadingAwareObjectInputStream.java     |  2 +-
 5 files changed, 34 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/9a0298f3/activemq-camel/src/test/java/org/apache/activemq/camel/ObjectMessageTest.java
----------------------------------------------------------------------
diff --git 
a/activemq-camel/src/test/java/org/apache/activemq/camel/ObjectMessageTest.java 
b/activemq-camel/src/test/java/org/apache/activemq/camel/ObjectMessageTest.java
index 226cfd3..8cb5e0f 100644
--- 
a/activemq-camel/src/test/java/org/apache/activemq/camel/ObjectMessageTest.java
+++ 
b/activemq-camel/src/test/java/org/apache/activemq/camel/ObjectMessageTest.java
@@ -58,8 +58,12 @@ public class ObjectMessageTest extends 
CamelSpringTestSupport {
         assertCorrectObjectReceived(resultTrusted);
 
         MockEndpoint resultCamel = 
resolveMandatoryEndpoint("mock:result-camel", MockEndpoint.class);
-        resultCamel.expectedMessageCount(0);
-        resultCamel.assertIsSatisfied(1, TimeUnit.SECONDS);
+        resultCamel.expectedMessageCount(1);
+        resultCamel.assertIsNotSatisfied();
+
+        MockEndpoint resultEmpty = 
resolveMandatoryEndpoint("mock:result-empty", MockEndpoint.class);
+        resultEmpty.expectedMessageCount(1);
+        resultEmpty.assertIsNotSatisfied();
 
     }
 

http://git-wip-us.apache.org/repos/asf/activemq/blob/9a0298f3/activemq-camel/src/test/resources/org/apache/activemq/camel/jms-object-message.xml
----------------------------------------------------------------------
diff --git 
a/activemq-camel/src/test/resources/org/apache/activemq/camel/jms-object-message.xml
 
b/activemq-camel/src/test/resources/org/apache/activemq/camel/jms-object-message.xml
index a4534c0..7d7eca8 100644
--- 
a/activemq-camel/src/test/resources/org/apache/activemq/camel/jms-object-message.xml
+++ 
b/activemq-camel/src/test/resources/org/apache/activemq/camel/jms-object-message.xml
@@ -32,6 +32,10 @@
             <to uri="mock:result-camel"/>
         </route>
         <route>
+            <from uri="activemq-empty:topic:foo"/>
+            <to uri="mock:result-empty"/>
+        </route>
+        <route>
             <from uri="activemq-trusted:topic:foo"/>
             <to uri="mock:result-trusted"/>
         </route>
@@ -75,6 +79,25 @@
         <property name="configuration" ref="activemqConfig"/>
     </bean>
 
+    <!-- configuration for activemq-empty endpoint -->
+
+    <bean id="emptyConnectionFactory" 
class="org.apache.activemq.spring.ActiveMQConnectionFactory">
+        <property name="brokerURL" 
value="vm://localhost?broker.persistent=false"/>
+        <property name="trustedPackages">
+            <list>
+                <value></value>
+            </list>
+        </property>
+    </bean>
+
+    <bean id="emptyConfig" 
class="org.apache.camel.component.jms.JmsConfiguration">
+        <property name="connectionFactory" ref="emptyConnectionFactory"/>
+    </bean>
+
+    <bean id="activemq-empty" 
class="org.apache.activemq.camel.component.ActiveMQComponent">
+        <property name="configuration" ref="emptyConfig"/>
+    </bean>
+
     <!-- configuration for activemq-trusted endpoint -->
 
     <bean id="trustedConnectionFactory" 
class="org.apache.activemq.spring.ActiveMQConnectionFactory">

http://git-wip-us.apache.org/repos/asf/activemq/blob/9a0298f3/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
----------------------------------------------------------------------
diff --git 
a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
 
b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
index 97a4fd7..cb8e80a 100755
--- 
a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
@@ -43,10 +43,7 @@ import org.apache.activemq.thread.TaskRunnerFactory;
 import org.apache.activemq.transport.Transport;
 import org.apache.activemq.transport.TransportFactory;
 import org.apache.activemq.transport.TransportListener;
-import org.apache.activemq.util.IdGenerator;
-import org.apache.activemq.util.IntrospectionSupport;
-import org.apache.activemq.util.JMSExceptionSupport;
-import org.apache.activemq.util.URISupport;
+import org.apache.activemq.util.*;
 import org.apache.activemq.util.URISupport.CompositeData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -180,7 +177,7 @@ public class ActiveMQConnectionFactory extends 
JNDIBaseStorable implements Conne
     protected int xaAckMode = -1; // ensure default init before setting via 
brokerUrl introspection in sub class
     private boolean rmIdFromConnectionId = false;
     private boolean consumerExpiryCheckEnabled = true;
-    private List<String> trustedPackages = new ArrayList<String>();
+    private List<String> trustedPackages = 
Arrays.asList(ClassLoadingAwareObjectInputStream.serializablePackages);
     private boolean trustAllPackages = false;
 
     // /////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/activemq/blob/9a0298f3/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQObjectMessage.java
----------------------------------------------------------------------
diff --git 
a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQObjectMessage.java
 
b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQObjectMessage.java
index 0d762de..5995a80 100755
--- 
a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQObjectMessage.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQObjectMessage.java
@@ -25,6 +25,7 @@ import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.zip.DeflaterOutputStream;
 import java.util.zip.InflaterInputStream;
@@ -69,7 +70,7 @@ public class ActiveMQObjectMessage extends ActiveMQMessage 
implements ObjectMess
 
     public static final byte DATA_STRUCTURE_TYPE = 
CommandTypes.ACTIVEMQ_OBJECT_MESSAGE;
 
-    private List<String> trustedPackages = new ArrayList<String>();
+    private List<String> trustedPackages = 
Arrays.asList(ClassLoadingAwareObjectInputStream.serializablePackages);
     private boolean trustAllPackages = false;
 
     protected transient Serializable object;

http://git-wip-us.apache.org/repos/asf/activemq/blob/9a0298f3/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
----------------------------------------------------------------------
diff --git 
a/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
 
b/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
index d8fe33e..bebec87 100644
--- 
a/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
@@ -109,7 +109,7 @@ public class ClassLoadingAwareObjectInputStream extends 
ObjectInputStream {
                    }
                }
                if (!found) {
-                   throw new ClassNotFoundException("Forbidden " + clazz + "! 
This class is not allowed to be serialized. Add package with 
'org.apache.activemq.SERIALIZABLE_PACKAGES' system property.");
+                   throw new ClassNotFoundException("Forbidden " + clazz + "! 
This class is not trusted to be serialized as ObjectMessage payload. Please 
take a look at http://activemq.apache.org/objectmessage.html for more 
information on how to configure trusted classes.");
                }
             }
         }

Reply via email to