Author: antelder
Date: Thu Feb 14 03:46:14 2008
New Revision: 627715
URL: http://svn.apache.org/viewvc?rev=627715&view=rev
Log:
Start at using the Tuscany work scheduler for jms service requests, only use
jndi properties that are configured by the application, increase default timeout
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceQueueCreateModeTestCaseFIXME.java
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java?rev=627715&r1=627714&r2=627715&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
(original)
+++
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
Thu Feb 14 03:46:14 2008
@@ -58,8 +58,8 @@
// operationProperties="QName"? Not yet implemented in binding
// ...>
private String correlationScheme = JMSBindingConstants.CORRELATE_MSG_ID;
- private String initialContextFactoryName =
JMSBindingConstants.DEFAULT_CONTEXT_FACTORY_NAME;
- private String jndiURL = JMSBindingConstants.DEFAULT_JNDI_URL;
+ private String initialContextFactoryName;
+ private String jndiURL;
// private String requestConnection = null;
// private String responseConnection = null;
// private String operationProperties = null;
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java?rev=627715&r1=627714&r2=627715&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java
(original)
+++
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java
Thu Feb 14 03:46:14 2008
@@ -49,7 +49,7 @@
public final static String DEFAULT_CONNECTION_FACTORY_NAME =
"ConnectionFactory";
public final static String DEFAULT_CONTEXT_FACTORY_NAME =
"org.apache.activemq.jndi.ActiveMQInitialContextFactory";
public final static String DEFAULT_JNDI_URL = "tcp://localhost:61616";
- public final static int DEFAULT_TIME_TO_LIVE = 10000; // in milli seconds
+ public final static int DEFAULT_TIME_TO_LIVE = 20000; // in milli seconds
public final static int DEFAULT_PRIORITY = 1;
public final static String DEFAULT_RF_CLASSNAME =
"org.apache.tuscany.sca.host.jms.activemq.JMSResourceFactoryImpl";
public final static String DEFAULT_MP_CLASSNAME =
JMSMessageProcessorImpl.class.getName();
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java?rev=627715&r1=627714&r2=627715&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
(original)
+++
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
Thu Feb 14 03:46:14 2008
@@ -29,6 +29,7 @@
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
+import org.apache.tuscany.sca.work.WorkScheduler;
/**
* A factory from creating the JMS binding provider.
@@ -38,12 +39,14 @@
public class JMSBindingProviderFactory implements
BindingProviderFactory<JMSBinding> {
private JMSHost jmsHost;
+ private WorkScheduler workScheduler;
public JMSBindingProviderFactory(ExtensionPointRegistry extensionPoints) {
jmsHost = extensionPoints.getExtensionPoint(JMSHost.class);
if (jmsHost == null) {
throw new JMSBindingException("No JMSHost extension point
registered");
}
+ workScheduler = extensionPoints.getExtensionPoint(WorkScheduler.class);
}
public ReferenceBindingProvider
createReferenceBindingProvider(RuntimeComponent component,
@@ -55,7 +58,7 @@
public ServiceBindingProvider
createServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
JMSBinding
binding) {
- return new JMSBindingServiceBindingProvider(component, service,
binding, jmsHost);
+ return new JMSBindingServiceBindingProvider(component, service,
binding, jmsHost, workScheduler);
}
public Class<JMSBinding> getModelType() {
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java?rev=627715&r1=627714&r2=627715&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
(original)
+++
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
Thu Feb 14 03:46:14 2008
@@ -21,6 +21,7 @@
import javax.jms.Destination;
import javax.jms.JMSException;
+import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.naming.NamingException;
@@ -35,6 +36,7 @@
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
+import org.apache.tuscany.sca.work.WorkScheduler;
/**
* Implementation of the JMS service binding provider.
@@ -48,12 +50,16 @@
private JMSResourceFactory jmsResourceFactory;
private Object broker;
private MessageConsumer consumer;
+ private WorkScheduler workScheduler;
+ private boolean running;
public JMSBindingServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
- JMSBinding binding, JMSHost
jmsHost) {
+ JMSBinding binding, JMSHost
jmsHost,
+ WorkScheduler workScheduler) {
this.service = service;
this.jmsBinding = binding;
+ this.workScheduler = workScheduler;
jmsResourceFactory =
jmsHost.createJMSResourceFactory(binding.getConnectionFactoryName(),
binding.getInitialContextFactoryName(), binding.getJndiURL());
@@ -96,6 +102,7 @@
}
public void start() {
+ this.running = true;
this.broker = jmsResourceFactory.startBroker();
try {
@@ -106,6 +113,7 @@
}
public void stop() {
+ this.running = false;
try {
consumer.close();
jmsResourceFactory.closeConnection();
@@ -124,10 +132,34 @@
consumer = session.createConsumer(destination);
- consumer.setMessageListener(new JMSBindingListener(jmsBinding,
jmsResourceFactory, service));
+ final JMSBindingListener listener = new JMSBindingListener(jmsBinding,
jmsResourceFactory, service);
+ try {
+
+ consumer.setMessageListener(listener);
+ jmsResourceFactory.startConnection();
- jmsResourceFactory.startConnection();
+ } catch (javax.jms.IllegalStateException e) {
+ jmsResourceFactory.startConnection();
+ workScheduler.scheduleWork(new Runnable() {
+ public void run() {
+ try {
+ while (running) {
+ final Message msg = consumer.receive();
+ workScheduler.scheduleWork(new Runnable() {
+ public void run() {
+ try {
+ listener.onMessage(msg);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }});
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }});
+ }
}
/**
Modified:
incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceQueueCreateModeTestCaseFIXME.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceQueueCreateModeTestCaseFIXME.java?rev=627715&r1=627714&r2=627715&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceQueueCreateModeTestCaseFIXME.java
(original)
+++
incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceQueueCreateModeTestCaseFIXME.java
Thu Feb 14 03:46:14 2008
@@ -148,7 +148,7 @@
// Try and create the JMS Binding Service for the JMS Binding
try {
JMSBindingServiceBindingProvider jmsService =
- new JMSBindingServiceBindingProvider(null, service,
jmsBinding, jmsHost);
+ new JMSBindingServiceBindingProvider(null, service,
jmsBinding, jmsHost, null);
jmsService.start();
// Check whether we were expecting an exception
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]