summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java')
-rw-r--r--branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java b/branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java
index 0729ea4659..495f046eca 100644
--- a/branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java
+++ b/branches/sca-java-1.x/modules/host-jms-asf/src/main/java/org/apache/tuscany/sca/host/jms/asf/JMSServiceListenerFactoryImpl.java
@@ -20,10 +20,14 @@
package org.apache.tuscany.sca.host.jms.asf;
import javax.jms.MessageListener;
+import javax.naming.NamingException;
import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
+import org.apache.tuscany.sca.host.jms.JMSServiceListenerDetails;
import org.apache.tuscany.sca.host.jms.JMSServiceListener;
import org.apache.tuscany.sca.host.jms.JMSServiceListenerFactory;
+import org.apache.tuscany.sca.runtime.RuntimeComponentService;
import org.apache.tuscany.sca.work.WorkScheduler;
public class JMSServiceListenerFactoryImpl implements JMSServiceListenerFactory {
@@ -38,4 +42,15 @@ public class JMSServiceListenerFactoryImpl implements JMSServiceListenerFactory
return new ASFListener(listener, serviceName, isCallbackService, jmsBinding, workScheduler);
}
+ public JMSServiceListener createJMSServiceListener(JMSServiceListenerDetails jmsSLD) {
+ try {
+
+ MessageListener listener = new ServiceInvoker(jmsSLD.getJmsBinding(), jmsSLD.getService(), jmsSLD.getTargetBinding(), jmsSLD.getMessageFactory());
+ RuntimeComponentService service = jmsSLD.getService();
+ return new ASFListener(listener, service.getName(), service.isCallback(), jmsSLD.getJmsBinding(), workScheduler);
+
+ } catch (NamingException e) {
+ throw new JMSBindingException(e);
+ }
+ }
}