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]

Reply via email to