Author: scheu Date: Wed Jan 9 08:15:12 2008 New Revision: 610431 URL: http://svn.apache.org/viewvc?rev=610431&view=rev Log: AXIS2-3431 Contributor:Rich Scheuerle Fix to JavaUtils NS->PKG utility to support a namespace of "". Added a validation test.
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/utility/JavaUtils.java webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/misc/NS2PkgTest.java Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/utility/JavaUtils.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/utility/JavaUtils.java?rev=610431&r1=610430&r2=610431&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/utility/JavaUtils.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/utility/JavaUtils.java Wed Jan 9 08:15:12 2008 @@ -19,6 +19,9 @@ package org.apache.axis2.jaxws.utility; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; @@ -27,6 +30,8 @@ /** Common Java Utilites */ public class JavaUtils extends org.apache.axis2.util.JavaUtils { + private static Log log = LogFactory.getLog(JavaUtils.class); + /** Private Constructor...All methods of this class are static */ private JavaUtils() { } @@ -40,6 +45,9 @@ public static String getPackageFromNamespace(String namespace) { // The following steps correspond to steps described in the JAXB Specification + if (log.isDebugEnabled()) { + log.debug("namespace (" +namespace +")"); + } // Step 1: Scan off the host name String hostname = null; String path = null; @@ -57,6 +65,11 @@ hostname = namespace; } } + if (log.isDebugEnabled()) { + log.debug("hostname (" +hostname +")"); + log.debug("path (" +path +")"); + } + // Step 3: Tokenize the host name using ":" and "/" StringTokenizer st = new StringTokenizer(hostname, ":/"); @@ -95,16 +108,22 @@ // Step 6: Tokenize the first word with "." and reverse the order. (the www is also removed). // TODO This is not exactly equivalent to the JAXB Rule. - StringTokenizer st2 = new StringTokenizer(words[0], "."); ArrayList<String> list = new ArrayList<String>(); - while (st2.hasMoreTokens()) { - // Add the strings so they are in reverse order - list.add(0, st2.nextToken()); + if (words.length > 0) { + StringTokenizer st2 = new StringTokenizer(words[0], "."); + + while (st2.hasMoreTokens()) { + // Add the strings so they are in reverse order + list.add(0, st2.nextToken()); + } } + // Remove www - String last = list.get(list.size() - 1); - if (last.equals("www")) { - list.remove(list.size() - 1); + if (list.size() > 0) { + String last = list.get(list.size() - 1); + if (last.equals("www")) { + list.remove(list.size() - 1); + } } // Now each of words is represented by list for (int i = 1; i < words.length; i++) { @@ -147,6 +166,10 @@ } else { name = name + "." + list.get(i); } + } + + if (log.isDebugEnabled()) { + log.debug("package name (" +name +")"); } return name; } Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/misc/NS2PkgTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/misc/NS2PkgTest.java?rev=610431&r1=610430&r2=610431&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/misc/NS2PkgTest.java (original) +++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/misc/NS2PkgTest.java Wed Jan 9 08:15:12 2008 @@ -27,7 +27,7 @@ import junit.framework.TestCase; /** - * Tests Namespace to Package Algorithmh + * Tests Namespace to Package Algorithm * */ public class NS2PkgTest extends TestCase { @@ -37,6 +37,22 @@ String expectedPkg1 = "org.example.newbusiness"; String pkg = JavaUtils.getPackageFromNamespace(ns1); - assertTrue(expectedPkg1.equals(pkg)); + assertTrue("Expected " + expectedPkg1 + "Received " +pkg, expectedPkg1.equals(pkg)); + } + + public void test02() throws Exception { + String ns1 = "urn://example-org/NewBusiness"; + String expectedPkg1 = "org.example"; + + String pkg = JavaUtils.getPackageFromNamespace(ns1); + assertTrue("Expected " + expectedPkg1 + "Received " +pkg, expectedPkg1.equals(pkg)); + } + + public void test03() throws Exception { + String ns1 = ""; + String expectedPkg1 = ""; + + String pkg = JavaUtils.getPackageFromNamespace(ns1); + assertTrue("Expected " + expectedPkg1 + "Received " +pkg, expectedPkg1.equals(pkg)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]