You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2008/09/03 10:27:36 UTC

svn commit: r691540 - in /tuscany/java/sca/modules/binding-sca-jms/src/main: java/org/apache/tuscany/sca/binding/sca/jms/ resources/META-INF/services/

Author: antelder
Date: Wed Sep  3 01:27:35 2008
New Revision: 691540

URL: http://svn.apache.org/viewvc?rev=691540&view=rev
Log:
Automatically start a JMS broker when using the JMS based binding.sca. The broker uses multicast discovery so other SCA nodes get automatically discovered

Added:
    tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSBroker.java
    tuscany/java/sca/modules/binding-sca-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
Modified:
    tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSSCABindingProviderFactory.java

Added: tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSBroker.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSBroker.java?rev=691540&view=auto
==============================================================================
--- tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSBroker.java (added)
+++ tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSBroker.java Wed Sep  3 01:27:35 2008
@@ -0,0 +1,67 @@
+/*
+ * 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.tuscany.sca.binding.sca.jms;
+
+import java.net.URI;
+
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.broker.TransportConnector;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ModuleActivator;
+
+/**
+ * The JMS broker for the JMS based SCA binding
+ * TODO: configure from a binding.jms in definitions.xml
+ */
+public class JMSBroker implements ModuleActivator {
+
+    private static BrokerService broker;
+
+    public void start(ExtensionPointRegistry arg0) {
+        if (broker == null) {
+            broker = new BrokerService();
+            broker.setPersistent(false);
+            broker.setUseJmx(false);
+            try {
+
+                TransportConnector tc = broker.addConnector("tcp://localhost:0");
+                tc.setDiscoveryUri(URI.create("multicast://default"));
+
+                broker.addNetworkConnector("multicast://default");
+
+                broker.start();
+
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    public void stop(ExtensionPointRegistry arg0) {
+        if (broker != null) {
+            try {
+                broker.stop();
+                broker = null;
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+}

Modified: tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSSCABindingProviderFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSSCABindingProviderFactory.java?rev=691540&r1=691539&r2=691540&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSSCABindingProviderFactory.java (original)
+++ tuscany/java/sca/modules/binding-sca-jms/src/main/java/org/apache/tuscany/sca/binding/sca/jms/JMSSCABindingProviderFactory.java Wed Sep  3 01:27:35 2008
@@ -64,7 +64,7 @@
     private JMSBinding createBinding(DistributedSCABinding binding) {
         JMSBinding b = new JMSBinding();
         b.setInitialContextFactoryName("org.apache.activemq.jndi.ActiveMQInitialContextFactory");
-        b.setJndiURL("tcp://localhost:61616"); // TODO: plug in jndi url from definitions.xml
+        b.setJndiURL("vm://localhost"); // TODO: plug in jndi url from definitions.xml
         b.setRequestMessageProcessorName(JMSBindingConstants.OBJECT_MP_CLASSNAME);
         b.setResponseMessageProcessorName(JMSBindingConstants.OBJECT_MP_CLASSNAME);
         if (binding.getSCABinding().getURI().startsWith("/")) {

Added: tuscany/java/sca/modules/binding-sca-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-sca-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?rev=691540&view=auto
==============================================================================
--- tuscany/java/sca/modules/binding-sca-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (added)
+++ tuscany/java/sca/modules/binding-sca-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Wed Sep  3 01:27:35 2008
@@ -0,0 +1,18 @@
+# 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. 
+
+org.apache.tuscany.sca.binding.sca.jms.JMSBroker