[jboss-svn-commits] JBL Code SVN: r8851 - in labs/jbossesb/trunk/product/core/rosetta: src/org/jboss/internal/soa/esb/message/format/xml and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jan 15 06:22:11 EST 2007


Author: mark.little at jboss.com
Date: 2007-01-15 06:22:03 -0500 (Mon, 15 Jan 2007)
New Revision: 8851

Modified:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java
   labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
   labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
Log:
http://jira.jboss.com/jira/browse/JBESB-248

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java	2007-01-14 23:58:16 UTC (rev 8850)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java	2007-01-15 11:22:03 UTC (rev 8851)
@@ -2,6 +2,7 @@
 
 import java.io.Serializable;
 import java.util.Hashtable;
+import java.util.Set;
 
 import org.jboss.soa.esb.message.Body;
 
@@ -74,6 +75,20 @@
 		}
 	}
 	
+	public String[] getNames ()
+	{
+		Set<String> keys = _objects.keySet();
+		
+		if (keys != null)
+		{
+			String[] toReturn = new String[keys.size()];
+		
+			return keys.toArray(toReturn);
+		}
+		else
+			return null;
+	}
+	
 	public Object remove (String name)
 	{
 		synchronized (_objects)

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2007-01-14 23:58:16 UTC (rev 8850)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2007-01-15 11:22:03 UTC (rev 8851)
@@ -2,6 +2,7 @@
 
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Set;
 
 import org.jboss.internal.soa.esb.message.format.xml.marshal.MarshalUnmarshalManager;
 import org.jboss.internal.soa.esb.thirdparty.Base64;
@@ -69,6 +70,20 @@
 			return _objects.get(name);
 		}
 	}
+	
+	public String[] getNames ()
+	{
+		Set<String> keys = _objects.keySet();
+		
+		if (keys != null)
+		{
+			String[] toReturn = new String[keys.size()];
+		
+			return keys.toArray(toReturn);
+		}
+		else
+			return null;
+	}
 
 	public Object remove(String name)
 	{

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java	2007-01-14 23:58:16 UTC (rev 8850)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java	2007-01-15 11:22:03 UTC (rev 8851)
@@ -97,6 +97,12 @@
 	
 	public void merge (Body b);
 	
+	/**
+	 * @return get the list of names in this instance.
+	 */
+	
+	public String[] getNames ();
+	
 	// TODO replace an entry in the body
 
 }
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java	2007-01-14 23:58:16 UTC (rev 8850)
+++ labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java	2007-01-15 11:22:03 UTC (rev 8851)
@@ -282,6 +282,64 @@
 		}
 	}
 	
+	public void testGetNames ()
+	{
+		Message msg = MessageFactory.getInstance().getMessage(
+				MessageType.JAVA_SERIALIZED);
+
+		assertEquals((msg != null), true);
+		
+		ExampleObject value = new ExampleObject(1234);
+		
+		msg.getBody().add("foo", value);
+		msg.getBody().add("bar", value);
+		
+		String[] names = msg.getBody().getNames();
+		
+		assertNotNull(names);
+		
+		assertEquals(names.length, 2);
+		
+		/*
+		 * The array comes back ordered alphabetically.
+		 */
+		
+		assertEquals(names[0], "bar");
+		assertEquals(names[1], "foo");
+		
+		try
+		{
+			ByteArrayOutputStream s = new ByteArrayOutputStream();
+			ObjectOutputStream o = new ObjectOutputStream(s);
+	
+			o.writeObject(msg);
+			o.close();
+			
+			ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+			ObjectInputStream io = new ObjectInputStream(is);
+
+			MessageImpl nImpl = (MessageImpl) io.readObject();
+			
+			o.close();
+			
+			ExampleObject foo = (ExampleObject) nImpl.getBody().get("foo");
+			
+			assertEquals((foo.getValue() == value.getValue()), true);
+			
+			names = nImpl.getBody().getNames();
+			
+			assertNotNull(names);
+			
+			assertEquals(names.length, 2);
+			assertEquals(names[0], "foo");
+			assertEquals(names[1], "bar");
+		}
+		catch (Exception ex)
+		{			
+			fail(ex.toString());
+		}
+	}
+	
 	public void testAddInvalidObject ()
 	{
 		Message msg = MessageFactory.getInstance().getMessage(

Modified: labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java	2007-01-14 23:58:16 UTC (rev 8850)
+++ labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java	2007-01-15 11:22:03 UTC (rev 8851)
@@ -263,6 +263,63 @@
 		}
 	}
 	
+	public void testGetNames ()
+	{
+		Message msg = MessageFactory.getInstance().getMessage(
+				MessageType.JBOSS_XML);
+
+		assertNotNull("created message", msg);
+		
+		ExampleObject value = new ExampleObject(1234);
+		
+		msg.getBody().add("foo", value);
+		msg.getBody().add("bar", value);
+		
+		String[] names = msg.getBody().getNames();
+		
+		assertNotNull(names);
+		
+		assertEquals(names.length, 2);
+		
+		/*
+		 * The array comes back ordered alphabetically.
+		 */
+		
+		assertEquals(names[0], "bar");
+		assertEquals(names[1], "foo");
+		
+		try
+		{
+			final String xmlRepresentation = msgToXML((MessageImpl)msg) ;
+			System.err.println("Document is "+xmlRepresentation);
+			
+			final MessageImpl nImpl = msgFromXML(xmlRepresentation) ;
+			
+			ExampleObject foo = (ExampleObject) nImpl.getBody().get("foo");
+			
+			assertNotNull("deserialised example object", foo) ;
+			
+			assertEquals((foo.getValue() == value.getValue()), true);
+			
+			names = nImpl.getBody().getNames();
+			
+			assertNotNull(names);
+			
+			assertEquals(names.length, 2);	
+			
+			/*
+			 * The array comes back ordered alphabetically.
+			 */
+			
+			assertEquals(names[0], "bar");
+			assertEquals(names[1], "foo");
+		}
+		catch (Exception ex)
+		{
+			fail(ex.toString());
+		}
+	}
+	
 	public void testRemoveObjects ()
 	{
 		Message msg = MessageFactory.getInstance().getMessage(




More information about the jboss-svn-commits mailing list