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();
+ }
}