Author: dkulp
Date: Mon Dec 15 09:57:02 2008
New Revision: 726745
URL: http://svn.apache.org/viewvc?rev=726745&view=rev
Log:
Merged revisions 726342 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r726342 | ningjiang | 2008-12-13 22:03:13 -0500 (Sat, 13 Dec 2008) | 1 line
CXF-1943 added the jms transport injection support for JMSDestination
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/resources/schemas/configuration/jms.xsd
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/resources/jms_test_config.xml
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 09:57:02 2008
@@ -1 +1 @@
-/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839
+/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
Mon Dec 15 09:57:02 2008
@@ -31,6 +31,7 @@
public class JMSConfiguration implements InitializingBean {
static final boolean DEFAULT_USEJMS11 = false;
+ private boolean usingEndpointInfo = true;
private ConnectionFactory connectionFactory;
private DestinationResolver destinationResolver;
private PlatformTransactionManager transactionManager;
@@ -60,6 +61,13 @@
private String messageType = JMSConstants.TEXT_MESSAGE_TYPE;
private boolean pubSubDomain;
+ public boolean isUsingEndpointInfo() {
+ return this.usingEndpointInfo;
+ }
+
+ public void setUsingEndpointInfo(boolean usingEndpointInfo) {
+ this.usingEndpointInfo = usingEndpointInfo;
+ }
public boolean isUseJndi() {
return useJndi;
}
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
Mon Dec 15 09:57:02 2008
@@ -33,6 +33,7 @@
import org.springframework.jms.connection.SingleConnectionFactory;
import org.springframework.jms.connection.SingleConnectionFactory102;
import
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
+import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.support.destination.JndiDestinationResolver;
import org.springframework.jndi.JndiTemplate;
@@ -87,7 +88,6 @@
public JMSConfiguration createJMSConfigurationFromEndpointInfo(Bus bus,
EndpointInfo endpointInfo,
boolean
isConduit) {
- jmsConfig = new JMSConfiguration();
// Retrieve configuration information that was extracted from the WSDL
address = endpointInfo.getTraversedExtensor(new AddressType(),
AddressType.class);
@@ -99,63 +99,68 @@
serverBehavior = endpointInfo.getTraversedExtensor(new
ServerBehaviorPolicyType(),
ServerBehaviorPolicyType.class);
String name = endpointInfo.getName().toString() + (isConduit ?
".jms-conduit" : ".jms-destination");
-
+
// Try to retrieve configuration information from the spring
// config. Search for a conduit or destination with name=endpoint name
+ ".jms-conduit"
// or ".jms-destination"
+
Configurer configurer = bus.getExtension(Configurer.class);
if (null != configurer) {
configurer.configureBean(name, this);
}
-
- JndiTemplate jt = new JndiTemplate();
- jt.setEnvironment(JMSOldConfigHolder.getInitialContextEnv(address));
- boolean pubSubDomain = false;
- if (address.isSetDestinationStyle()) {
- pubSubDomain = DestinationStyleType.TOPIC ==
address.getDestinationStyle();
- }
- ConnectionFactory cf = getConnectionFactoryFromJndi(jt, pubSubDomain);
-
- jmsConfig.setConnectionFactory(cf);
-
jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
- jmsConfig.setExplicitQosEnabled(true);
- // jmsConfig.setMessageIdEnabled(messageIdEnabled);
- jmsConfig.setMessageSelector(serverBehavior.getMessageSelector());
- // jmsConfig.setMessageTimestampEnabled(messageTimestampEnabled);
- if (runtimePolicy.isSetMessageType()) {
- jmsConfig.setMessageType(runtimePolicy.getMessageType().value());
- }
- // jmsConfig.setOneWay(oneWay);
- // jmsConfig.setPriority(priority);
- jmsConfig.setPubSubDomain(pubSubDomain);
- jmsConfig.setPubSubNoLocal(true);
- jmsConfig.setReceiveTimeout(clientConfig.getClientReceiveTimeout());
-
jmsConfig.setSubscriptionDurable(serverBehavior.isSetDurableSubscriberName());
- long timeToLive = isConduit ? clientConfig.getMessageTimeToLive() :
serverConfig
- .getMessageTimeToLive();
- jmsConfig.setTimeToLive(timeToLive);
- if (address.isSetUseJms11()) {
- jmsConfig.setUseJms11(address.isUseJms11());
- }
- boolean useJndi = address.isSetJndiDestinationName();
- jmsConfig.setUseJndi(useJndi);
- jmsConfig.setSessionTransacted(serverBehavior.isSetTransactional());
-
- if (useJndi) {
- // Setup Destination jndi destination resolver
- final JndiDestinationResolver jndiDestinationResolver = new
JndiDestinationResolver();
- jndiDestinationResolver.setJndiTemplate(jt);
- jmsConfig.setDestinationResolver(jndiDestinationResolver);
- jmsConfig.setTargetDestination(address.getJndiDestinationName());
-
jmsConfig.setReplyDestination(address.getJndiReplyDestinationName());
- } else {
- // Use the default dynamic destination resolver
- jmsConfig.setTargetDestination(address.getJmsDestinationName());
-
jmsConfig.setReplyDestination(address.getJmsReplyDestinationName());
+
+ if (jmsConfig == null) {
+ jmsConfig = new JMSConfiguration();
}
- jmsConfig.setConnectionFactory(cf);
+ if (jmsConfig.isUsingEndpointInfo()) {
+ JndiTemplate jt = new JndiTemplate();
+
jt.setEnvironment(JMSOldConfigHolder.getInitialContextEnv(address));
+ boolean pubSubDomain = false;
+ if (address.isSetDestinationStyle()) {
+ pubSubDomain = DestinationStyleType.TOPIC ==
address.getDestinationStyle();
+ }
+ ConnectionFactory cf = getConnectionFactoryFromJndi(jt,
pubSubDomain);
+ jmsConfig.setConnectionFactory(cf);
+
+
jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
+ jmsConfig.setExplicitQosEnabled(true);
+ jmsConfig.setMessageSelector(serverBehavior.getMessageSelector());
+ if (isConduit && runtimePolicy.isSetMessageType()) {
+
jmsConfig.setMessageType(runtimePolicy.getMessageType().value());
+ }
+ jmsConfig.setPubSubDomain(pubSubDomain);
+ jmsConfig.setPubSubNoLocal(true);
+ if (jmsConfig.getReceiveTimeout() ==
JmsTemplate.RECEIVE_TIMEOUT_INDEFINITE_WAIT) {
+
jmsConfig.setReceiveTimeout(clientConfig.getClientReceiveTimeout());
+ }
+
jmsConfig.setSubscriptionDurable(serverBehavior.isSetDurableSubscriberName());
+
jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
+
+ long timeToLive = isConduit ? clientConfig.getMessageTimeToLive()
: serverConfig
+ .getMessageTimeToLive();
+ jmsConfig.setTimeToLive(timeToLive);
+ if (address.isSetUseJms11()) {
+ jmsConfig.setUseJms11(address.isUseJms11());
+ }
+ boolean useJndi = address.isSetJndiDestinationName();
+ jmsConfig.setUseJndi(useJndi);
+
+
jmsConfig.setSessionTransacted(serverBehavior.isSetTransactional());
+ if (useJndi) {
+ // Setup Destination jndi destination resolver
+ final JndiDestinationResolver jndiDestinationResolver = new
JndiDestinationResolver();
+ jndiDestinationResolver.setJndiTemplate(jt);
+ jmsConfig.setDestinationResolver(jndiDestinationResolver);
+
jmsConfig.setTargetDestination(address.getJndiDestinationName());
+
jmsConfig.setReplyDestination(address.getJndiReplyDestinationName());
+ } else {
+ // Use the default dynamic destination resolver
+
jmsConfig.setTargetDestination(address.getJmsDestinationName());
+
jmsConfig.setReplyDestination(address.getJmsReplyDestinationName());
+ }
+ }
return jmsConfig;
}
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
Mon Dec 15 09:57:02 2008
@@ -21,6 +21,8 @@
import javax.xml.namespace.QName;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.apache.cxf.transport.jms.AddressType;
@@ -46,6 +48,12 @@
AddressType.class);
mapElementToJaxbProperty(element, bean, new QName(JMS_NS,
"sessionPool"), "sessionPool",
SessionPoolType.class);
+ NodeList el = element.getElementsByTagNameNS(JMS_NS, "jmsConfig-ref");
+
+ if (el.getLength() == 1) {
+ Node el1 = el.item(0);
+ bean.addPropertyReference("jmsConfig", el1.getTextContent());
+ }
}
@Override
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/resources/schemas/configuration/jms.xsd
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/resources/schemas/configuration/jms.xsd?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/resources/schemas/configuration/jms.xsd
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/main/resources/schemas/configuration/jms.xsd
Mon Dec 15 09:57:02 2008
@@ -39,6 +39,7 @@
<xs:element name="runtimePolicy"
type="jms:ServerBehaviorPolicyType" minOccurs="0"/>
<xs:element name="sessionPool"
type="jms:SessionPoolType" minOccurs="0"/>
<xs:element name="address" type="jms:AddressType"
minOccurs="0"/>
+ <xs:element name="jmsConfig-ref" type="xs:string"
maxOccurs="1" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="cxf-beans:beanAttributes"/>
</xs:extension>
@@ -59,9 +60,7 @@
type="jms:SessionPoolType" minOccurs="0" />
<xs:element name="address"
type="jms:AddressType" minOccurs="0" />
- <xs:element name="jmsConfig-ref"
- type="xs:string" maxOccurs="1" minOccurs="0">
- </xs:element>
+ <xs:element name="jmsConfig-ref" type="xs:string"
maxOccurs="1" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="cxf-beans:beanAttributes"/>
</xs:extension>
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
Mon Dec 15 09:57:02 2008
@@ -25,6 +25,7 @@
import javax.jms.DeliveryMode;
+import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.helpers.IOUtils;
@@ -103,8 +104,8 @@
BusFactory.setDefaultBus(bus);
setupServiceInfo("http://cxf.apache.org/jms_conf_test",
"/wsdl/others/jms_test_no_addr.wsdl",
"HelloWorldQueueBinMsgService",
"HelloWorldQueueBinMsgPort");
- JMSDestination destination = setupJMSDestination(false);
- JMSConfiguration jmsConfig = destination.getJmsConfig();
+ JMSDestination destination = setupJMSDestination(false);
+ JMSConfiguration jmsConfig = destination.getJmsConfig();
//JmsTemplate jmsTemplate = destination.getJmsTemplate();
//AbstractMessageListenerContainer jmsListener =
destination.getJmsListener();
assertEquals("Can't get the right ServerConfig's MessageTimeToLive ",
500L, jmsConfig
@@ -117,6 +118,21 @@
// .getConnectionPassword());
assertEquals("Can't get the right DurableSubscriberName",
"cxf_subscriber", jmsConfig
.getDurableSubscriptionName());
+
+ /*setupServiceInfo("http://cxf.apache.org/hello_world_jms",
"/wsdl/jms_test.wsdl",
+ "HelloWorldQueueBinMsgService",
"HelloWorldQueueBinMsgPort");
+ destination = setupJMSDestination(false);
+ jmsConfig = destination.getJmsConfig();*/
+ assertEquals("The concurrentConsumer should be set",
jmsConfig.getConcurrentConsumers(), 3);
+ assertEquals("The maxConcurrentConsumer should be set",
jmsConfig.getMaxConcurrentConsumers(), 5);
+ assertNotNull("The connectionFactory should not be null",
jmsConfig.getConnectionFactory());
+ assertTrue("Should get the instance of ActiveMQConnectionFactory",
+ jmsConfig.getConnectionFactory() instanceof
ActiveMQConnectionFactory);
+ ActiveMQConnectionFactory cf =
(ActiveMQConnectionFactory)jmsConfig.getConnectionFactory();
+ assertEquals("The borker URL is wrong", cf.getBrokerURL(),
"tcp://localhost:61500");
+ assertEquals("Get a wrong TargetDestination",
jmsConfig.getTargetDestination(), "queue:test");
+ assertEquals("Get the wrong pubSubDomain value",
jmsConfig.isPubSubDomain(), false);
+
BusFactory.setDefaultBus(null);
}
Modified:
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/resources/jms_test_config.xml
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/resources/jms_test_config.xml?rev=726745&r1=726744&r2=726745&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/resources/jms_test_config.xml
(original)
+++
cxf/branches/2.1.x-fixes/rt/transports/jms/src/test/resources/jms_test_config.xml
Mon Dec 15 09:57:02 2008
@@ -46,15 +46,7 @@
<jms:jmsConfig-ref>jmsConf1</jms:jmsConfig-ref>
</jms:conduit>
- <jms:destination
name="{http://cxf.apache.org/jms_conf_test}HelloWorldQueueBinMsgPort.jms-destination">
- <jms:serverConfig
- messageTimeToLive="500"
- durableSubscriptionClientId="test-server-id"/>
- <jms:runtimePolicy
- messageSelector="cxf_message_selector"
- useMessageIDAsCorrelationID="true"
- transactional="true"
- durableSubscriberName="cxf_subscriber"/>
+ <jms:destination
name="{http://cxf.apache.org/jms_conf_test}HelloWorldQueueBinMsgPort.jms-destination">
<jms:sessionPool
lowWaterMark="10"
highWaterMark="5000"/>
@@ -66,11 +58,12 @@
connectionUserName="testUser"
connectionPassword="testPassword">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
- <jms:JMSNamingProperty name="java.naming.provider.url"
value="tcp://localhost:61500"/>
- </jms:address>
- </jms:destination>
+ <jms:JMSNamingProperty name="java.naming.provider.url"
value="tcp://localhost:61511"/>
+ </jms:address>
+ <jms:jmsConfig-ref>jmsConf2</jms:jmsConfig-ref>
+ </jms:destination>
- <jms:destination
name="{http://cxf.apache.org/hello_world_jms}HelloWorldPubSubPort.jms-destination">
+ <jms:destination
name="{http://cxf.apache.org/hello_world_jms}HelloWorldPubSubPort.jms-destination">
<jms:serverConfig
messageTimeToLive="500"
durableSubscriptionClientId="test-server-id"/>
@@ -93,7 +86,29 @@
p:connectionFactory-ref="connectionFactory"
p:targetDestination="queue:test"
p:pubSubDomain="false"
+
+ />
+
+ <bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory"
+ p:brokerURL="tcp://localhost:61500"
/>
+
+
+
+ <bean id="jmsConf2" class="org.apache.cxf.transport.jms.JMSConfiguration"
+ p:connectionFactory-ref="jmsConnectionFactory"
+ p:timeToLive="500"
+ p:messageSelector="cxf_message_selector"
+ p:sessionTransacted="true"
+ p:durableSubscriptionName="cxf_subscriber"
+ p:targetDestination="queue:test"
+ p:replyDestination="queue:test.reply"
+ p:pubSubDomain="false"
+ p:usingEndpointInfo="false"
+ p:concurrentConsumers="3"
+ p:maxConcurrentConsumers="5"
+ />
+
<!--
<bean class="org.apache.cxf.transport.jms.JMSTransportFactory"
id="org.apache.cxf.transport.jms.JMSTransportFactory"