[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