Author: mcombellack
Date: Wed May 28 07:43:16 2008
New Revision: 660964

URL: http://svn.apache.org/viewvc?rev=660964&view=rev
Log:
TUSCANY-2213 - Added test case for Serializing and Deserializing a 
CallbackReference to a Conversational Client

Added:
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
   (with props)
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
   (with props)
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
   (with props)
Modified:
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalService.java
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceImpl.java
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
    
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
    
incubator/tuscany/java/sca/itest/serialization/src/main/resources/ServiceReferenceSerializationTest.composite
    
incubator/tuscany/java/sca/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalService.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalService.java?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalService.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalService.java
 Wed May 28 07:43:16 2008
@@ -19,6 +19,7 @@
 package org.apache.tuscany.sca.itest.servicereference;
 
 import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Callback;
 import org.osoa.sca.annotations.Conversational;
 
 /**
@@ -27,6 +28,7 @@
  * @version $Date$ $Revision$
  */
 @Conversational
[EMAIL PROTECTED](ConversationalServiceCallback.class)
 public interface ConversationalService {
 
     /**
@@ -68,4 +70,12 @@
      * @See [EMAIL PROTECTED] #setUserData(String)}
      */
     String getUserData();
+
+    /**
+     * Method that triggers the callback.
+     * 
+     * @param msg A message to pass with the callback
+     * @throws Exception Test failed
+     */
+    void triggerCallback(String msg) throws Exception;
 }

Added: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java?rev=660964&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
 Wed May 28 07:43:16 2008
@@ -0,0 +1,37 @@
+/*
+ * 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.itest.servicereference;
+
+import org.osoa.sca.annotations.Conversational;
+
+/**
+ * This is the callback for the ConversationalService.
+ *
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]
+public interface ConversationalServiceCallback {
+
+    /**
+     * Simple callback method.
+     * 
+     * @param msg The message for the call back
+     */
+    void callback(String msg);
+}

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceCallback.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceImpl.java?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/ConversationalServiceImpl.java
 Wed May 28 07:43:16 2008
@@ -18,8 +18,12 @@
  */
 package org.apache.tuscany.sca.itest.servicereference;
 
+import 
org.apache.tuscany.sca.itest.servicereference.utils.ServiceReferenceUtils;
+import org.junit.Assert;
+import org.osoa.sca.CallableReference;
 import org.osoa.sca.ComponentContext;
 import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Callback;
 import org.osoa.sca.annotations.Context;
 import org.osoa.sca.annotations.ConversationID;
 import org.osoa.sca.annotations.Scope;
@@ -40,6 +44,12 @@
     private Object m_ConversationID;
 
     /**
+     * Injected reference to the call back.
+     */
+    @Callback
+    protected CallableReference<ConversationalServiceCallback> theCallbackRef;
+
+    /**
      * Injected reference to the ComponentContext.
      */
     @Context
@@ -105,4 +115,27 @@
     public String getUserData() {
         return m_UserData;
     }
+
+    /**
+     * Method that triggers the callback.
+     * 
+     * @param msg A message to pass with the callback
+     * @throws Exception Test failed
+     */
+    public void triggerCallback(String msg) throws Exception {
+        Assert.assertNotNull(theCallbackRef);
+
+        // Serialize the CallableReference
+        byte[] serializedCR = ServiceReferenceUtils.serialize(theCallbackRef);
+        Assert.assertNotNull(serializedCR);
+
+        // Deserlaize the CallableReference
+        CallableReference<?> cr = 
ServiceReferenceUtils.deserializeCallableReference(serializedCR);
+        Assert.assertNotNull(cr);
+        CallableReference<ConversationalServiceCallback> regotCallbackRef 
+            = (CallableReference<ConversationalServiceCallback>) cr;
+
+        // Use the deseralized CallbackReference
+        regotCallbackRef.getService().callback(msg);
+    }
 }

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
 Wed May 28 07:43:16 2008
@@ -35,13 +35,6 @@
     void testSerializeStatelessServiceReference() throws Exception;
 
     /**
-     * Tests Serializing a Conversational ServiceReference
-     * 
-     * @throws Exception Test failed
-     */
-    void testSerializeConversationalServiceReference() throws Exception;
-
-    /**
      * Tests Serializing a Callback to a Stateless Service as managed
      * SCA code
      * 

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
 Wed May 28 07:43:16 2008
@@ -40,12 +40,6 @@
     protected ServiceReference<StatelessService> statelessServiceRef;
 
     /**
-     * Injected reference to the ConversationalService
-     */
-    @Reference(name = "conversationalService")
-    protected ServiceReference<ConversationalService> conversationalServiceRef;
-    
-    /**
      * Tests Serializing a Stateless ServiceReference
      * 
      * @throws Exception Test failed
@@ -72,38 +66,6 @@
     }
 
     /**
-     * Tests Serializing a Conversational ServiceReference
-     * 
-     * @throws Exception Test failed
-     */
-    public void testSerializeConversationalServiceReference() throws Exception 
{
-        Assert.assertNotNull(conversationalServiceRef);
-
-        ConversationalService service = conversationalServiceRef.getService();
-        Object origConvID = service.getConversationID();
-        Assert.assertNotNull(origConvID);
-
-        // Serialize the ServiceReference
-        byte[] serializedSR = 
ServiceReferenceUtils.serialize(conversationalServiceRef);
-        Assert.assertNotNull(serializedSR);
-
-        // Deserialize the ServiceReference
-        ServiceReference<?> deserializedSR = 
ServiceReferenceUtils.deserializeServiceReference(serializedSR);
-        Assert.assertNotNull(deserializedSR);
-        ServiceReference<ConversationalService> regotServiceRef = 
(ServiceReference<ConversationalService>) deserializedSR;
-        Assert.assertNotNull(regotServiceRef);
-
-        // Use the ServiceReference to access the Service.
-        ConversationalService regotService = regotServiceRef.getService();
-        Assert.assertNotNull(regotService);
-        Object regotConvID = regotService.getConversationID();
-        Assert.assertNotNull(regotConvID);
-
-        // Make sure we have the same Conversation ID
-        Assert.assertEquals(origConvID, regotConvID);
-    }
-
-    /**
      * Simple callback method
      * 
      * @param msg The call back message

Added: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java?rev=660964&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
 Wed May 28 07:43:16 2008
@@ -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.itest.servicereference;
+
+import org.osoa.sca.annotations.Conversational;
+
+
+/**
+ * This is a test client that is used to test Serializing and Deserializing
+ * ServiceReferences within a SCA Application where the client that the 
Callback
+ * is referring is actually Conversational.
+ * 
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]
+public interface SCAManagedConversationalClient {
+
+    /**
+     * Tests Serializing a Conversational ServiceReference.
+     * 
+     * @throws Exception Test failed
+     */
+    void testSerializeConversationalServiceReference() throws Exception;
+
+    /**
+     * Tests Serializing a Callback to a Conversational Service as managed
+     * SCA code.
+     * 
+     * @throws Exception Test failed
+     */
+    void testSerializeCallbackToConversationalServiceInsideSCA() throws 
Exception;
+}

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java?rev=660964&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
 Wed May 28 07:43:16 2008
@@ -0,0 +1,107 @@
+/*
+ * 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.itest.servicereference;
+
+import 
org.apache.tuscany.sca.itest.servicereference.utils.ServiceReferenceUtils;
+import org.junit.Assert;
+import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This is a test client that is used to test Serializing and Deserializing
+ * ServiceReferences within a SCA Application
+ * 
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED](SCAManagedConversationalClient.class)
[EMAIL PROTECTED]("CONVERSATION")
+public class SCAManagedConversationalClientImpl implements 
SCAManagedConversationalClient, ConversationalServiceCallback {
+
+    /**
+     * Injected reference to the ConversationalService.
+     */
+    @Reference(name = "conversationalService")
+    protected ServiceReference<ConversationalService> conversationalServiceRef;
+
+    /**
+     * This is the message that we sent to the callback.
+     */
+    private String messageSentToCallback;
+
+    /**
+     * Tests Serializing a Conversational ServiceReference.
+     * 
+     * @throws Exception Test failed
+     */
+    public void testSerializeConversationalServiceReference() throws Exception 
{
+        Assert.assertNotNull(conversationalServiceRef);
+
+        ConversationalService service = conversationalServiceRef.getService();
+        Object origConvID = service.getConversationID();
+        Assert.assertNotNull(origConvID);
+
+        // Serialize the ServiceReference
+        byte[] serializedSR = 
ServiceReferenceUtils.serialize(conversationalServiceRef);
+        Assert.assertNotNull(serializedSR);
+
+        // Deserialize the ServiceReference
+        ServiceReference<?> deserializedSR = 
ServiceReferenceUtils.deserializeServiceReference(serializedSR);
+        Assert.assertNotNull(deserializedSR);
+        ServiceReference<ConversationalService> regotServiceRef = 
(ServiceReference<ConversationalService>) deserializedSR;
+        Assert.assertNotNull(regotServiceRef);
+
+        // Use the ServiceReference to access the Service.
+        ConversationalService regotService = regotServiceRef.getService();
+        Assert.assertNotNull(regotService);
+        Object regotConvID = regotService.getConversationID();
+        Assert.assertNotNull(regotConvID);
+
+        // Make sure we have the same Conversation ID
+        Assert.assertEquals(origConvID, regotConvID);
+    }
+
+
+    /**
+     * Tests Serializing a Callback to a Conversational Service as managed
+     * SCA code.
+     * 
+     * @throws Exception Test failed
+     */
+    public void testSerializeCallbackToConversationalServiceInsideSCA() throws 
Exception {
+        Assert.assertNotNull(conversationalServiceRef);
+
+        ConversationalService service = conversationalServiceRef.getService();
+        messageSentToCallback = "A message for the callback " + 
System.currentTimeMillis();
+        service.triggerCallback(messageSentToCallback);
+    }
+    
+    /**
+     * Simple callback method.
+     * 
+     * @param msg The call back message
+     */
+    public void callback(String msg) {
+        System.out.println("Stateless Callback with message " + msg);
+
+        // Make sure we received the message we expected
+        Assert.assertEquals(messageSentToCallback, msg);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedConversationalClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/main/resources/ServiceReferenceSerializationTest.composite
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/main/resources/ServiceReferenceSerializationTest.composite?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/main/resources/ServiceReferenceSerializationTest.composite
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/main/resources/ServiceReferenceSerializationTest.composite
 Wed May 28 07:43:16 2008
@@ -30,6 +30,10 @@
     <component name="SCAManagedClientComponent">
         <implementation.java 
class="org.apache.tuscany.sca.itest.servicereference.SCAManagedClientImpl" />
         <reference name="statelessService" target="StatelessComponent"/>
+    </component>
+
+    <component name="SCAManagedConversationalClientComponent">
+        <implementation.java 
class="org.apache.tuscany.sca.itest.servicereference.SCAManagedConversationalClientImpl"
 />
         <reference name="conversationalService" 
target="ConversationalComponent"/>
     </component>
 </composite>

Modified: 
incubator/tuscany/java/sca/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java?rev=660964&r1=660963&r2=660964&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
 Wed May 28 07:43:16 2008
@@ -23,7 +23,6 @@
 import org.apache.tuscany.sca.host.embedded.SCADomain;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -82,8 +81,8 @@
      */
     @Test
     public void testSerializeConversationalServiceReferenceInsideSCA() throws 
Exception {
-        SCAManagedClient client = domain.getService(
-                SCAManagedClient.class, "SCAManagedClientComponent");
+        SCAManagedConversationalClient client = domain.getService(
+                SCAManagedConversationalClient.class, 
"SCAManagedConversationalClientComponent");
 
         client.testSerializeConversationalServiceReference();
     }
@@ -101,4 +100,18 @@
 
         client.testSerializeCallbackToStatelessServiceInsideSCA();
     }
+
+    /**
+     * Tests Serializing a Callback to a Conversational Service as managed
+     * SCA code.
+     * 
+     * @throws Exception Test failed
+     */
+    @Test
+    public void testSerializeCallbackToConversationalServiceInsideSCA() throws 
Exception {
+        SCAManagedConversationalClient client = domain.getService(
+                SCAManagedConversationalClient.class, 
"SCAManagedConversationalClientComponent");
+
+        client.testSerializeCallbackToConversationalServiceInsideSCA();
+    }
 }


Reply via email to