From 4c8b1b3019261cd6f05b573c884a7d0e64718739 Mon Sep 17 00:00:00 2001 From: mcombellack Date: Sun, 12 Jul 2009 17:15:54 +0000 Subject: Initial checkin of a version of the currency converter that uses the JMS binding git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@793377 13f79535-47bb-0310-9956-ffa450edef68 --- .../clients/currency-converter-jms-client/pom.xml | 89 ++++++++++++++++++ .../src/main/java/scatours/LaunchJMSClient.java | 104 +++++++++++++++++++++ .../currency-jms-contribution/pom.xml | 83 ++++++++++++++++ .../main/resources/META-INF/sca-contribution.xml | 22 +++++ .../resources/currency-converter-jms.composite | 37 ++++++++ .../currency-converter-jms-launcher/pom.xml | 88 +++++++++++++++++ .../scatours/LaunchCurrencyConverterJMSNode.java | 43 +++++++++ .../src/main/java/scatours/LaunchJMSBroker.java | 38 ++++++++ 8 files changed, 504 insertions(+) create mode 100644 sandbox/travelsample/clients/currency-converter-jms-client/pom.xml create mode 100644 sandbox/travelsample/clients/currency-converter-jms-client/src/main/java/scatours/LaunchJMSClient.java create mode 100644 sandbox/travelsample/contributions/currency-jms-contribution/pom.xml create mode 100644 sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/currency-converter-jms.composite create mode 100644 sandbox/travelsample/launchers/currency-converter-jms-launcher/pom.xml create mode 100644 sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchCurrencyConverterJMSNode.java create mode 100644 sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchJMSBroker.java diff --git a/sandbox/travelsample/clients/currency-converter-jms-client/pom.xml b/sandbox/travelsample/clients/currency-converter-jms-client/pom.xml new file mode 100644 index 0000000000..61ed329087 --- /dev/null +++ b/sandbox/travelsample/clients/currency-converter-jms-client/pom.xml @@ -0,0 +1,89 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 1.6-SNAPSHOT + + + 1.0-SNAPSHOT + currency-converter-jms-client + Apache Tuscany SCA Tours Currency Converter JMS Client + + + + org.apache.activemq + activemq-all + 5.2.0 + + + org.apache.activemq + activemq-web-demo + + + + + + org.apache.ws.commons.axiom + axiom-api + 1.2.7 + + + xerces + xercesImpl + + + stax + stax-api + + + xml-apis + xml-apis + + + + + + org.apache.ws.commons.axiom + axiom-impl + 1.2.7 + runtime + + + stax + stax-api + + + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sandbox/travelsample/clients/currency-converter-jms-client/src/main/java/scatours/LaunchJMSClient.java b/sandbox/travelsample/clients/currency-converter-jms-client/src/main/java/scatours/LaunchJMSClient.java new file mode 100644 index 0000000000..c8929719a3 --- /dev/null +++ b/sandbox/travelsample/clients/currency-converter-jms-client/src/main/java/scatours/LaunchJMSClient.java @@ -0,0 +1,104 @@ +/* + * 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 scatours; + +import java.io.ByteArrayInputStream; + +import javax.jms.Connection; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; +import javax.xml.stream.XMLStreamException; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMText; +import org.apache.axiom.om.impl.builder.StAXOMBuilder; + +public class LaunchJMSClient { + + private static Connection activeMQConnection; + private static Session activeMQSession; + private static Destination requestDestination; + private static MessageProducer activeMQProducer; + private static Destination responseDestination; + private static MessageConsumer consumer; + private static OMFactory omFactory; + + public static void main(String[] args) throws JMSException, XMLStreamException { + startActiveMQSession(); + + OMElement request = omFactory.createOMElement("convert", "http://goodvaluetrips.com/", "ns2"); + request.addChild(createArg(0, "USD")); + request.addChild(createArg(1, "GBP")); + request.addChild(createArg(2, "100.0")); + + TextMessage message = activeMQSession.createTextMessage("convert"); + message.setStringProperty("scaOperationName", "convert"); + message.setJMSReplyTo(responseDestination); + message.setText(request.toString()); + activeMQProducer.send(message); + + TextMessage response = (TextMessage) consumer.receive(); + StAXOMBuilder builder = new StAXOMBuilder( + new ByteArrayInputStream(response.getText().getBytes())); + OMText returnElement = (OMText) builder.getDocumentElement().getFirstOMChild(); + String returnValue = returnElement.getText(); + System.out.println("100 USD = " + returnValue + "GBP"); + + stopActiveMQSession(); + } + + private static void startActiveMQSession() throws JMSException { + ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61619"); + + activeMQConnection = connectionFactory.createConnection(); + activeMQConnection.start(); + + activeMQSession = activeMQConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + requestDestination = activeMQSession.createQueue("RequestQueue"); + activeMQProducer = activeMQSession.createProducer(requestDestination); + + responseDestination = activeMQSession.createQueue("ResponseQueue"); + consumer = activeMQSession.createConsumer(responseDestination); + + omFactory = OMAbstractFactory.getOMFactory(); + } + + private static void stopActiveMQSession() throws JMSException { + consumer.close(); + activeMQProducer.close(); + activeMQSession.close(); + activeMQConnection.close(); + } + + private static OMElement createArg(int argNumber, String value) { + OMFactory omFactory = OMAbstractFactory.getOMFactory(); + OMElement arg = omFactory.createOMElement("arg" + argNumber, null); + OMText senderOM = omFactory.createOMText(value); + arg.addChild(senderOM); + return arg; + } + } diff --git a/sandbox/travelsample/contributions/currency-jms-contribution/pom.xml b/sandbox/travelsample/contributions/currency-jms-contribution/pom.xml new file mode 100644 index 0000000000..cf53088544 --- /dev/null +++ b/sandbox/travelsample/contributions/currency-jms-contribution/pom.xml @@ -0,0 +1,83 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 1.6-SNAPSHOT + + 1.0-SNAPSHOT + scatours-currency-jms-contribution + Apache Tuscany SCA Tours Currency Converter Contribution With JMS Binding + + + + org.apache.tuscany.sca + tuscany-host-embedded + 1.6-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + 1.6-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + 1.6-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-host-jms-asf + 1.6-SNAPSHOT + + + + junit + junit + 4.5 + test + + + + org.apache.activemq + activemq-all + 5.2.0 + test + + + org.apache.activemq + activemq-web-demo + + + + + + + + ${artifactId} + + diff --git a/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/META-INF/sca-contribution.xml b/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..0924b826b5 --- /dev/null +++ b/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/currency-converter-jms.composite b/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/currency-converter-jms.composite new file mode 100644 index 0000000000..0c09053ca6 --- /dev/null +++ b/sandbox/travelsample/contributions/currency-jms-contribution/src/main/resources/currency-converter-jms.composite @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/sandbox/travelsample/launchers/currency-converter-jms-launcher/pom.xml b/sandbox/travelsample/launchers/currency-converter-jms-launcher/pom.xml new file mode 100644 index 0000000000..2a839aa01c --- /dev/null +++ b/sandbox/travelsample/launchers/currency-converter-jms-launcher/pom.xml @@ -0,0 +1,88 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 1.6-SNAPSHOT + + 1.0-SNAPSHOT + scatours-currency-converter-jms-launcher + Apache Tuscany SCA Tours Currency Converter JMS Launcher + + + + org.apache.tuscany.sca + tuscany-node-api + 1.6-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + 1.6-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-node-runtime + 1.6-SNAPSHOT + test + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + 1.6-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-host-jms-asf + 1.6-SNAPSHOT + + + + junit + junit + 4.5 + test + + + + org.apache.activemq + activemq-all + 5.2.0 + + + org.apache.activemq + activemq-web-demo + + + + + + + ${artifactId} + + diff --git a/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchCurrencyConverterJMSNode.java b/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchCurrencyConverterJMSNode.java new file mode 100644 index 0000000000..d844fd48ca --- /dev/null +++ b/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchCurrencyConverterJMSNode.java @@ -0,0 +1,43 @@ +/* + * 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 scatours; + +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; + +public class LaunchCurrencyConverterJMSNode { + + public static void main(String[] args) throws Exception { + SCAContribution currencyJMSContribution = + new SCAContribution("currency-jms", "../../contributions/currency-jms-contribution/target/classes"); + SCAContribution currencyContribution = + new SCAContribution("currency", "../../contributions/currency-contribution/target/classes"); + + SCANode node = SCANodeFactory.newInstance().createSCANode( + "currency-converter-jms.composite",currencyContribution, currencyJMSContribution); + node.start(); + + System.out.println("Node started - Press enter to shutdown."); + System.in.read(); + + node.stop(); + } +} diff --git a/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchJMSBroker.java b/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchJMSBroker.java new file mode 100644 index 0000000000..fee4c357a1 --- /dev/null +++ b/sandbox/travelsample/launchers/currency-converter-jms-launcher/src/main/java/scatours/LaunchJMSBroker.java @@ -0,0 +1,38 @@ +/* + * 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 scatours; + +import org.apache.activemq.broker.BrokerService; + +public class LaunchJMSBroker { + + public static void main(String[] args) throws Exception { + final BrokerService jmsBroker = new BrokerService(); + jmsBroker.setPersistent(false); + jmsBroker.setUseJmx(false); + jmsBroker.addConnector("tcp://localhost:61619"); + jmsBroker.start(); + + System.out.println("JMS Message Broker started"); + System.out.println("Press enter to shutdown."); + System.in.read(); + + jmsBroker.stop(); + } + } -- cgit v1.2.3