[jboss-svn-commits] JBL Code SVN: r15924 - in labs/jbossesb/trunk/product/rosetta/src/org/jboss: soa/esb/addressing and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 18 12:35:34 EDT 2007


Author: mark.little at jboss.com
Date: 2007-10-18 12:35:34 -0400 (Thu, 18 Oct 2007)
New Revision: 15924

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/EPR.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FileEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/SFTPEpr.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/Body.java
Log:
http://jira.jboss.com/jira/browse/JBESB-1169

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -38,8 +38,13 @@
  * @author mark.little at jboss.com
  */
 
-/*
+/**
  * A Body implementation that serializes to XML.
+ * 
+ * What this really should do is go through the Body contents and
+ * serialize the basic types as XML types, thus improving loose coupling
+ * by reducing the dependency on Java. It can do this by registering
+ * different Marshal/Unmarshal classes.
  */
 
 public class BodyImpl implements Body

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/EPR.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/EPR.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/EPR.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -38,6 +38,7 @@
  * @author marklittle
  *
  */
+
 public class EPR
 {
 	/**
@@ -95,20 +96,25 @@
 
 	/**
 	 * Copy the contents of the specified EPR into this instance.
+	 * Can be used by copy constructors.
 	 * 
 	 * @param from the instance to copy.
+	 * @deprecated use the copy constructor instead.
 	 */
-	
+
 	public void copy (EPR from)
 	{
 		EPR fromImpl = (EPR) from;
 		
-		_addr = fromImpl._addr;
+		/*
+		 * Copy the underlying EPR values.
+		 */
+		
+		_addr = (PortReference) fromImpl._addr.copy();
 	}
-	
+
 //	public void setMetaData (MetaData md);
 //	public MetaData getMetaData ();
-//	public void addReferenceParameter (...);
 	
 	public String toString ()
 	{
@@ -128,6 +134,21 @@
 		return false;
 	}
 	
+	/**
+	 * Copy constructor.
+	 * 
+	 * @param from
+	 */
+	
+	protected EPR (EPR from)
+	{
+		/*
+		 * Copy the underlying EPR values.
+		 */
+		
+		_addr = (PortReference) from._addr.copy();
+	}
+	
 	private PortReference _addr;
 
 } 
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -42,7 +42,7 @@
  * An instance of a PortReference represents a single element in WS-A.
  */
 
-public class PortReference
+public class PortReference implements Cloneable
 {
 	public PortReference()
 	{
@@ -147,6 +147,30 @@
 		_extensions.clear();
 	}
 
+	/**
+	 * Return a copy of this instance.
+	 * 
+	 * @return a field-wise copy.
+	 */
+	
+	public PortReference copy ()
+	{
+		try
+		{
+			/*
+			 * In general, try ry to avoid clone (http://www.artima.com/intv/blochP.html)
+			 * But should be ok here because the invariants are known and field-wise
+			 * copying should therefore be safe.
+			 */
+			
+			return (PortReference) clone();
+		}
+		catch (Exception ex)
+		{
+			return null;
+		}
+	}
+	
 	public String toString()
 	{
 		return "PortReference < " + _address + " >";

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -60,12 +60,12 @@
 	
 	public EmailEpr (EPR epr)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public EmailEpr (EPR epr, Element header)
 	{
-		copy(epr);
+		super(epr);
 		
 		NodeList nl = header.getChildNodes();
 

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -54,16 +54,12 @@
 	public FTPEpr (EPR epr)
 	{
 		super(epr);
-		
-		copy(epr);
 	}
 	
 	public FTPEpr (EPR epr, Element header)
 	{
 		super(epr, header);
 		
-		copy(epr);
-		
 		NodeList nl = header.getChildNodes();
 
 		for (int i = 0; i < nl.getLength(); i++)

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FileEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FileEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/FileEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -61,12 +61,12 @@
 	
 	public FileEpr (EPR epr)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public FileEpr (EPR epr, Element header)
 	{
-		copy(epr);
+		super(epr);
 		
 		NodeList nl = header.getChildNodes();
 

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -47,12 +47,12 @@
 
 	public HTTPEpr (EPR epr)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public HTTPEpr (EPR epr, Element header)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public HTTPEpr (URL url) throws URISyntaxException

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -67,12 +67,12 @@
 	
 	public JDBCEpr (EPR epr)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public JDBCEpr (EPR epr, Element header)
 	{
-		copy(epr);
+		super(epr);
 		
 		NodeList nl = header.getChildNodes();
 

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -87,14 +87,15 @@
 
 	public JMSEpr(EPR epr)
 	{
-		copy(epr);
+		super(epr);
 	}
 	
 	public JMSEpr(EPR epr, Element header)
 	{
+		super(epr);
+		
 		log.debug("Header : " + header);
 		log.debug("EPR : " + epr);
-		copy(epr);
 		
 		NodeList nl = header.getChildNodes();
 		String uri = null;

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/SFTPEpr.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/SFTPEpr.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/SFTPEpr.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -50,16 +50,12 @@
 	public SFTPEpr(EPR epr)
 	{
 		super(epr);
-
-		copy(epr);
 	}
 	
 	public SFTPEpr (EPR epr, Element header)
 	{
 		super(epr, header);
 		
-		copy(epr);
-		
 		NodeList nl = header.getChildNodes();
 
 		for (int i = 0; i < nl.getLength(); i++)

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/Body.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/Body.java	2007-10-18 16:33:56 UTC (rev 15923)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/Body.java	2007-10-18 16:35:34 UTC (rev 15924)
@@ -59,6 +59,11 @@
  * (e.g., through UDDI or out-of-band communication) and this will define where
  * in the message the payload must go. Information placed in other locations
  * will likely be ignored and result in incorrect operation of the service.
+ * 
+ * Note, in order to maintain loose coupling, services should not expose any backend
+ * implementation choices. As such you should try to avoid sending Java Serialized
+ * instances within the Body where possible because it does limit your future choices
+ * on service implementation to Java and potentially specific versions of Java.
  */
 
 public interface Body




More information about the jboss-svn-commits mailing list