[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