[jboss-svn-commits] JBossWS SVN: r617 - in branches/jbossws-1.0/src: main/java/org/jboss/ws/tools main/java/org/jboss/ws/tools/helpers test/java/org/jboss/test/ws/tools/utils
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 18 17:12:58 EDT 2006
Author: darran.lofthouse at jboss.com
Date: 2006-07-18 17:12:51 -0400 (Tue, 18 Jul 2006)
New Revision: 617
Added:
branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/NamespacePackageMapping.java
branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/NamespacePackageMappingTestCase.java
Modified:
branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/ToolsUtils.java
branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/WSDLToJava.java
branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java
branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/ToolsUtilsTestCase.java
Log:
JBWS-1049 Re-implementation of the namespace to package mapping
according to section D.5.1 of the JAXB specification (Version 1.1 and 2.0).
Added: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/NamespacePackageMapping.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/NamespacePackageMapping.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/NamespacePackageMapping.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -0,0 +1,267 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ws.tools;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Utility class for mapping an XML namespace to a Java package.
+ *
+ * This mapping is performed according to the algorith defined in section D.5.1
+ * of the JAXB 2.0 specification.
+ *
+ * @author darran.lofthouse at jboss.com
+ * @since 18-Jul-2006
+ */
+public class NamespacePackageMapping
+{
+
+ private static final NamespacePackageMapping npm = new NamespacePackageMapping();
+
+ private final String[] keywordsArray = { "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do",
+ "double", "else", "enum", "extends", "final", "finally", "float", "for", "if", "goto", "implements", "import", "instanceof", "int", "interface", "long",
+ "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw",
+ "throws", "transient", "try", "void", "volatile", "while" };
+
+ private final String[] restrictedLiteralsArray = { "true", "false", "null" };
+
+ /*
+ * The JAXB specification says to use the list of country codes as defined in ISO-3166 1981 to identify the top
+ * level domains.
+ *
+ * The recommendations in the Java Language Specification for selecting unique package names is based around
+ * choosing package names using the domain name of your organisation.
+ *
+ * Not all countries use the country code listed in ISO-3166 as their top level domain. As an example 'The United
+ * Kingdom of Great Britain and Northern Ireland' uses .uk as the top level domain, however ISO-3166 lists the
+ * country code as gb.
+ *
+ * For this reason I have used the list of country codes available from here: -
+ *
+ * http://www.iana.org/cctld/cctld-whois.htm
+ */
+ private final String[] countryCodesArray = { "ac", "ad", "ae", "af", "ag", "ai", "al", "am", "an", "ao", "aq", "ar", "as", "at", "au", "aw", "az", "ax", "ba", "bb",
+ "bd", "be", "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl",
+ "cm", "cn", "co", "cr", "cs", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "eu", "fi", "fj",
+ "fk", "fm", "fo", "fr", "ga", "gb", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn",
+ "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw",
+ "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr",
+ "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph",
+ "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm",
+ "sn", "so", "sr", "st", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug",
+ "uk", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "yu", "za", "zm", "zw" };
+
+ private final String[] topLevelDomainsArray = { "com", "gov", "net", "org", "edu" };
+
+ private final Set<String> restrictedKeywords;
+
+ private final Set<String> topLevelDomains;
+
+ /**
+ * Convert an XML namespace to a Java package using the algorithm defined in section
+ * D.5.1 of the JAXB specification.
+ *
+ * @param targetNS
+ * @return
+ */
+ public static String getJavaPackageName(final String targetNS)
+ {
+ return npm.convertNamespaceToPackage(targetNS);
+ }
+
+ private NamespacePackageMapping()
+ {
+ int keywordsSize = keywordsArray.length + restrictedLiteralsArray.length;
+ keywordsSize = (int)((double)keywordsSize / 0.75) + 1;
+
+ int topLevelSize = countryCodesArray.length + topLevelDomainsArray.length;
+ topLevelSize = (int)((double)topLevelSize / 0.75) + 1;
+
+ restrictedKeywords = new HashSet<String>(keywordsSize);
+ addAll(restrictedKeywords, keywordsArray);
+ addAll(restrictedKeywords, restrictedLiteralsArray);
+
+ topLevelDomains = new HashSet<String>(topLevelSize);
+ addAll(topLevelDomains, countryCodesArray);
+ addAll(topLevelDomains, topLevelDomainsArray);
+ }
+
+ private void addAll(final Set<String> set, final String[] data)
+ {
+ for (String current : data)
+ {
+ set.add(current);
+ }
+ }
+
+ private String convertNamespaceToPackage(final String targetNS)
+ {
+ String workingNS = targetNS;
+
+ boolean schemeIsURN = workingNS.startsWith("urn:");
+
+ if (workingNS.startsWith("http://"))
+ {
+ workingNS = workingNS.substring(7);
+ }
+ else if (workingNS.startsWith("https://"))
+ {
+ workingNS = workingNS.substring(8);
+ }
+ else if (workingNS.startsWith("urn:"))
+ {
+ workingNS = workingNS.substring(4);
+ }
+ else
+ {
+ throw new IllegalArgumentException("TargetNS should start with http:// / https:// / urn:");
+ }
+
+ // Test for an ending .?? .??? or .html
+ boolean hasExtension = workingNS.matches("^.*\\/.*\\.((.{2,3})|(html))$");
+ if (hasExtension)
+ {
+ workingNS = workingNS.substring(0, workingNS.lastIndexOf("."));
+ }
+
+ String[] tokens = workingNS.split("[\\/\\:]+");
+
+ if (schemeIsURN)
+ {
+ tokens[0] = tokens[0].replace('-', '.');
+ }
+
+ String[] packagePrefix = convertDomainToPackage(tokens[0]);
+ String[] temp = tokens;
+
+ tokens = new String[packagePrefix.length + temp.length - 1];
+ System.arraycopy(packagePrefix, 0, tokens, 0, packagePrefix.length);
+ System.arraycopy(temp, 1, tokens, packagePrefix.length, temp.length - 1);
+
+ StringBuilder packageName = new StringBuilder();
+
+ for (int i = 0; i < tokens.length; i++)
+ {
+ String current = tokens[i];
+ current = current.toLowerCase();
+ current = convertReserved(current);
+ current = convertStart(current);
+ current = convertInvalidCharacters(current);
+
+ packageName.append(current);
+ if (i < tokens.length - 1)
+ {
+ packageName.append(".");
+ }
+ }
+
+ return packageName.toString();
+ }
+
+ /**
+ * Check if the passed in component is a reserved keyword,
+ * if it is append and underscore and return.
+ */
+ private String convertReserved(final String component)
+ {
+ String result = component;
+ if (restrictedKeywords.contains(result))
+ {
+ result = result + "_";
+ }
+
+ return result;
+ }
+
+ /**
+ * Check if the first character of the component is a valid character to
+ * start an identifier, if it is not prefix it with an underscore and return.
+ */
+ private String convertStart(final String component)
+ {
+ String result = component;
+
+ if (Character.isJavaIdentifierStart(result.charAt(0)) == false)
+ {
+ result = "_" + result;
+ }
+
+ return result;
+ }
+
+ /**
+ * Check all of the characters in the component and for any that are not valid
+ * in Java identifiers replace with an underscore.
+ */
+ private String convertInvalidCharacters(final String component)
+ {
+ String result = component;
+ for (int i = 0; i < result.length(); i++)
+ {
+ if (Character.isJavaIdentifierPart(result.charAt(i)) == false)
+ {
+ result = result.replace(result.charAt(i), '_');
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Given a domain name split it into the corresponding parts, and convert
+ * into the order suitable for creating a package name.
+ *
+ * The transposition is only performed if the last element is a top level domain
+ * ("com", "gov", "net", "org", "edu" or a country code used as a top level domain).
+ */
+ private String[] convertDomainToPackage(final String domain)
+ {
+ String[] parts = domain.split("\\.");
+
+ String[] packge;
+
+ if (topLevelDomains.contains(parts[parts.length - 1]))
+ {
+ if (parts[0].equals("www"))
+ {
+ packge = new String[parts.length - 1];
+ }
+ else
+ {
+ packge = new String[parts.length];
+ }
+
+ for (int i = 0; i < packge.length; i++)
+ {
+ packge[i] = parts[parts.length - i - 1];
+ }
+ }
+ else
+ {
+ packge = parts;
+ }
+
+ return packge;
+ }
+
+}
Property changes on: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/NamespacePackageMapping.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/ToolsUtils.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/ToolsUtils.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/ToolsUtils.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -127,79 +127,6 @@
}
/**
- * Gets the Java Package Name as defined by the JAXB 2.0Spec
- * Section D5-1
- * @param targetNS Target Namespace
- * @return Java Package Name
- */
- public static String getJavaPackageName(String targetNS)
- {
- if(targetNS == null)
- throw new IllegalArgumentException("TargetNS is null");
- String pkgName = null;
- /**
- * Step 1: Remove the scheme and ":" part from the beginning of the URI, if
- * present.
- */
- if (!(targetNS.startsWith("http") || targetNS.startsWith("urn")) )
- throw new IllegalArgumentException("TargetNS should start with http/https/urn");
- targetNS = targetNS.substring(targetNS.indexOf(":") + 1);
- if(targetNS.startsWith("//www")) targetNS =targetNS.substring(6);//www.
-
- /**
- * Step 2: Remove the trailing .?? or .??? or .html
- */
- //Remove trailing "/"
- if(targetNS.endsWith("/"))
- targetNS = targetNS.substring(0,targetNS.lastIndexOf("/"));
- //Divide targetNS into two before the last "/"
- int ind = targetNS.lastIndexOf("/");
- if(ind > 0 )
- {
- String first = targetNS.substring(0,ind);
- String subs = targetNS.substring(ind+1);
- int dotindex = subs.lastIndexOf(".");
- if(dotindex > -1) subs = subs.substring(0,dotindex); //Chop the file type
- targetNS = first+"." +subs;
- }
-
- /**
- * Step 3: Convert all "/" to "."
- */
- pkgName = targetNS.replace("/",".");
- pkgName = pkgName.replace("-",".");//urn
- pkgName = pkgName.replace(":",".");
- //Remove the leading ".."
- if(pkgName.startsWith("..")) pkgName = pkgName.substring(2);
- /**
- * Step 4: Check for the domain name:org,com,edu,net or
- * ISO Standard 3166 country code
- */
- StringTokenizer st = new StringTokenizer(pkgName,".");
- List<String>lst = new ArrayList<String>();
- String toplevel = null;
- while(st.hasMoreTokens())
- {
- String token = st.nextToken();
- if("net".equals(token) || "org".equals(token)||"edu".equals(token)
- || "gov".equals(token)) toplevel = token;
- else
- lst.add(token);
- }
-
- int len =lst.size();
- pkgName = toplevel != null ? toplevel:"";
- for(String token:lst)
- {
- if(Character.isDigit(token.charAt(0))) token = "_" + token;
- if(pkgName == "" ) pkgName+= token;
- else
- pkgName += "." + token;
- }
- return pkgName;
- }
-
- /**
* Returns a Java Identifier from a XML Name
* as specified by both JAXB 1 and JAXB 2 specs.
* Used for deriving class names, method names etc
Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/WSDLToJava.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/WSDLToJava.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/WSDLToJava.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -180,7 +180,7 @@
//Check if there is an user override
String packageName = namespacePackageMap != null?namespacePackageMap.get(targetNS):null;
if(packageName == null || packageName.length() == 0)
- packageName = ToolsUtils.getJavaPackageName(targetNS);
+ packageName = NamespacePackageMapping.getJavaPackageName(targetNS);
this.seiPkgName = packageName;
Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -56,6 +56,7 @@
import org.jboss.ws.tools.Configuration;
import org.jboss.ws.tools.JavaToWSDL;
import org.jboss.ws.tools.JavaWriter;
+import org.jboss.ws.tools.NamespacePackageMapping;
import org.jboss.ws.tools.ToolsUtils;
import org.jboss.ws.tools.WSDLToJava;
import org.jboss.ws.tools.WSDotXMLCreator;
@@ -400,7 +401,7 @@
}
}
- return ToolsUtils.getJavaPackageName(wsdl.getTargetNamespace());
+ return NamespacePackageMapping.getJavaPackageName(wsdl.getTargetNamespace());
}
private void createDir(String path)
Added: branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/NamespacePackageMappingTestCase.java
===================================================================
--- branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/NamespacePackageMappingTestCase.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/NamespacePackageMappingTestCase.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -0,0 +1,306 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.ws.tools.utils;
+
+import junit.framework.TestCase;
+
+import org.jboss.ws.tools.NamespacePackageMapping;
+
+/**
+ * Test case for the NamespacePackageMapping class.
+ *
+ * @author darran.lofthouse at jboss.com
+ * @since 18-Jul-2006
+ */
+public class NamespacePackageMappingTestCase extends TestCase
+{
+
+ public void testBadScheme()
+ {
+ try
+ {
+ NamespacePackageMapping.getJavaPackageName("ftp://www.jboss.org/schemas/schema.xsd");
+ fail("Expected exception not thrown");
+ }
+ catch (Exception ignored)
+ {
+ }
+ }
+
+ /**
+ * Test that the example in the JAXB specification can be converted correctly.
+ */
+ public void testJAXBExample()
+ {
+ assertEquals("com.acme.go.espeak", NamespacePackageMapping.getJavaPackageName("http://www.acme.com/go/espeak.xsd"));
+ }
+
+ public void testHTTPMappingsORG()
+ {
+ assertEquals("org.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org"));
+ assertEquals("org.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema/"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema.xsd"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema.html"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema.xf"));
+ assertEquals("org.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema.h"));
+ assertEquals("org.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema.htmls"));
+ assertEquals("org.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema/files"));
+ assertEquals("org.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema/files/"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/files/schema.xsd"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/files/schema.html"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/files/schema.xf"));
+ assertEquals("org.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/files/schema.h"));
+ assertEquals("org.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsKeywords()
+ {
+ assertEquals("org.continue_", NamespacePackageMapping.getJavaPackageName("http://www.continue.org"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://continue.jboss.org/"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue.xsd"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue.html"));
+ assertEquals("org.jboss.continue_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue.xf"));
+ assertEquals("org.jboss.continue_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue.h"));
+ assertEquals("org.jboss.continue_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue.htmls"));
+ assertEquals("org.jboss.continue_.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/files"));
+ assertEquals("org.jboss.continue_.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/files/"));
+ assertEquals("org.jboss.continue_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/schema.xsd"));
+ assertEquals("org.jboss.continue_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/schema.html"));
+ assertEquals("org.jboss.continue_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/schema.xf"));
+ assertEquals("org.jboss.continue_.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/schema.h"));
+ assertEquals("org.jboss.continue_.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/continue/schema.htmls"));
+ }
+
+ public void testHTTPMappingsIdentifier()
+ {
+ assertEquals("org.null_", NamespacePackageMapping.getJavaPackageName("http://www.null.org"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://null.jboss.org/"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null.xsd"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null.html"));
+ assertEquals("org.jboss.null_", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null.xf"));
+ assertEquals("org.jboss.null_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null.h"));
+ assertEquals("org.jboss.null_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null.htmls"));
+ assertEquals("org.jboss.null_.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/files"));
+ assertEquals("org.jboss.null_.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/files/"));
+ assertEquals("org.jboss.null_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/schema.xsd"));
+ assertEquals("org.jboss.null_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/schema.html"));
+ assertEquals("org.jboss.null_.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/schema.xf"));
+ assertEquals("org.jboss.null_.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/schema.h"));
+ assertEquals("org.jboss.null_.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/null/schema.htmls"));
+ }
+
+ public void testHTTPMappingsLeadingDigit()
+ {
+ assertEquals("org._1jboss", NamespacePackageMapping.getJavaPackageName("http://www.1jboss.org"));
+ assertEquals("org.jboss._1www", NamespacePackageMapping.getJavaPackageName("http://1www.jboss.org/"));
+ assertEquals("org.jboss._1schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema"));
+ assertEquals("org.jboss._1schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/"));
+ assertEquals("org.jboss._1schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema.xsd"));
+ assertEquals("org.jboss._1schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema.html"));
+ assertEquals("org.jboss._1schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema.xf"));
+ assertEquals("org.jboss._1schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema.h"));
+ assertEquals("org.jboss._1schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema.htmls"));
+ assertEquals("org.jboss._1schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/files"));
+ assertEquals("org.jboss._1schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/files/"));
+ assertEquals("org.jboss._1schema.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/schema.xsd"));
+ assertEquals("org.jboss._1schema.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/schema.html"));
+ assertEquals("org.jboss._1schema.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/schema.xf"));
+ assertEquals("org.jboss._1schema.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/schema.h"));
+ assertEquals("org.jboss._1schema.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/1schema/schema.htmls"));
+ }
+
+ public void testHTTPMappingsBadCharacter()
+ {
+ assertEquals("org.jb_oss", NamespacePackageMapping.getJavaPackageName("http://www.jb*oss.org"));
+ assertEquals("org.jboss.w_ww", NamespacePackageMapping.getJavaPackageName("http://w*ww.jboss.org/"));
+ assertEquals("org.jboss.sc_hema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema"));
+ assertEquals("org.jboss.sc_hema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema/"));
+ assertEquals("org.jboss.sc_hema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema.xsd"));
+ assertEquals("org.jboss.sc_hema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema.html"));
+ assertEquals("org.jboss.sc_hema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema.xf"));
+ assertEquals("org.jboss.sc_hema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema.h"));
+ assertEquals("org.jboss.sc_hema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/sc*hema.htmls"));
+ assertEquals("org.jboss.schema.fi_les", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema/fi*les"));
+ assertEquals("org.jboss.schema.fi_les", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/schema/fi*les/"));
+ assertEquals("org.jboss.fi_les.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/fi*les/schema.xsd"));
+ assertEquals("org.jboss.fi_les.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/fi*les/schema.html"));
+ assertEquals("org.jboss.fi_les.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/fi*les/schema.xf"));
+ assertEquals("org.jboss.fi_les.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/fi*les/schema.h"));
+ assertEquals("org.jboss.fi_les.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.org/fi*les/schema.htmls"));
+ }
+
+ public void testURNMappingsORG()
+ {
+ assertEquals("org.jboss", NamespacePackageMapping.getJavaPackageName("urn:jboss-org"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("urn:jboss-org:schema"));
+ assertEquals("org.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("urn:jboss-org:schema:files"));
+ }
+
+ public void testHTTPMappingsORGNoWWW()
+ {
+ assertEquals("org.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.org"));
+ assertEquals("org.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.org/"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema/"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema.xsd"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema.html"));
+ assertEquals("org.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema.xf"));
+ assertEquals("org.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema.h"));
+ assertEquals("org.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema.htmls"));
+ assertEquals("org.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema/files"));
+ assertEquals("org.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.org/schema/files/"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/files/schema.xsd"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/files/schema.html"));
+ assertEquals("org.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.org/files/schema.xf"));
+ assertEquals("org.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.org/files/schema.h"));
+ assertEquals("org.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.org/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsDE()
+ {
+ assertEquals("de.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de"));
+ assertEquals("de.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema/"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema.xsd"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema.html"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema.xf"));
+ assertEquals("de.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema.h"));
+ assertEquals("de.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema.htmls"));
+ assertEquals("de.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema/files"));
+ assertEquals("de.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/schema/files/"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/files/schema.xsd"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/files/schema.html"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/files/schema.xf"));
+ assertEquals("de.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/files/schema.h"));
+ assertEquals("de.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.de/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsNoWWW()
+ {
+ assertEquals("de.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.de"));
+ assertEquals("de.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.de/"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema/"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema.xsd"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema.html"));
+ assertEquals("de.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema.xf"));
+ assertEquals("de.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema.h"));
+ assertEquals("de.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema.htmls"));
+ assertEquals("de.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema/files"));
+ assertEquals("de.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.de/schema/files/"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/files/schema.xsd"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/files/schema.html"));
+ assertEquals("de.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.de/files/schema.xf"));
+ assertEquals("de.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.de/files/schema.h"));
+ assertEquals("de.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.de/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsCOM()
+ {
+ assertEquals("com.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com"));
+ assertEquals("com.jboss", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema/"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema.xsd"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema.html"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema.xf"));
+ assertEquals("com.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema.h"));
+ assertEquals("com.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema.htmls"));
+ assertEquals("com.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema/files"));
+ assertEquals("com.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/schema/files/"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/files/schema.xsd"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/files/schema.html"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/files/schema.xf"));
+ assertEquals("com.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/files/schema.h"));
+ assertEquals("com.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.com/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsCOMNoWWW()
+ {
+ assertEquals("com.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.com"));
+ assertEquals("com.jboss", NamespacePackageMapping.getJavaPackageName("http://jboss.com/"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema/"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema.xsd"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema.html"));
+ assertEquals("com.jboss.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema.xf"));
+ assertEquals("com.jboss.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema.h"));
+ assertEquals("com.jboss.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema.htmls"));
+ assertEquals("com.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema/files"));
+ assertEquals("com.jboss.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.com/schema/files/"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/files/schema.xsd"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/files/schema.html"));
+ assertEquals("com.jboss.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.com/files/schema.xf"));
+ assertEquals("com.jboss.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.com/files/schema.h"));
+ assertEquals("com.jboss.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.com/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsZZZ()
+ {
+ assertEquals("www.jboss.zzz", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz"));
+ assertEquals("www.jboss.zzz", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/"));
+ assertEquals("www.jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema"));
+ assertEquals("www.jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema/"));
+ assertEquals("www.jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema.xsd"));
+ assertEquals("www.jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema.html"));
+ assertEquals("www.jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema.xf"));
+ assertEquals("www.jboss.zzz.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema.h"));
+ assertEquals("www.jboss.zzz.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema.htmls"));
+ assertEquals("www.jboss.zzz.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema/files"));
+ assertEquals("www.jboss.zzz.schema.files", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/schema/files/"));
+ assertEquals("www.jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/files/schema.xsd"));
+ assertEquals("www.jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/files/schema.html"));
+ assertEquals("www.jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/files/schema.xf"));
+ assertEquals("www.jboss.zzz.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/files/schema.h"));
+ assertEquals("www.jboss.zzz.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://www.jboss.zzz/files/schema.htmls"));
+ }
+
+ public void testHTTPMappingsZZZNoWWW()
+ {
+ assertEquals("jboss.zzz", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz"));
+ assertEquals("jboss.zzz", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/"));
+ assertEquals("jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema"));
+ assertEquals("jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema/"));
+ assertEquals("jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema.xsd"));
+ assertEquals("jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema.html"));
+ assertEquals("jboss.zzz.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema.xf"));
+ assertEquals("jboss.zzz.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema.h"));
+ assertEquals("jboss.zzz.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema.htmls"));
+ assertEquals("jboss.zzz.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema/files"));
+ assertEquals("jboss.zzz.schema.files", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/schema/files/"));
+ assertEquals("jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/files/schema.xsd"));
+ assertEquals("jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/files/schema.html"));
+ assertEquals("jboss.zzz.files.schema", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/files/schema.xf"));
+ assertEquals("jboss.zzz.files.schema_h", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/files/schema.h"));
+ assertEquals("jboss.zzz.files.schema_htmls", NamespacePackageMapping.getJavaPackageName("http://jboss.zzz/files/schema.htmls"));
+
+ }
+
+}
Property changes on: branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/NamespacePackageMappingTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/ToolsUtilsTestCase.java
===================================================================
--- branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/ToolsUtilsTestCase.java 2006-07-18 19:12:38 UTC (rev 616)
+++ branches/jbossws-1.0/src/test/java/org/jboss/test/ws/tools/utils/ToolsUtilsTestCase.java 2006-07-18 21:12:51 UTC (rev 617)
@@ -35,16 +35,6 @@
public class ToolsUtilsTestCase extends TestCase
{
- /**
- * Tests Java Package Name construction
- */
- public void testGetJavaPackageName()
- {
- assertEquals("org.jboss.types",ToolsUtils.getJavaPackageName("http://www.jboss.org/types"));
- assertEquals("org.jboss.types.file",ToolsUtils.getJavaPackageName("http://www.jboss.org/types/file.xsd"));
- assertEquals("org.jboss._1ver.types",ToolsUtils.getJavaPackageName("http://www.jboss.org.1ver/types"));
- assertEquals("org.jboss.v1",ToolsUtils.getJavaPackageName("urn:jboss-org:v1"));
- }
/**
* Tests whether the character is a punctuation character
More information about the jboss-svn-commits
mailing list