You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2007/05/11 07:03:27 UTC

svn commit: r537095 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/jaxb/ common/common/src/test/java/org/apache/cxf/jaxb/ tools/common/src/main/java/org/apache/cxf/tools/util/ tools/wsdlto/databinding/jaxb/src/main/java/org/apach...

Author: ema
Date: Thu May 10 22:03:26 2007
New Revision: 537095

URL: http://svn.apache.org/viewvc?view=rev&rev=537095
Log:
* Fixed issue CXF-640
* Fix the namespaceToPackage mapping issue with urn in JAXBUtils

Modified:
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/jaxb/JAXBUtils.java
    incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/jaxb/JAXBUtilsTest.java
    incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/JAXBUtils.java
    incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
    incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/jaxb/JAXBUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/jaxb/JAXBUtils.java?view=diff&rev=537095&r1=537094&r2=537095
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/jaxb/JAXBUtils.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/jaxb/JAXBUtils.java Thu May 10 22:03:26 2007
@@ -155,11 +155,12 @@
      * @return the package name.
      */
     public static String nameSpaceURIToPackage(URI uri) {
-        
-        StringBuffer packageName = new StringBuffer();   
-        
+       
+        StringBuffer packageName = new StringBuffer();
         String authority = uri.getAuthority();
-        
+        if (authority == null && "urn".equals(uri.getScheme())) {
+            authority = uri.getSchemeSpecificPart();
+        }
         
         if (null != authority && !"".equals(authority)) {
             if ("urn".equals(uri.getScheme())) {
@@ -167,12 +168,26 @@
                 for (int i = 0; i < packageName.length(); i++) {
                     if (packageName.charAt(i) == '-') {
                         packageName.setCharAt(i, '.');
+                    } 
+                }
+                authority = packageName.toString();
+                packageName.setLength(0);
+                
+                StringTokenizer st = new StringTokenizer(authority, ":");
+                while (st.hasMoreTokens()) {
+                    String token = st.nextToken();
+                    if (packageName.length() > 0) {
+                        packageName.insert(0, ".");
+                        packageName.insert(0, normalizePackageNamePart(token));
+                    } else {
+                        packageName.insert(0, token);
                     }
                 }
                 authority = packageName.toString();
                 packageName.setLength(0);
-            }
-
+                
+            }  
+            
             StringTokenizer st = new StringTokenizer(authority, ".");
             if (st.hasMoreTokens()) {
                 String token = null;
@@ -185,18 +200,16 @@
                     } else {
                         packageName.insert(0, ".");
                     }
-                    packageName.insert(0, token);
-                }
-
-                if (!("com".equals(token) || "gov".equals(token) || "net".equals(token)
-                      || "org".equals(token) || "edu".equals(token))) {
-                    packageName.setLength(0);
-
+                    packageName.insert(0, normalizePackageNamePart(token));
                 }
+               
             }
         }
 
         String path = uri.getPath();
+        if (path == null) {
+            path = "";
+        }
         int index = path.lastIndexOf('.');
         if (index < 0) {
             index = path.length();

Modified: incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/jaxb/JAXBUtilsTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/jaxb/JAXBUtilsTest.java?view=diff&rev=537095&r1=537094&r2=537095
==============================================================================
--- incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/jaxb/JAXBUtilsTest.java (original)
+++ incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/jaxb/JAXBUtilsTest.java Thu May 10 22:03:26 2007
@@ -112,4 +112,15 @@
         assertEquals("OTHER_PUNCT_CHARS", 
                      JAXBUtils.nameToIdentifier("other_punct-chars", JAXBUtils.IdentifierType.CONSTANT));
     }
+    
+    @Test
+    public void testNsToPkg() {
+        String urn = "urn:cxf.apache.org";     
+        String pkg = JAXBUtils.namespaceURIToPackage(urn);
+        assertEquals("org.apache.cxf", pkg);
+        
+        urn = "urn:cxf.apache.org:test.v4.6.4";
+        pkg = JAXBUtils.namespaceURIToPackage(urn);
+        assertEquals("org.apache.cxf.test_v4_6_4", pkg);       
+    }
 }

Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/JAXBUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/JAXBUtils.java?view=diff&rev=537095&r1=537094&r2=537095
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/JAXBUtils.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/JAXBUtils.java Thu May 10 22:03:26 2007
@@ -104,7 +104,7 @@
         Element rootElement = doc.createElement("schema");
         rootElement.setAttribute("xmlns", ToolConstants.SCHEMA_URI);
         rootElement.setAttribute("xmlns:jaxb", ToolConstants.NS_JAXB_BINDINGS);
-        rootElement.setAttribute("jaxb:version", "1.0");
+        rootElement.setAttribute("jaxb:version", "2.0");
         rootElement.setAttribute("targetNamespace", namespace);
         Element annoElement = doc.createElement("annotation");
         Element appInfo = doc.createElement("appinfo");

Modified: incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?view=diff&rev=537095&r1=537094&r2=537095
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu May 10 22:03:26 2007
@@ -70,12 +70,13 @@
     private void initialize(ToolContext c) throws ToolException {
         this.context = c;
 
+        
         SchemaCompilerImpl schemaCompiler = (SchemaCompilerImpl)XJC.createSchemaCompiler();
         ClassCollector classCollector = context.get(ClassCollector.class);
         ClassNameAllocatorImpl allocator = new ClassNameAllocatorImpl(classCollector);
 
         schemaCompiler.setClassNameAllocator(allocator);
-
+           
         JAXBBindErrorListener listener = new JAXBBindErrorListener(context.isVerbose());
         schemaCompiler.setErrorListener(listener);
         // Collection<SchemaInfo> schemas = serviceInfo.getSchemas();
@@ -101,17 +102,23 @@
             schemaCompiler.parseSchema(binding);
         }
 
-        if (context.getPackageName() != null) {
+        /*if (context.getPackageName() != null) {
             schemaCompiler.forcePackageName(context.getPackageName());
-        } else {
-            Map<String, String> nsPkgMap = context.getNamespacePackageMap();
-            for (String ns : nsPkgMap.keySet()) {
-                File file = JAXBUtils.getPackageMappingSchemaBindingFile(ns, nsPkgMap.get(ns));
-                InputSource ins = new InputSource(file.toURI().toString());
-                schemaCompiler.parseSchema(ins);
-                FileUtils.delete(file);
-            }
+        } else {*/
+            
+            
+        Map<String, String> nsPkgMap = context.getNamespacePackageMap();
+        for (String ns : nsPkgMap.keySet()) {
+            File file = JAXBUtils.getPackageMappingSchemaBindingFile(ns, context.mapPackageName(ns));
+            InputSource ins = new InputSource(file.toURI().toString());
+            schemaCompiler.parseSchema(ins);
+            FileUtils.delete(file);
         }
+        
+        if (context.getPackageName() != null) {
+            schemaCompiler.setDefaultPackageName(context.getPackageName());
+        }  
+        
 
         rawJaxbModelGenCode = schemaCompiler.bind();
 

Modified: incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?view=diff&rev=537095&r1=537094&r2=537095
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Thu May 10 22:03:26 2007
@@ -457,12 +457,39 @@
         env.put(ToolConstants.CFG_BINDING, "http://localhost:8585/remote-hello_world_binding.xsd");
         processor.setContext(env);
         processor.execute();
-        server.stop();
+        server.stop();      
+        
+    }
+    
+    
+    @Test
+    public void testDefaultNSWithPkg() throws Exception {
+        String[] args = new String[] {"-d", output.getCanonicalPath(), "-p", "org.cxf",
+                                      getLocation("/wsdl2java_wsdl/basic_callback.wsdl")};
 
+        WSDLToJava.main(args);
         
+        assertNotNull(output);
+        File org = new File(output, "org");
+        assertTrue(org.exists());
+        File apache = new File(org, "apache");
+        assertTrue(apache.exists());
+        File cxf = new File(apache, "cxf");
+        assertTrue(cxf.exists());
+        File ws = new File(cxf, "ws");
+        assertTrue(ws.exists());
+        File address = new File(ws, "addressing");
+        assertTrue(address.exists());
+
+        File[] files = address.listFiles();
+        assertEquals(11, files.length);
         
+        cxf = new File(output, "org/cxf");
+        assertTrue(cxf.exists());
+        files = cxf.listFiles();
+        assertEquals(5, files.length);
+
     }
-