You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2007/05/29 10:53:58 UTC

svn commit: r542463 [2/2] - in /incubator/tuscany/java/sca/modules/binding-jms: ./ src/main/java/org/apache/tuscany/sca/ src/main/java/org/apache/tuscany/sca/binding/ src/main/java/org/apache/tuscany/sca/binding/jms/ src/main/resources/META-INF/service...

Added: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java Tue May 29 01:53:55 2007
@@ -0,0 +1,49 @@
+/*
+ * 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.jms;
+
+import javax.jms.Message;
+import javax.jms.Session;
+
+/**
+ * Interface for a component that does operation selection and message payload
+ * processing
+ */
+public interface JMSMessageProcessor {
+
+    /**
+     * Get the operation name from a JMS Message
+     */
+    public abstract String getOperationName(Message message);
+
+    /**
+     * Set the operation name on a JMS Message
+     */
+    public abstract void setOperationName(String operationName, Message message);
+
+    /**
+     * Extracts the payload from a JMS Message
+     */
+    public abstract Object extractPayloadFromJMSMessage(Message msg);
+
+    /**
+     * Create a JMS Message containing the payload
+     */
+    public abstract Message insertPayloadIntoJMSMessage(Session session, Object payload);
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java Tue May 29 01:53:55 2007
@@ -0,0 +1,161 @@
+/*
+ * 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.jms;
+
+import java.io.Serializable;
+import java.io.StringReader;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+
+public class JMSMessageProcessorImpl implements JMSMessageProcessor {
+
+    protected String  operationPropertyName;
+    protected boolean xmlFormat;
+
+    public JMSMessageProcessorImpl(JMSBinding jmsBinding) {
+        this.operationPropertyName = jmsBinding.getOperationSelectorPropertyName();
+        this.xmlFormat             = jmsBinding.getXMLFormat();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.OperationAndDataBinding#getOperationName(javax.jms.Message)
+     */
+    public String getOperationName(Message message) {
+        try {
+
+            return message.getStringProperty(operationPropertyName);
+
+        } catch (JMSException e) {
+            throw new JMSBindingException("Exception retreiving operation name from message", e);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.OperationAndDataBinding#setOperationName(javax.jms.Message,
+     *      java.lang.String)
+     */
+    public void setOperationName(String operationName, Message message) {
+        try {
+
+            message.setStringProperty(operationPropertyName, operationName);
+
+        } catch (JMSException e) {
+            throw new JMSBindingException("Exception setting the operation name on message", e);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.OperationAndDataBinding#extractPayload(javax.jms.Session,
+     *      java.lang.Object)
+     */
+    public Message insertPayloadIntoJMSMessage(Session session, Object o) {
+        if (xmlFormat) {
+            return createXMLJMSMessage(session, o);
+        } else {
+            return createObjectJMSMessage(session, o);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.OperationAndDataBinding#extractPayload(javax.jms.Message)
+     */
+    public Object extractPayloadFromJMSMessage(Message msg) {
+        if (xmlFormat) {
+            return extractXMLPayload(msg);
+        } else {
+            return extractObjectPayload(msg);
+        }
+    }
+
+    protected Object extractXMLPayload(Message msg) {
+        try {
+
+            String xml = ((TextMessage)msg).getText();
+
+            XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
+            StAXOMBuilder builder = new StAXOMBuilder(reader);
+            OMElement omElement = builder.getDocumentElement();
+
+            return new Object[] {omElement};
+
+        } catch (XMLStreamException e) {
+            throw new JMSBindingException(e);
+        } catch (JMSException e) {
+            throw new JMSBindingException(e);
+        }
+    }
+    
+    protected Object extractObjectPayload(Message msg) {
+        try {
+
+            return ((ObjectMessage)msg).getObject();
+
+        } catch (JMSException e) {
+            throw new JMSBindingException(e);
+        }
+    }    
+
+    protected Message createXMLJMSMessage(Session session, Object o) {
+        try {
+
+            TextMessage message = session.createTextMessage();
+
+            if (o instanceof OMElement) {
+                message.setText(o.toString());
+            } else {
+                message.setText(((Object[])o)[0].toString());
+            }
+
+            return message;
+
+        } catch (JMSException e) {
+            throw new JMSBindingException(e);
+        }
+    }
+
+    protected Message createObjectJMSMessage(Session session, Object o) {
+        try {
+
+            ObjectMessage message = session.createObjectMessage(); // default
+            message.setObject((Serializable)o);
+            return message;
+
+        } catch (JMSException e) {
+            throw new JMSBindingException(e);
+        }
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSMessageProcessorImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java Tue May 29 01:53:55 2007
@@ -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 org.apache.tuscany.sca.binding.jms;
+
+import javax.jms.Connection;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.Session;
+import javax.naming.NamingException;
+
+/*
+ * Brings together the JMS binding description and the 
+ * API used for generating and manageing JMS resources
+ */
+
+public interface JMSResourceFactory {
+
+    public abstract Connection getConnection() throws NamingException, JMSException;
+
+    public abstract Session createSession() throws JMSException, NamingException;
+
+    public abstract void startConnection() throws JMSException, NamingException;
+
+    public abstract void closeConnection() throws JMSException, NamingException;
+
+    public abstract Destination lookupDestination(String jndiName) throws NamingException;
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java Tue May 29 01:53:55 2007
@@ -0,0 +1,125 @@
+/*
+ * 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.jms;
+
+import java.util.Properties;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.Session;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+
+public class JMSResourceFactorySimpleImpl implements JMSResourceFactory {
+
+    private JMSBinding jmsBinding;
+    private Connection connection;
+    private Context    context;
+    private boolean    isConnectionStarted;
+
+    public JMSResourceFactorySimpleImpl(JMSBinding jmsBinding) {
+        this.jmsBinding = jmsBinding;
+    }
+
+    /*
+     * This is a simple implementation where a connection is created per binding
+     * Ideally the resource factory should be able to leverage the host
+     * environment to provide connection pooling if it can. E.g. if Tuscany is
+     * running inside an AppServer Then we could leverage the JMS resources it
+     * provides
+     * 
+     * @see org.apache.tuscany.binding.jms.JMSResourceFactory#getConnection()
+     */
+    public Connection getConnection() throws NamingException, JMSException {
+        if (connection == null) {
+            createConnection();
+        }
+        return connection;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.JMSResourceFactory#createSession()
+     */
+    public Session createSession() throws JMSException, NamingException {
+        return getConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.JMSResourceFactory#startConnection()
+     */
+    public void startConnection() throws JMSException, NamingException {
+        if (!isConnectionStarted) {
+            getConnection().start();
+            isConnectionStarted = true;
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.tuscany.binding.jms.JMSResourceFactory#closeConnection()
+     */
+    public void closeConnection() throws JMSException, NamingException {
+        if (connection != null) {
+            connection.close();
+        }
+    }
+
+    private void createConnection() throws NamingException, JMSException {
+        if (context == null) {
+            createInitialContext();
+        }
+        ConnectionFactory connectionFactory = (ConnectionFactory)context.lookup(jmsBinding.getConnectionFactoryName());
+        connection = connectionFactory.createConnection();
+    }
+
+    private void createInitialContext() throws NamingException {
+        Properties props = new Properties();
+        props.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
+                          jmsBinding.getInitialContextFactoryName().trim());
+        props.setProperty(Context.PROVIDER_URL, 
+                          jmsBinding.getJndiURL().trim());
+
+        context = new InitialContext(props);
+    }
+
+    public Destination lookupDestination(String jndiName) throws NamingException {
+        if (context == null) {
+            createInitialContext();
+        }
+        
+        Destination dest = null;
+        
+        try {
+            dest = (Destination)context.lookup(jndiName);
+        } catch(NamingException ex){
+            
+        }   
+        return dest;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSResourceFactorySimpleImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Tue May 29 01:53:55 2007
@@ -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. 
+# Implementation class for the ExtensionActivator
+org.apache.tuscany.sca.binding.jms.JMSBindingModuleActivator

Added: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java Tue May 29 01:53:55 2007
@@ -0,0 +1,44 @@
+/*
+ * 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.jms;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldClientImpl implements HelloWorldService {
+    private HelloWorldService extService;
+
+    public HelloWorldService getExtService() {
+        return extService;
+    }
+
+    @Reference
+    public void setExtService(HelloWorldService extService) {
+        this.extService = extService;
+    }
+
+    public String sayHello(String name) {
+        return extService.sayHello(name);
+    }
+    
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java Tue May 29 01:53:55 2007
@@ -0,0 +1,26 @@
+/*
+ * 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.jms;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface HelloWorldService {
+    String sayHello(String name);
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java Tue May 29 01:53:55 2007
@@ -0,0 +1,27 @@
+/*
+ * 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.jms;
+
+public class HelloWorldServiceImpl implements HelloWorldService {
+
+    public String sayHello(String name) {
+        return "Hello " + name;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java Tue May 29 01:53:55 2007
@@ -0,0 +1,45 @@
+/*
+ * 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.jms;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class JMSTestCase extends TestCase {
+
+    private HelloWorldService helloWorldService;
+    private SCADomain scaDomain;
+
+    protected void setUp() throws Exception {
+        scaDomain = SCADomain.newInstance("JMSBindingTest.composite");
+        helloWorldService = scaDomain.getService(HelloWorldService.class, "HelloWorldClientComponent");
+    }
+
+    protected void tearDown() throws Exception {
+        scaDomain.close();
+    }
+
+    public void testHelloWorld() throws Exception {
+        assertEquals("Hello Fred", helloWorldService.sayHello("Fred"));
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-jms/src/test/resources/JMSBindingTest.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/test/resources/JMSBindingTest.composite?view=auto&rev=542463
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/test/resources/JMSBindingTest.composite (added)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/test/resources/JMSBindingTest.composite Tue May 29 01:53:55 2007
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+ -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           name="JMSBindingTestComposite">
+           
+    <component name="HelloWorldClientComponent">
+        <implementation.java class="org.apache.tuscany.sca.binding.jms.HelloWorldClientImpl"/>
+    </component>        
+           
+  	<reference name="HelloWorldReference" promote="HelloWorldClientComponent/extService">
+        <interface.java interface="org.apache.tuscany.sca.binding.jms.HelloWorldService"/>
+        <binding.jms/>       
+    </reference>
+    
+	<service name="HelloWorldService" promote="HelloWorldServiceComponent">
+        <interface.java interface="org.apache.tuscany.sca.binding.jms.HelloWorldService"/>
+        <binding.jms/>     
+     </service>
+      
+    <component name="HelloWorldServiceComponent">
+        <implementation.java class="org.apache.tuscany.sca.binding.jms.HelloWorldServiceImpl"/>
+    </component>   
+
+</composite>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org