diff options
Diffstat (limited to 'sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java')
-rw-r--r-- | sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java b/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java index 2749891bd4..c46e97d40b 100644 --- a/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java +++ b/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java @@ -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; + } } |