You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/07/07 18:36:59 UTC

svn commit: r674548 - in /cxf/branches/2.0.x-fixes: ./ common/common/src/main/java/org/apache/cxf/resource/ maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/fr...

Author: dkulp
Date: Mon Jul  7 09:36:51 2008
New Revision: 674548

URL: http://svn.apache.org/viewvc?rev=674548&view=rev
Log:
Merged revisions 674547 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r674547 | dkulp | 2008-07-07 12:34:05 -0400 (Mon, 07 Jul 2008) | 7 lines
  
  [CXF-1683, CXF-1684, CXF-1685, CXF-1686] Apply a bunch of patches from Dave Leatherdale
  * Support "zip" URL's in resolvers
  * Fix relative paths being resolved incorrectly
  * Fix empty parameters being a problem with maven plugin
  * Add default options for maven plugin
  * add <bindingFiles> element to specify binding files for maven plugin so extraArgs need not be used for that and paths can be properly resolved for them.
........

Added:
    cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
      - copied unchanged from r674547, cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
Modified:
    cxf/branches/2.0.x-fixes/   (props changed)
    cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
    cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
    cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
    cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
    cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
    cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java
    cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/Messages.properties

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul  7 09:36:51 2008
@@ -1 +1 @@
-/cxf/trunk:673548,674485
+/cxf/trunk:673548,674485,674547

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java (original)
+++ cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java Mon Jul  7 09:36:51 2008
@@ -38,7 +38,6 @@
 
     public InputSource resolve(String curUri, String baseUri) {
         try {
-            lastestImportUri = curUri;
             currentResolver.resolve(baseUri, curUri, getClass());
             if (currentResolver.isResolved()) {
                 if (currentResolver.getURI() != null && currentResolver.getURI().isAbsolute()) {
@@ -60,6 +59,10 @@
             }
         } catch (IOException e) {
             // move on...
+        } finally {
+            lastestImportUri = curUri;
+            // the uri may have been updated since we were called
+            // so only store it away when everything else is done
         }
         return null;
         // return new InputSource(schemaLocation);

Modified: cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java (original)
+++ cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java Mon Jul  7 09:36:51 2008
@@ -64,10 +64,10 @@
         this.calling = (calling != null) ? calling : getClass();
         if (uriStr.startsWith("classpath:")) {
             tryClasspath(uriStr);
-        } else if (baseUriStr != null && baseUriStr.startsWith("jar:")) {
-            tryJar(baseUriStr, uriStr);
-        } else if (uriStr.startsWith("jar:")) {
-            tryJar(uriStr);
+        } else if (baseUriStr != null && (baseUriStr.startsWith("jar:") || baseUriStr.startsWith("zip:"))) {
+            tryArchive(baseUriStr, uriStr);
+        } else if (uriStr.startsWith("jar:") || uriStr.startsWith("zip:")) {
+            tryArchive(uriStr);
         } else {
             tryFileSystem(baseUriStr, uriStr);
         }
@@ -83,10 +83,10 @@
 
         if (uriStr.startsWith("classpath:")) {
             tryClasspath(uriStr);
-        } else if (baseUriStr != null && baseUriStr.startsWith("jar:")) {
-            tryJar(baseUriStr, uriStr);
-        } else if (uriStr.startsWith("jar:")) {
-            tryJar(uriStr);
+        } else if (baseUriStr != null && (baseUriStr.startsWith("jar:") || baseUriStr.startsWith("zip:"))) {
+            tryArchive(baseUriStr, uriStr);
+        } else if (uriStr.startsWith("jar:") || uriStr.startsWith("zip:")) {
+            tryArchive(uriStr);
         } else {
             tryFileSystem(baseUriStr, uriStr);
         }
@@ -193,18 +193,18 @@
         }
     }
     
-    private void tryJar(String baseStr, String uriStr) throws IOException {
+    private void tryArchive(String baseStr, String uriStr) throws IOException {
         int i = baseStr.indexOf('!');
         if (i == -1) {
             tryFileSystem(baseStr, uriStr);
         }
 
-        String jarBase = baseStr.substring(0, i + 1);
-        String jarEntry = baseStr.substring(i + 1);
+        String archiveBase = baseStr.substring(0, i + 1);
+        String archiveEntry = baseStr.substring(i + 1);
         try {
-            URI u = new URI(jarEntry).resolve(uriStr);
+            URI u = new URI(archiveEntry).resolve(uriStr);
 
-            tryJar(jarBase + u.toString());
+            tryArchive(archiveBase + u.toString());
 
             if (is != null) {
                 if (u.isAbsolute()) {
@@ -219,7 +219,7 @@
         tryFileSystem("", uriStr);
     }
     
-    private void tryJar(String uriStr) throws IOException {
+    private void tryArchive(String uriStr) throws IOException {
         int i = uriStr.indexOf('!');
         if (i == -1) {
             return;
@@ -252,7 +252,7 @@
             } catch (URISyntaxException e) {
                 // processing the jar:file:/ type value
                 String urlStr = url.toString();
-                if (urlStr.startsWith("jar:")) {
+                if (urlStr.startsWith("jar:") || urlStr.startsWith("zip:")) {
                     int pos = urlStr.indexOf('!');
                     if (pos != -1) {
                         try {

Modified: cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java (original)
+++ cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java Mon Jul  7 09:36:51 2008
@@ -70,6 +70,11 @@
      */
     MavenProject project;
 
+    /**
+     * Default options to be used when a wsdl has not had it's options explicitly specified.
+     * @parameter
+     */
+    Option defaultOptions;
 
     /**
      * @parameter
@@ -116,7 +121,7 @@
                                                    final File output)
         throws MojoExecutionException {
         List<WsdlOption> options = new ArrayList<WsdlOption>();
-        for (WsdlOption o : new WsdlOptionLoader().load(root, includes, excludes)) {
+        for (WsdlOption o : new WsdlOptionLoader().load(root, includes, excludes, defaultOptions)) {
             if (o.getOutputDir() == null) {
                 o.setOutputDir(output);
             }
@@ -326,17 +331,40 @@
                     list.add(it.next().toString());
                 }
             }
-            // -d specify the dir for generated source code
-            //list.add("-verbose");
+            if (getLog().isDebugEnabled()) {
+                list.add("-verbose");            
+            }
+            // -d specify the dir for generated source code            
             list.add("-d");
             list.add(outputDirFile.toString());
 
+            for (String binding : wsdlOption.getBindingFiles()) {
+                File bindingFile = new File(binding);
+                URI bindingURI;
+                if (bindingFile.exists()) {
+                    bindingURI = bindingFile.toURI();
+                } else {
+                    bindingURI = basedir.resolve(binding);
+                }
+                list.add("-b");
+                list.add(bindingURI.toString());
+            }
+            
             if (wsdlOption.getExtraargs() != null) {
                 Iterator it = wsdlOption.getExtraargs().iterator();
                 while (it.hasNext()) {
-                    list.add(it.next().toString());
+                    Object value = it.next();
+                    if (value == null) {
+                        value = ""; // Maven make empty tags into null
+                                    // instead of empty strings.
+                    }
+                    list.add(value.toString());
                 }
             }
+            if (wsdlOption.isSetWsdlLocation()) {
+                list.add("-wsdlLocation");
+                list.add(wsdlOption.getWsdlLocation() == null ? "" : wsdlOption.getWsdlLocation());
+            }
             list.add(wsdlURI.toString());
 
             getLog().debug("Calling wsdl2java with args: " + list);

Modified: cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java (original)
+++ cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java Mon Jul  7 09:36:51 2008
@@ -19,34 +19,12 @@
 
 package org.apache.cxf.maven_plugin;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
 
-public class WsdlOption {
+public class WsdlOption extends Option {
     String wsdl;
-    List<String> packagenames;
-    List<String> extraargs = new ArrayList<String>();
-    File outputDir;
-    File dependencies[];
-    File redundantDirs[];
-
-    public List<String> getExtraargs() {
-        return extraargs;
-    }
-
-    public void setExtraargs(List<String> ea) {
-        this.extraargs = ea;
-    }
-
-    public List<String> getPackagenames() {
-        return packagenames;
-    }
-
-    public void setPackagenames(List<String> pn) {
-        this.packagenames = pn;
-    }
-
+    String wsdlLocation;
+    boolean wsdlLocationSet;
+    
     public String getWsdl() {
         return wsdl;
     }
@@ -54,24 +32,17 @@
     public void setWsdl(String w) {
         wsdl = w;
     }
-    public void setDependencies(File files[]) {
-        dependencies = files;
-    }
-    public File[] getDependencies() {
-        return dependencies;
-    }    
-    public void setDeleteDirs(File files[]) {
-        redundantDirs = files;
+    
+    public void setWsdlLocation(String s) {
+        wsdlLocationSet = true;
+        wsdlLocation = s;
     }
-    public File[] getDeleteDirs() {
-        return redundantDirs;
+    public String getWsdlLocation() {
+        return wsdlLocation;
     }
     
-    public File getOutputDir() {
-        return outputDir;
-    }
-    public void setOutputDir(File f) {
-        outputDir = f;
+    public boolean isSetWsdlLocation() {
+        return wsdlLocationSet;
     }
     
     public int hashCode() {

Modified: cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java (original)
+++ cxf/branches/2.0.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java Mon Jul  7 09:36:51 2008
@@ -57,10 +57,13 @@
     }
     
     public List<WsdlOption> load(String wsdlRoot) throws MojoExecutionException {
-        return load(new File(wsdlRoot), new String[] {"*.wsdl"}, null);
+        return load(new File(wsdlRoot), new String[] {"*.wsdl"}, null, null);
     }
 
-    public List<WsdlOption> load(File wsdlBasedir, String includes[], String excludes[])
+    public List<WsdlOption> load(File wsdlBasedir,
+                                 String includes[],
+                                 String excludes[],
+                                 Option defaultOptions)
         throws MojoExecutionException {
         
         if (wsdlBasedir == null) {
@@ -68,10 +71,10 @@
         }
 
         if (!wsdlBasedir.exists()) {
-            throw new MojoExecutionException(wsdlBasedir + " not exists");
+            throw new MojoExecutionException(wsdlBasedir + " does not exist");
         }
 
-        return findJobs(wsdlBasedir, getWsdlFiles(wsdlBasedir, includes, excludes));
+        return findJobs(wsdlBasedir, getWsdlFiles(wsdlBasedir, includes, excludes), defaultOptions);
     }
 
     private List<File> getWsdlFiles(File dir, String includes[], String excludes[])
@@ -106,7 +109,7 @@
         return FileUtils.getFiles(dir, pattern);
     }
 
-    protected List<WsdlOption> findJobs(File dir, List<File> wsdlFiles) {
+    protected List<WsdlOption> findJobs(File dir, List<File> wsdlFiles, Option defaultOptions) {
         List<WsdlOption> jobs = new ArrayList<WsdlOption>();
 
         for (File wsdl : wsdlFiles) {
@@ -119,23 +122,17 @@
             File options = getOptions(dir, wsdlName + WSDL_OPTIONS);
             List<File> bindings = getBindingFiles(dir, wsdlName + WSDL_BINDINGS);
 
-            jobs.add(generateWsdlOption(wsdl, bindings, options));
+            jobs.add(generateWsdlOption(wsdl, bindings, options, defaultOptions));
         }
         return jobs;
     }
 
     protected WsdlOption generateWsdlOption(final File wsdl, 
                                             final List<File> bindingFiles, 
-                                            final File options) {
+                                            final File options,
+                                            final Option defaultOptions) {
         WsdlOption wsdlOption = new WsdlOption();
 
-        if (bindingFiles != null) {
-            for (File binding : bindingFiles) {
-                wsdlOption.getExtraargs().add("-b");
-                wsdlOption.getExtraargs().add(binding.toString());
-            }
-        }
-
         if (options != null && options.exists()) {
             try {
                 List<String> lines = FileUtils.readLines(options);
@@ -145,8 +142,22 @@
             } catch (Exception e) {
                 e.printStackTrace();
             }
+        } else if (defaultOptions != null) {
+            // no options specified use the defaults
+            wsdlOption.setPackagenames(defaultOptions.getPackagenames());
+            wsdlOption.setExtraargs(defaultOptions.getExtraargs());
+            wsdlOption.setOutputDir(defaultOptions.getOutputDir());
+            wsdlOption.setDeleteDirs(defaultOptions.getDeleteDirs());
+            wsdlOption.setDependencies(defaultOptions.getDependencies());
+            wsdlOption.setBindingFiles(defaultOptions.getBindingFiles());
+        }
+        
+        if (bindingFiles != null) {
+            for (File binding : bindingFiles) {
+                wsdlOption.addBindingFile(binding);
+            }
         }
-        wsdlOption.setWsdl(wsdl.toString());
+        wsdlOption.setWsdl(wsdl.toURI().toString());
         
         return wsdlOption;
     }

Modified: cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java (original)
+++ cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java Mon Jul  7 09:36:51 2008
@@ -465,7 +465,7 @@
             }
 
         } else {
-            Message msg = new Message("UNKNOWN_BINDING_FILE", LOG, bindingFile);
+            Message msg = new Message("UNKNOWN_BINDING_FILE", LOG, bindingFile, reader.getName());
             throw new ToolException(msg);
         }
     }

Modified: cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/Messages.properties
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/Messages.properties?rev=674548&r1=674547&r2=674548&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/Messages.properties (original)
+++ cxf/branches/2.0.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/Messages.properties Mon Jul  7 09:36:51 2008
@@ -19,7 +19,7 @@
 #
 #
 STAX_PARSER_ERROR = StAX parser error, check your external binding file(s)
-UNKNOWN_BINDING_FILE= Unknown external binding files: {0}
+UNKNOWN_BINDING_FILE= Unknown external binding file: {0}  Found unknown QName {1}
 CAN_NOT_FIND_BINDING_WSDL = Can not read the specified wsdl {0} that external binding file {1} points to
 BINDING_LOC_ERROR = Attribute wsdlLocation/schemaLocation value {0} in jaxws binding element is not an URI
 ERROR_TARGETNODE_WITH_XPATH = XPath query {0} is identifying either multiple or no target nodes.