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.
      * 


Reply via email to