Author: nash
Date: Sun Nov 20 21:07:24 2011
New Revision: 1204264
URL: http://svn.apache.org/viewvc?rev=1204264&view=rev
Log:
Add test for serializing a service reference to XML
Modified:
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java
tuscany/sca-java-1.x/trunk/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
Modified:
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java?rev=1204264&r1=1204263&r2=1204264&view=diff
==============================================================================
---
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
(original)
+++
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClient.java
Sun Nov 20 21:07:24 2011
@@ -35,6 +35,13 @@ public interface SCAManagedClient {
void testSerializeStatelessServiceReference() throws Exception;
/**
+ * Tests Serializing a Stateless ServiceReference to XML
+ *
+ * @throws Exception Test failed
+ */
+ void testSerializeStatelessServiceReferenceXML() throws Exception;
+
+ /**
* Tests Serializing a Nested Stateless ServiceReference.
*
* @throws Exception Test failed
Modified:
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java?rev=1204264&r1=1204263&r2=1204264&view=diff
==============================================================================
---
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
(original)
+++
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/SCAManagedClientImpl.java
Sun Nov 20 21:07:24 2011
@@ -53,6 +53,15 @@ public class SCAManagedClientImpl implem
public void testSerializeStatelessServiceReference() throws Exception {
doTestSerializeStatelessServiceReference(statelessServiceRef);
}
+
+ /**
+ * Tests Serializing a Stateless ServiceReference to XML
+ *
+ * @throws Exception Test failed
+ */
+ public void testSerializeStatelessServiceReferenceXML() throws Exception {
+ doTestSerializeStatelessServiceReferenceXML(statelessServiceRef);
+ }
/**
* Tests Serializing a Nested Stateless ServiceReference.
@@ -91,6 +100,33 @@ public class SCAManagedClientImpl implem
}
/**
+ * Tests Serializing a Stateless ServiceReference to XML.
+ *
+ * @throws Exception Test failed
+ */
+ private void doTestSerializeStatelessServiceReferenceXML(
+ ServiceReference<StatelessService> aServiceRef) throws Exception {
+ Assert.assertNotNull(aServiceRef);
+
+ StatelessService service = aServiceRef.getService();
+ service.getCurrentTime();
+
+ // Serialize the ServiceReference
+ String serializedSR =
ServiceReferenceUtils.serializeServiceReferenceXML(aServiceRef);
+ Assert.assertNotNull(serializedSR);
+
+ // Deserialize the ServiceReference
+ ServiceReference<?> deserializedSR =
ServiceReferenceUtils.deserializeServiceReferenceXML(serializedSR);
+ Assert.assertNotNull(deserializedSR);
+ ServiceReference<StatelessService> regotServiceRef =
(ServiceReference<StatelessService>) deserializedSR;
+ Assert.assertNotNull(regotServiceRef);
+
+ // Use the ServiceReference to access the Service.
+ StatelessService regotService = regotServiceRef.getService();
+ Assert.assertNotNull(regotService);
+ }
+
+ /**
* Simple callback method
*
* @param msg The call back message
Modified:
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java?rev=1204264&r1=1204263&r2=1204264&view=diff
==============================================================================
---
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java
(original)
+++
tuscany/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java
Sun Nov 20 21:07:24 2011
@@ -23,7 +23,12 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.StringReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
import org.osoa.sca.CallableReference;
import org.osoa.sca.ServiceReference;
@@ -33,6 +38,7 @@ import org.osoa.sca.ServiceReference;
* @version $Date $Revision$
*/
public final class ServiceReferenceUtils {
+ private static final XMLInputFactory INPUT_FACTORY =
XMLInputFactory.newInstance();
/**
* Constructor
@@ -71,6 +77,18 @@ public final class ServiceReferenceUtils
}
/**
+ * Serializes the specified ServiceReference to an XML String
+ *
+ * @param obj The Object to Serialize
+ * @return The Serialized Object as an XML String
+ * @throws IOException Failed to Serialize the Object
+ */
+ public static String serializeServiceReferenceXML(ServiceReference<?> sr)
throws IOException {
+ ServiceReferenceImpl<?> sri = (ServiceReferenceImpl<?>) sr;
+ return sri.toXMLString();
+ }
+
+ /**
* Deserializes the specified byte[] into a ServiceReference
*
* @param serializedSR The Serialized ServiceReference to deserialize
@@ -124,4 +142,20 @@ public final class ServiceReferenceUtils
}
}
}
+
+ /**
+ * Deserializes the specified XML String into a ServiceReference
+ *
+ * @param serializedSR The Serialized ServiceReference to deserialize
+ * @return The deserialized ServiceReference
+ * @throws IOException Failed to deserialize the ServiceReference
+ * @throws ClassNotFoundException Failed to deserialize the
ServiceReference
+ */
+ public static ServiceReference<?> deserializeServiceReferenceXML(String
serializedSR)
+ throws Exception {
+ StringReader reader = new StringReader(serializedSR);
+ XMLStreamReader xmlReader =
INPUT_FACTORY.createXMLStreamReader(reader);
+ ServiceReferenceImpl<?> sri = new ServiceReferenceImpl(xmlReader);
+ return (ServiceReference<?>) sri;
+ }
}
Modified:
tuscany/sca-java-1.x/trunk/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-1.x/trunk/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java?rev=1204264&r1=1204263&r2=1204264&view=diff
==============================================================================
---
tuscany/sca-java-1.x/trunk/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
(original)
+++
tuscany/sca-java-1.x/trunk/itest/serialization/src/test/java/org/apache/tuscany/sca/itest/servicereference/SerializeServiceReferenceTestCase.java
Sun Nov 20 21:07:24 2011
@@ -74,6 +74,20 @@ public class SerializeServiceReferenceTe
}
/**
+ * Tests Serializing a Stateless ServiceReference to XML as managed
+ * SCA code
+ *
+ * @throws Exception Test failed
+ */
+ @Test
+ public void testSerializeStatelessServiceReferenceInsideSCAtoXML() throws
Exception {
+ SCAManagedClient client = domain.getService(
+ SCAManagedClient.class, "SCAManagedClientComponent");
+
+ client.testSerializeStatelessServiceReferenceXML();
+ }
+
+ /**
* Tests Serializing a Nested Stateless ServiceReference as managed
* SCA code.
*