[jboss-svn-commits] JBL Code SVN: r6931 - labs/jbossesb/workspace/eschifman/trunk/product/core/rosetta/src/org/jboss/soa/esb/util
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Oct 19 16:06:28 EDT 2006
Author: estebanschifman
Date: 2006-10-19 16:06:25 -0400 (Thu, 19 Oct 2006)
New Revision: 6931
Modified:
labs/jbossesb/workspace/eschifman/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
Log:
New methods to serialize/de-serialize Messages
Modified: labs/jbossesb/workspace/eschifman/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
===================================================================
--- labs/jbossesb/workspace/eschifman/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java 2006-10-19 19:45:37 UTC (rev 6930)
+++ labs/jbossesb/workspace/eschifman/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java 2006-10-19 20:06:25 UTC (rev 6931)
@@ -22,14 +22,29 @@
package org.jboss.soa.esb.util;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintStream;
+import java.io.Serializable;
+import java.io.StringWriter;
import java.util.Arrays;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.TTCCLayout;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.message.Message;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
public class Util
{
@@ -122,5 +137,39 @@
oRet.addAppender(oApp);
return oRet;
} // __________________________________
+
+ public static Serializable serialize(Message message)
+ throws ParserConfigurationException, IOException
+ {
+ if (message.getType().equals(org.jboss.soa.esb.message.format.MessageType.JAVA_SERIALIZED))
+ return (Serializable)message;
+ Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+ ((org.jboss.internal.soa.esb.message.format.xml.MessageImpl)message).toXML(doc);
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+ return sWriter.toString();
+ } //________________________________
+
+ public static Message deserialize(Serializable serial)
+ throws ParserConfigurationException,SAXException,IOException
+ {
+ if (serial instanceof MessageImpl)
+ return (Message)serial;
+ InputStream inStream = new ByteArrayInputStream(((String)serial).getBytes());
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(inStream);
+
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl message =
+ new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+ message.fromXML(doc);
+ return message;
+ }
+
+
} // ____________________________________________________________________________
More information about the jboss-svn-commits
mailing list