[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