summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/itest/serialization/src/main/java/org/apache/tuscany/sca/itest/servicereference/utils/ServiceReferenceUtils.java
diff options
context:
space:
mode:
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.java34
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;
+ }
}