diff options
Diffstat (limited to 'sandbox/event/modules/binding-event-jms/src/main')
4 files changed, 152 insertions, 0 deletions
diff --git a/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JMSBroker.java b/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JMSBroker.java new file mode 100644 index 0000000000..0ad849da65 --- /dev/null +++ b/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JMSBroker.java @@ -0,0 +1,68 @@ +/* + * 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.event.jms.impl; + +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) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + } + + public void stop(ExtensionPointRegistry arg0) { + if (broker != null) { + try { + broker.stop(); + broker = null; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + +} diff --git a/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JmsEventBindingFactoryImpl.java b/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JmsEventBindingFactoryImpl.java new file mode 100644 index 0000000000..57799662ce --- /dev/null +++ b/sandbox/event/modules/binding-event-jms/src/main/java/org/apache/tuscany/sca/binding/event/jms/impl/JmsEventBindingFactoryImpl.java @@ -0,0 +1,48 @@ +/* + * 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.event.jms.impl; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.binding.event.DefaultEventBindingFactory; +import org.apache.tuscany.sca.binding.jms.impl.JMSBinding; +import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants; + +/** + * Default JMS binding for events + */ +public class JmsEventBindingFactoryImpl implements DefaultEventBindingFactory { + + + public Binding createDefaultEventBinding() { + JMSBinding b = new JMSBinding(); + b.setInitialContextFactoryName("org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + b.setJndiURL("vm://localhost"); // TODO: plug in jndi url from definitions.xml + + b.setRequestMessageProcessorName(JMSBindingConstants.OBJECT_MP_CLASSNAME); + b.setResponseMessageProcessorName(JMSBindingConstants.OBJECT_MP_CLASSNAME); + + b.setDestinationName("DEFAULT"); // FIXME: What should this be? + b.setDestinationType("topic"); + + return b; + + } + +} diff --git a/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.event.DefaultEventBindingFactory b/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.event.DefaultEventBindingFactory new file mode 100644 index 0000000000..6bc81267d8 --- /dev/null +++ b/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.event.DefaultEventBindingFactory @@ -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.event.jms.impl.JmsEventBindingFactoryImpl
diff --git a/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator b/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator new file mode 100644 index 0000000000..9a0d48575d --- /dev/null +++ b/sandbox/event/modules/binding-event-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator @@ -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.event.jms.impl.JMSBroker
|