[jboss-svn-commits] JBL Code SVN: r7200 - in labs/jbossesb/trunk/product/core/rosetta: src/org/jboss/internal/soa/esb/addressing/helpers src/org/jboss/soa/esb/addressing/eprs tests/src/org/jboss/soa/esb/addressing/util/tests
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Oct 29 14:05:50 EST 2006
Author: mark.little at jboss.com
Date: 2006-10-29 14:05:37 -0500 (Sun, 29 Oct 2006)
New Revision: 7200
Removed:
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/SpecificEpr.java
Modified:
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/helpers/EPRHelper.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRHelperUnitTest.java
Log:
Allow specific EPR instances to be saved and restored automatically.
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/helpers/EPRHelper.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/helpers/EPRHelper.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/helpers/EPRHelper.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -49,10 +49,18 @@
public class EPRHelper
{
- public static final String ELEMENT_NAME = "epr-data";
+ public static final String ELEMENT_NAME = "epr";
+ public static final String EPR_TYPE = "type";
- public static final String EPR_TYPE = "epr-type";
-
+ /**
+ * Serialize the EPR to an XML representation.
+ *
+ * @param epr
+ * @param doc
+ * @param header
+ * @return
+ */
+
public static final Element toXML (EPR epr, Document doc, Element header)
{
if (epr == null)
@@ -78,6 +86,13 @@
}
}
+ /**
+ * Deserialize the EPR from an XML representation.
+ *
+ * @param header
+ * @return
+ */
+
public static final EPR fromXML (Element header)
{
if (header == null)
@@ -86,10 +101,9 @@
try
{
if (header.getNodeName().equals(ELEMENT_NAME))
- return getSpecificEPR(new EPR(PortReferenceHelper.fromXML(
- header, false)));
+ return getSpecificEPR(new EPR(PortReferenceHelper.fromXML(header, false)), header);
else
- return null;
+ return new EPR(PortReferenceHelper.fromXML(header, false));
}
catch (MarshalException ex)
{
@@ -99,6 +113,15 @@
}
}
+ /**
+ * Create a string version of the XML representation for this EPR.
+ * If the EPR is a specific type (e.g., JMSEpr) then that type information
+ * will also be encoded.
+ *
+ * @param epr
+ * @return
+ */
+
public static final String toXMLString (EPR epr)
{
if (epr == null)
@@ -112,6 +135,8 @@
Document doc = builder.newDocument();
Element portReferenceElement = doc.createElement(ELEMENT_NAME);
+ setSpecificEPR(epr, portReferenceElement);
+
doc.appendChild(portReferenceElement);
toXML(epr, doc, portReferenceElement);
@@ -141,6 +166,15 @@
}
}
+ /**
+ * Get the EPR from the string representation. If the EPR was a specific
+ * type (e.g., JMSEpr) then it will be returned as an instance of the appropriate
+ * class.
+ *
+ * @param xml
+ * @return
+ */
+
public static final EPR fromXMLString (String xml)
{
if (xml == null)
@@ -155,7 +189,7 @@
.getBytes()));
Element rootElement = doc.getDocumentElement();
- return getSpecificEPR(new EPR(PortReferenceHelper.fromXML(rootElement, false)));
+ return getSpecificEPR(new EPR(PortReferenceHelper.fromXML(rootElement, false)), rootElement);
}
catch (MarshalException ex)
{
@@ -183,13 +217,40 @@
}
}
- private final static EPR getSpecificEPR (EPR epr)
+ private final static void setSpecificEPR (EPR epr, Element header)
{
try
{
- String eprType = epr.getAddr().getExtensionValue(
- SpecificEpr.EPR_TYPE);
+ String eprType = null;
+ if (epr instanceof EmailEpr)
+ eprType = EmailEpr.type().toString();
+ else if (epr instanceof FTPEpr)
+ eprType = FTPEpr.type().toString();
+ else if (epr instanceof HTTPEpr)
+ eprType = HTTPEpr.type().toString();
+ else if (epr instanceof JDBCEpr)
+ eprType = JDBCEpr.type().toString();
+ else if (epr instanceof JMSEpr)
+ eprType = JMSEpr.type().toString();
+
+ System.err.println("**eprType "+eprType);
+
+ if (eprType != null)
+ header.setAttribute(EPR_TYPE, eprType);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ private final static EPR getSpecificEPR (EPR epr, Element header)
+ {
+ try
+ {
+ String eprType = header.getAttribute(EPR_TYPE);
+
if (eprType != null)
{
if (eprType.equals(EmailEpr.type().toString()))
@@ -208,7 +269,7 @@
else
return epr;
}
- catch (URISyntaxException ex)
+ catch (Exception ex)
{
ex.printStackTrace();
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/EmailEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -40,7 +40,7 @@
* @author marklittle
*
*/
-public class EmailEpr extends SpecificEpr
+public class EmailEpr extends EPR
{
public static final String DEFAULT_PORT = "25";
public static final String DEFAULT_USERNAME = "";
@@ -58,8 +58,6 @@
public EmailEpr (EPR epr)
{
copy(epr);
-
- addType(type());
}
/**
@@ -106,8 +104,6 @@
}
else
throw new IllegalArgumentException("Invalid email protocol!");
-
- addType(type());
}
/**
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/FTPEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -42,7 +42,7 @@
* @author marklittle
*
*/
-public class FTPEpr extends SpecificEpr
+public class FTPEpr extends EPR
{
public static final String USERNAME_TAG = "username";
public static final String PASSWORD_TAG = "password";
@@ -50,22 +50,16 @@
public FTPEpr (EPR epr)
{
copy(epr);
-
- addType(type());
}
public FTPEpr (URL url) throws URISyntaxException
{
super(new URI(url.toString()));
-
- addType(type());
}
public FTPEpr (String url) throws URISyntaxException
{
super(new URI(url));
-
- addType(type());
}
/**
@@ -77,8 +71,6 @@
public final void setURL (URL url)
{
super.setAddr(new PortReference(url.toString()));
-
- addType(type());
}
/**
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/HTTPEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -41,28 +41,22 @@
* @author marklittle
*
*/
-public class HTTPEpr extends SpecificEpr
+public class HTTPEpr extends EPR
{
public HTTPEpr (EPR epr)
{
copy(epr);
-
- addType(type());
}
public HTTPEpr (URL url) throws URISyntaxException
{
super(new URI(url.toString()));
-
- addType(type());
}
public HTTPEpr (String url) throws URISyntaxException
{
super(new URI(url));
-
- addType(type());
}
/**
@@ -74,8 +68,6 @@
public final void setURL (URL url)
{
super.setAddr(new PortReference(url.toString()));
-
- addType(type());
}
/**
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JDBCEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -40,7 +40,7 @@
*
*/
-public class JDBCEpr extends SpecificEpr
+public class JDBCEpr extends EPR
{
public static final String JDBC_PROTOCOL = "jdbc";
@@ -52,8 +52,6 @@
public JDBCEpr (EPR epr)
{
copy(epr);
-
- addType(type());
}
public JDBCEpr (String url, String sql) throws URISyntaxException
@@ -61,8 +59,6 @@
super(new URI(url));
setSQL(sql);
-
- addType(type());
}
/**
@@ -74,8 +70,6 @@
public final void setURL (String url)
{
super.setAddr(new PortReference(url));
-
- addType(type());
}
/**
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -39,7 +39,7 @@
*
*/
-public class JMSEpr extends SpecificEpr
+public class JMSEpr extends EPR
{
public static final String JMS_PROTOCOL = "jms";
public static final String PROTOCOL_SEPARATOR = "://";
@@ -58,8 +58,6 @@
public JMSEpr(EPR epr)
{
copy(epr);
-
- addType(type());
}
/**
@@ -172,8 +170,6 @@
}
else
throw new IllegalArgumentException("Invalid specification version!");
-
- addType(type());
}
/*
Deleted: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/SpecificEpr.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/SpecificEpr.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/SpecificEpr.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -1,69 +0,0 @@
-package org.jboss.soa.esb.addressing.eprs;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.jboss.soa.esb.addressing.EPR;
-
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author mark.little at jboss.com
- */
-
-/**
- * Some common attribute names for specific eprs.
- *
- * @author marklittle
- *
- */
-
-public class SpecificEpr extends EPR
-{
- public static final String EPR_TYPE = "epr-type";
-
- protected SpecificEpr (EPR epr)
- {
- copy(epr);
- }
-
- protected SpecificEpr (URI uri)
- {
- super(uri);
- }
-
- protected SpecificEpr ()
- {
- super();
- }
-
- protected void addType (URI type)
- {
- try
- {
- // only add if not already set.
-
- if (getAddr().getExtensionValue(EPR_TYPE) == null)
- getAddr().addExtension(EPR_TYPE, type.toString());
- }
- catch (URISyntaxException ex)
- {
- ex.printStackTrace();
- }
- }
-}
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRHelperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRHelperUnitTest.java 2006-10-29 17:21:48 UTC (rev 7199)
+++ labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRHelperUnitTest.java 2006-10-29 19:05:37 UTC (rev 7200)
@@ -50,7 +50,6 @@
if (epr instanceof EmailEpr)
{
-
}
else
fail();
More information about the jboss-svn-commits
mailing list