mirror of https://github.com/apache/activemq.git
(cherry picked from commit7951037f20
) (cherry picked from commitf3aedc753c
)
This commit is contained in:
parent
7a262b74db
commit
5a8cd29195
|
@ -0,0 +1,83 @@
|
|||
/**
|
||||
* 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.activemq.camel;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.component.jms.JmsBinding;
|
||||
import org.apache.camel.component.jms.JmsMessage;
|
||||
import org.apache.camel.component.mock.MockEndpoint;
|
||||
import org.apache.camel.test.spring.CamelSpringTestSupport;
|
||||
import org.apache.camel.util.ExchangeHelper;
|
||||
import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.support.AbstractApplicationContext;
|
||||
|
||||
import javax.jms.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class ObjectMessageTest extends CamelSpringTestSupport {
|
||||
|
||||
@Test
|
||||
public void testUntrusted() throws Exception {
|
||||
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
|
||||
Connection conn = factory.createConnection();
|
||||
conn.start();
|
||||
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
MessageProducer producer = sess.createProducer(sess.createTopic("foo"));
|
||||
ObjectMessage msg = sess.createObjectMessage();
|
||||
ObjectPayload payload = new ObjectPayload();
|
||||
payload.payload = "test";
|
||||
msg.setObject(payload);
|
||||
producer.send(msg);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
MockEndpoint resultActiveMQ = resolveMandatoryEndpoint("mock:result-activemq", MockEndpoint.class);
|
||||
resultActiveMQ.expectedMessageCount(1);
|
||||
resultActiveMQ.assertIsSatisfied();
|
||||
assertCorrectObjectReceived(resultActiveMQ);
|
||||
|
||||
MockEndpoint resultTrusted = resolveMandatoryEndpoint("mock:result-trusted", MockEndpoint.class);
|
||||
resultTrusted.expectedMessageCount(1);
|
||||
resultTrusted.assertIsSatisfied();
|
||||
assertCorrectObjectReceived(resultTrusted);
|
||||
|
||||
MockEndpoint resultCamel = resolveMandatoryEndpoint("mock:result-camel", MockEndpoint.class);
|
||||
resultCamel.expectedMessageCount(0);
|
||||
resultCamel.assertIsSatisfied(1, TimeUnit.SECONDS);
|
||||
|
||||
}
|
||||
|
||||
protected void assertCorrectObjectReceived(MockEndpoint result) {
|
||||
Exchange exchange = result.getReceivedExchanges().get(0);
|
||||
// This should be a JMS Exchange
|
||||
assertNotNull(ExchangeHelper.getBinding(exchange, JmsBinding.class));
|
||||
JmsMessage in = (JmsMessage) exchange.getIn();
|
||||
assertNotNull(in);
|
||||
assertIsInstanceOf(ObjectMessage.class, in.getJmsMessage());
|
||||
|
||||
ObjectPayload received = exchange.getIn().getBody(ObjectPayload.class);
|
||||
assertEquals("test", received.payload);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AbstractApplicationContext createApplicationContext() {
|
||||
AbstractApplicationContext context = new ClassPathXmlApplicationContext("org/apache/activemq/camel/jms-object-message.xml");
|
||||
return context;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/**
|
||||
* 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.activemq.camel;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class ObjectPayload implements Serializable {
|
||||
private static final long serialVersionUID = 121277L;
|
||||
|
||||
public String payload;
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
|
||||
">
|
||||
|
||||
<camelContext xmlns="http://camel.apache.org/schema/spring">
|
||||
<route>
|
||||
<from uri="activemq-activemq:topic:foo"/>
|
||||
<to uri="mock:result-activemq"/>
|
||||
</route>
|
||||
<route>
|
||||
<from uri="activemq-camel:topic:foo"/>
|
||||
<to uri="mock:result-camel"/>
|
||||
</route>
|
||||
<route>
|
||||
<from uri="activemq-trusted:topic:foo"/>
|
||||
<to uri="mock:result-trusted"/>
|
||||
</route>
|
||||
</camelContext>
|
||||
|
||||
<!-- configuration for activemq-camel endpoint -->
|
||||
|
||||
<bean id="camelConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
|
||||
<property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
|
||||
<property name="trustedPackages">
|
||||
<list>
|
||||
<value>org.apache.camel</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="camelConfig" class="org.apache.camel.component.jms.JmsConfiguration">
|
||||
<property name="connectionFactory" ref="camelConnectionFactory"/>
|
||||
</bean>
|
||||
|
||||
<bean id="activemq-camel" class="org.apache.activemq.camel.component.ActiveMQComponent">
|
||||
<property name="configuration" ref="camelConfig"/>
|
||||
</bean>
|
||||
|
||||
<!-- configuration for activemq-activemq endpoint -->
|
||||
|
||||
<bean id="activemqConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
|
||||
<property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
|
||||
<property name="trustedPackages">
|
||||
<list>
|
||||
<value>org.apache.activemq</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="activemqConfig" class="org.apache.camel.component.jms.JmsConfiguration">
|
||||
<property name="connectionFactory" ref="activemqConnectionFactory"/>
|
||||
</bean>
|
||||
|
||||
<bean id="activemq-activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
|
||||
<property name="configuration" ref="activemqConfig"/>
|
||||
</bean>
|
||||
|
||||
<!-- configuration for activemq-trusted endpoint -->
|
||||
|
||||
<bean id="trustedConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
|
||||
<property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
|
||||
<property name="trustAllPackages" value="true"/>
|
||||
</bean>
|
||||
|
||||
<bean id="trustedConfig" class="org.apache.camel.component.jms.JmsConfiguration">
|
||||
<property name="connectionFactory" ref="trustedConnectionFactory"/>
|
||||
</bean>
|
||||
|
||||
<bean id="activemq-trusted" class="org.apache.activemq.camel.component.ActiveMQComponent">
|
||||
<property name="configuration" ref="trustedConfig"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
Loading…
Reference in New Issue