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 +++++++++++++++++++++ 2 files changed, 193 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 (limited to 'sandbox/travelsample/clients/currency-converter-jms-client') 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; + } + } -- cgit v1.2.3