You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by de...@apache.org on 2018/01/21 14:00:49 UTC

[cxf] branch master updated: [CXF-7618] Suppress generated date switch for wsdl2java closes #324

This is an automated email from the ASF dual-hosted git repository.

deki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e1fc62  [CXF-7618] Suppress generated date switch for wsdl2java closes #324
4e1fc62 is described below

commit 4e1fc6283d3a86dabf127c4426aff0343c5e1859
Author: Peter Butkovic <bu...@gmail.com>
AuthorDate: Sun Jan 21 14:06:43 2018 +0100

    [CXF-7618] Suppress generated date switch for wsdl2java closes #324
---
 .../apache/cxf/maven_plugin/wsdl2java/Option.java  | 16 ++++
 .../cxf/maven_plugin/wsdl2java/WsdlOption.java     |  2 +
 .../org/apache/cxf/tools/common/ToolConstants.java |  2 +-
 .../java2wsdl/generator/wsdl11/wrapperbean.vm      |  2 +
 .../java2wsdl/processor/internal/build.xml.vm      |  4 +-
 .../jaxws/generator/template/javafirst-client.vm   |  8 +-
 .../jaxws/generator/template/javafirst-impl.vm     | 12 +--
 .../jaxws/generator/template/javafirst-sei.vm      |  4 +-
 .../jaxws/generator/template/javafirst-server.vm   | 19 ++---
 .../internal/simple/generator/template/client.vm   |  8 +-
 .../internal/simple/generator/template/impl.vm     | 12 +--
 .../internal/simple/generator/template/sei.vm      |  4 +-
 .../internal/simple/generator/template/server.vm   |  6 +-
 .../cxf/tools/wsdlto/core/AbstractGenerator.java   |  1 +
 .../wsdlto/databinding/jaxb/JAXBDataBinding.java   | 34 +++++----
 .../tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml | 46 +++++++-----
 .../tools/wsdlto/frontend/jaxws/template/build.vm  | 10 ++-
 .../tools/wsdlto/frontend/jaxws/template/client.vm | 26 ++++---
 .../tools/wsdlto/frontend/jaxws/template/fault.vm  | 10 ++-
 .../tools/wsdlto/frontend/jaxws/template/impl.vm   | 22 +++---
 .../tools/wsdlto/frontend/jaxws/template/sei.vm    |  4 +-
 .../tools/wsdlto/frontend/jaxws/template/server.vm | 16 ++--
 .../wsdlto/frontend/jaxws/template/service.vm      | 42 ++++++-----
 .../cxf/tools/wsdlto/jaxws/CodeGenOptionTest.java  | 86 ++++++++++++++++++++++
 24 files changed, 271 insertions(+), 125 deletions(-)

diff --git a/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/Option.java b/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/Option.java
index 283b6f5..bde505c 100644
--- a/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/Option.java
+++ b/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/Option.java
@@ -170,6 +170,12 @@ public class Option {
     Boolean markGenerated;
 
     /**
+     * Prevents dumping current date as part of @Generated annotation as well as part of
+     * the javadocs of the Java files generated.
+     */
+    Boolean suppressGeneratedDate;
+
+    /**
      * The WSDL service name to use for the generated code
      */
     String serviceName;
@@ -411,6 +417,14 @@ public class Option {
         this.markGenerated = markGenerated;
     }
 
+    public Boolean isSuppressGeneratedDate() {
+        return suppressGeneratedDate;
+    }
+
+    public void setSuppressGeneratedDate(Boolean suppressGeneratedDate) {
+        this.suppressGeneratedDate = suppressGeneratedDate;
+    }
+
     public Boolean getDefaultExcludesNamespace() {
         return defaultExcludesNamespace;
     }
@@ -481,6 +495,7 @@ public class Option {
         destination.setNoTypes(isNoTypes());
         destination.setFaultSerialVersionUID(getFaultSerialVersionUID());
         destination.setMarkGenerated(isMarkGenerated());
+        destination.setSuppressGeneratedDate(isSuppressGeneratedDate());
         destination.setAllowElementRefs(isAllowElementRefs());
         if (isSetWsdlLocation()) {
             destination.setWsdlLocation(getWsdlLocation());
@@ -509,6 +524,7 @@ public class Option {
         faultSerialVersionUID = setIfNull(faultSerialVersionUID,
             defaultOptions.faultSerialVersionUID);
         markGenerated = setIfNull(markGenerated, defaultOptions.markGenerated);
+        suppressGeneratedDate = setIfNull(suppressGeneratedDate, defaultOptions.suppressGeneratedDate);
         autoNameResolution = setIfNull(autoNameResolution, defaultOptions.autoNameResolution);
         noAddressBinding = setIfNull(noAddressBinding, defaultOptions.noAddressBinding);
         allowElementRefs = setIfNull(allowElementRefs, defaultOptions.allowElementRefs);
diff --git a/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WsdlOption.java b/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WsdlOption.java
index 77d141b..ec86464 100644
--- a/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WsdlOption.java
+++ b/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WsdlOption.java
@@ -170,6 +170,8 @@ public class WsdlOption extends Option implements org.apache.cxf.maven_plugin.Ge
         }
         addIfTrue(list, isMarkGenerated() != null && isMarkGenerated(),
             "-" + ToolConstants.CFG_MARK_GENERATED);
+        addIfTrue(list, isSuppressGeneratedDate() != null && isSuppressGeneratedDate(),
+            "-" + ToolConstants.CFG_SUPPRESS_GENERATED_DATE);
         addIfNotNull(list, getDefaultExcludesNamespace(), "-dex");
         addIfNotNull(list, getDefaultNamespacePackageMapping(), "-dns");
         addIfNotNull(list, getServiceName(), "-sn");
diff --git a/tools/common/src/main/java/org/apache/cxf/tools/common/ToolConstants.java b/tools/common/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
index 7820902..5530ef5 100644
--- a/tools/common/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
+++ b/tools/common/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
@@ -101,7 +101,7 @@ public final class ToolConstants {
     public static final String CFG_EXCEPTION_SUPER = "exceptionSuper";
     public static final String CFG_SEI_SUPER = "seiSuper";
     public static final String CFG_MARK_GENERATED = "mark-generated";
-
+    public static final String CFG_SUPPRESS_GENERATED_DATE = "suppress-generated-date";
 
     //Internal Flag to generate
     public static final String CFG_IMPL_CLASS = "implClass";
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/wrapperbean.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/wrapperbean.vm
index 5aa751c..abb8239 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/wrapperbean.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/wrapperbean.vm
@@ -23,7 +23,9 @@ import ${import};
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
  */
 
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/build.xml.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/build.xml.vm
index 623fdc4..8b0b3df 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/build.xml.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/build.xml.vm
@@ -17,9 +17,11 @@
 <?xml version="1.0"?>
 <!--
      Generated by Java2WS.
-     
+
      This file was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
      $currentdate
+#end
      Generated source version: $version
 
 -->
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-client.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-client.vm
index d32434e..bc09a75 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-client.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-client.vm
@@ -27,9 +27,11 @@ import javax.xml.ws.soap.SOAPBinding;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 public class ${intf.Name}Client {
 
@@ -39,9 +41,9 @@ public class ${intf.Name}Client {
 
         Service service = Service.create(serviceName);
         service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING,
-                        "${address}"); 
+                        "${address}");
         ${intf.FullClassName} client = service.getPort(portName,  ${intf.FullClassName}.class);
-        
+
         // Insert code to invoke methods on the client here
     }
 
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-impl.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-impl.vm
index cac050a..03fd36d 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-impl.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-impl.vm
@@ -25,15 +25,17 @@ import javax.jws.WebService;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
-@WebService(endpointInterface = "${intf.FullClassName}", serviceName = "${service.LocalPart}")                      
+@WebService(endpointInterface = "${intf.FullClassName}", serviceName = "${service.LocalPart}")
 public class ${intf.Name}Impl implements $intf.Name {
 #foreach ($method in $intf.Methods)
 
-    public $method.return.ClassName ${method.Name}(#if($method.ParameterList.size() == 0))#end#if($method.ParameterList.size() != 0)#foreach ($param in ${method.ParameterList})$param#end)#end#if($method.Exceptions.size() > 0) throws#foreach($exception in $method.Exceptions) $exception.ClassName#if($method.Exceptions.size() != $foreach.count),#end#end#end {  
+    public $method.return.ClassName ${method.Name}(#if($method.ParameterList.size() == 0))#end#if($method.ParameterList.size() != 0)#foreach ($param in ${method.ParameterList})$param#end)#end#if($method.Exceptions.size() > 0) throws#foreach($exception in $method.Exceptions) $exception.ClassName#if($method.Exceptions.size() != $foreach.count),#end#end#end {
 #foreach ($parameter in $method.Parameters)
 #if ($parameter.Style.toString() == "IN")
         System.out.println($parameter.Name);#end#end
@@ -42,7 +44,7 @@ public class ${intf.Name}Impl implements $intf.Name {
          #set($paramValueName = "${parameter.Name}Value")
             ${parameter.writeDefaultValue(${out}, "            ", ${method.Name}, ${paramValueName})}
             ${parameter.Name}.value = ${paramValueName};
-      #end        
+      #end
     #end
 
         #if ($method.return.ClassName != "void")try {
@@ -54,7 +56,7 @@ public class ${intf.Name}Impl implements $intf.Name {
         }
  #end
 
-#if ($method.Exceptions.size() > 0) 
+#if ($method.Exceptions.size() > 0)
 #foreach($exception in $method.Exceptions)
         //throw new ${exception.ClassName}("${exception.Name}...");
 #end
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-sei.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-sei.vm
index 1307df9..2207126 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-sei.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-sei.vm
@@ -28,9 +28,11 @@ import ${import};
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 
 @WebService
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-server.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-server.vm
index f44299a..d957d49 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-server.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/generator/template/javafirst-server.vm
@@ -21,11 +21,13 @@ import javax.xml.ws.Endpoint;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
- 
+
 public class ${intf.Name}Server{
 
     protected ${intf.Name}Server() throws Exception {
@@ -34,15 +36,14 @@ public class ${intf.Name}Server{
         String address = "${address}";
         Endpoint.publish(address, implementor);
     }
-    
-    public static void main(String args[]) throws Exception { 
+
+    public static void main(String args[]) throws Exception {
         new ${intf.Name}Server();
-        System.out.println("Server ready..."); 
-        
-        Thread.sleep(5 * 60 * 1000); 
+        System.out.println("Server ready...");
+
+        Thread.sleep(5 * 60 * 1000);
         System.out.println("Server exiting");
         System.exit(0);
     }
 }
- 
- 
\ No newline at end of file
+
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/client.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/client.vm
index e8984b2..b023605 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/client.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/client.vm
@@ -28,11 +28,13 @@ import org.apache.cxf.aegis.databinding.AegisDatabinding;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
  */
  public class ${intf.Name}Client {
- 
+
     public static void main(String[] args) throws Exception {
         ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
         ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
@@ -42,8 +44,8 @@ import org.apache.cxf.aegis.databinding.AegisDatabinding;
         clientBean.setServiceClass(${seiClass}.class);
         proxyFactory.getServiceFactory().setDataBinding(new AegisDatabinding());
         ${seiClass} client = (${seiClass})proxyFactory.create();
-        
+
         // Insert code to invoke methods on the client here
     }
-    
+
  }
\ No newline at end of file
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/impl.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/impl.vm
index ddc3235..6e8153d 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/impl.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/impl.vm
@@ -24,15 +24,17 @@ package $intf.PackageName;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
-                      
+
 public class ${intf.Name}Impl implements ${seiClass} {
 #foreach ($method in $intf.Methods)
 
-    public $method.return.ClassName ${method.Name}(#if($method.ParameterList.size() == 0))#end#if($method.ParameterList.size() != 0)#foreach ($param in ${method.ParameterList})$param#end)#end#if($method.Exceptions.size() > 0) throws#foreach($exception in $method.Exceptions) $exception.ClassName#if($method.Exceptions.size() != $foreach.count),#end#end#end {  
+    public $method.return.ClassName ${method.Name}(#if($method.ParameterList.size() == 0))#end#if($method.ParameterList.size() != 0)#foreach ($param in ${method.ParameterList})$param#end)#end#if($method.Exceptions.size() > 0) throws#foreach($exception in $method.Exceptions) $exception.ClassName#if($method.Exceptions.size() != $foreach.count),#end#end#end {
 #foreach ($parameter in $method.Parameters)
 #if ($parameter.Style.toString() == "IN")
         System.out.println($parameter.Name);#end#end
@@ -41,7 +43,7 @@ public class ${intf.Name}Impl implements ${seiClass} {
          #set($paramValueName = "${parameter.Name}Value")
             ${parameter.writeDefaultValue(${out}, "            ", ${method.Name}, ${paramValueName})}
             ${parameter.Name}.value = ${paramValueName};
-      #end        
+      #end
     #end
 
         #if ($method.return.ClassName != "void")try {
@@ -53,7 +55,7 @@ public class ${intf.Name}Impl implements ${seiClass} {
         }
  #end
 
-#if ($method.Exceptions.size() > 0) 
+#if ($method.Exceptions.size() > 0)
 #foreach($exception in $method.Exceptions)
          //throw new ${exception.ClassName}("${exception.Name}...");
 #end
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/sei.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/sei.vm
index b0ce9ba..b83fd72 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/sei.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/sei.vm
@@ -28,9 +28,11 @@ import ${import};
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 
 
diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/server.vm b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/server.vm
index 38f3876..88ac5ea 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/server.vm
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/simple/generator/template/server.vm
@@ -27,9 +27,11 @@ import org.apache.cxf.aegis.databinding.AegisDatabinding;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 public class ${intf.Name}Server {
 
@@ -45,5 +47,5 @@ public class ${intf.Name}Server {
         svrBean.create();
         System.out.println("Server started");
     }
-    
+
 }
\ No newline at end of file
diff --git a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/AbstractGenerator.java b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/AbstractGenerator.java
index c1adf8f..82ee3ac 100644
--- a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/AbstractGenerator.java
+++ b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/AbstractGenerator.java
@@ -117,6 +117,7 @@ public abstract class AbstractGenerator implements FrontEndGenerator {
         setAttributes("fullversion", Version.getCompleteVersionString());
         setAttributes("name", Version.getName());
         setAttributes("markGenerated", env.optionSet(ToolConstants.CFG_MARK_GENERATED));
+        setAttributes("suppressGeneratedDate", env.optionSet(ToolConstants.CFG_SUPPRESS_GENERATED_DATE));
         if (env.optionSet(ToolConstants.CFG_FRONTEND)) {
             setAttributes("frontend", env.get(ToolConstants.CFG_FRONTEND));
         }
diff --git a/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java b/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
index b4b2e73..098ca98 100644
--- a/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
+++ b/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
@@ -437,24 +437,10 @@ public class JAXBDataBinding implements DataBindingProfile {
                 throw new ToolException(e);
             }
         }
+
         addSchemas(opts, schemaCompiler, schemas);
         addBindingFiles(opts, jaxbBindings, schemas);
-
-
-        for (String ns : context.getNamespacePackageMap().keySet()) {
-            File file = JAXBUtils.getPackageMappingSchemaBindingFile(ns, context.mapPackageName(ns));
-            try {
-                InputSource ins = new InputSource(file.toURI().toString());
-                schemaCompiler.parseSchema(ins);
-            } finally {
-                FileUtils.delete(file);
-            }
-        }
-
-        if (context.getPackageName() != null) {
-            schemaCompiler.setDefaultPackageName(context.getPackageName());
-        }
-
+        parseSchemas(schemaCompiler);
 
         rawJaxbModelGenCode = schemaCompiler.bind();
 
@@ -480,6 +466,22 @@ public class JAXBDataBinding implements DataBindingProfile {
         initialized = true;
     }
 
+    private void parseSchemas(SchemaCompiler schemaCompiler) {
+        for (String ns : context.getNamespacePackageMap().keySet()) {
+            File file = JAXBUtils.getPackageMappingSchemaBindingFile(ns, context.mapPackageName(ns));
+            try {
+                InputSource ins = new InputSource(file.toURI().toString());
+                schemaCompiler.parseSchema(ins);
+            } finally {
+                FileUtils.delete(file);
+            }
+        }
+
+        if (context.getPackageName() != null) {
+            schemaCompiler.setDefaultPackageName(context.getPackageName());
+        }
+    }
+
     private boolean isJAXB22() {
         return org.apache.cxf.common.jaxb.JAXBUtils.isJAXB22();
     }
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
index a8339e1..d5cda21 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
@@ -91,8 +91,8 @@ Examples:
             <option id="reserveClass" maxOccurs="unbounded">
                 <annotation>
                     Reserve a class name to keep the code generator from generating
-                    a class of the given name.   In name cases, a binding file or 
-                    use of -autoNameResolution flag may be necessary for the 
+                    a class of the given name.   In name cases, a binding file or
+                    use of -autoNameResolution flag may be necessary for the
                     code generator to completely generate usable code.
                 </annotation>
                 <switch>reserveClass</switch>
@@ -167,14 +167,14 @@ Examples:
             </option>
             <option id="autoNameResolution" maxOccurs="1">
                 <annotation>
-                    Specifies that the tool will attempt to resolve class naming conflicts 
+                    Specifies that the tool will attempt to resolve class naming conflicts
                     without requiring the use of binding customizations.
                 </annotation>
                 <switch>autoNameResolution</switch>
             </option>
             <option id="allowElementReferences" maxOccurs="1">
-                <annotaion>
-                </annotaion>
+                <annotation>
+                </annotation>
                 <associatedArgument placement="immediate">
                     <annotation>=true</annotation>
                     <valueenum>true|false</valueenum>
@@ -184,8 +184,8 @@ Examples:
             </option>
             <option id="defaultValues" maxOccurs="1">
                 <annotation>
-                    Specifies that default values are generated for the dummy implementation and client. 
-                    You can specify the name of the class to provide the default values. The default is 
+                    Specifies that default values are generated for the dummy implementation and client.
+                    You can specify the name of the class to provide the default values. The default is
                     RandomValueProvider.
                 </annotation>
                 <switch>defaultValues</switch>
@@ -245,10 +245,10 @@ Examples:
             </option>
             <option id="validate" maxOccurs="1">
                 <annotation>
-                    Specifies that the WSDL is validated before generating the code. Using 
+                    Specifies that the WSDL is validated before generating the code. Using
                     this option is highly recommended.  By default, only very basic validation
                     is done to make sure the WSDL meets the WSI-BasicProfile standards that
-                    CXF requires.  -validate=none can turn off those checks while -validate or 
+                    CXF requires.  -validate=none can turn off those checks while -validate or
                     -validate=all turns on additional schema validation and other checks.
                 </annotation>
                 <associatedArgument placement="immediate">
@@ -274,12 +274,12 @@ Examples:
             <option id="xjc" maxOccurs="unbounded">
                 <annotation>
                     Specifies a comma separated list of arguments that are passed directly to XJC when the
-                    JAXB data binding  is used. This option causes XJC to load additional plugins that 
-                    augment code generation. For example to load the toString(ts) plugin that will add a toString() 
-                    method to all generated types the following &lt;xjc arguments&gt; would 
+                    JAXB data binding  is used. This option causes XJC to load additional plugins that
+                    augment code generation. For example to load the toString(ts) plugin that will add a toString()
+                    method to all generated types the following &lt;xjc arguments&gt; would
                     be used:
                           -xjc-Xts
-                    A list of available XJC plugins can be obtained by using -xjc-X.                     
+                    A list of available XJC plugins can be obtained by using -xjc-X.
                 </annotation>
                 <associatedArgument placement="immediate">
                     <annotation>xjc-arguments</annotation>
@@ -310,7 +310,7 @@ Examples:
             </option>
             <option id="mimeMethods" maxOccurs="unbounded">
                 <annotation>
-                    Specifies a comma separated list of methods where the 
+                    Specifies a comma separated list of methods where the
                     mime:content information is used to generate the type.
                 </annotation>
                 <associatedArgument placement="immediate">
@@ -320,7 +320,7 @@ Examples:
             </option>
             <option id="noAddressBinding" maxOccurs="1">
                 <annotation>
-                    Specifies that the generator should not use the address jaxb binding file to map wsa:EndpointReferenceType 
+                    Specifies that the generator should not use the address jaxb binding file to map wsa:EndpointReferenceType
                     or wsa:EndpointReference to javax.xml.ws.wsaddressing.W3CEndpointReference.
                 </annotation>
                 <switch>noAddressBinding</switch>
@@ -329,7 +329,7 @@ Examples:
                 <annotation>
                     Specifies how to generate fault Exception's SUID, can use NONE|TIMESTAMP|FQCN|####", the default is NONE.
                     FQCN uses a hash of the fully qualified class name.   #### would be any valid Long to
-                    use as the SUID. 
+                    use as the SUID.
                 </annotation>
                 <switch>faultSerialVersionUID</switch>
                 <associatedArgument placement="afterSpace">
@@ -338,7 +338,7 @@ Examples:
             </option>
             <option id="encoding" maxOccurs="1">
                 <annotation>
-                    Specifies the charset encoding to use when generating java sources 
+                    Specifies the charset encoding to use when generating java sources
                 </annotation>
                 <switch>encoding</switch>
                 <associatedArgument placement="afterSpace">
@@ -369,6 +369,12 @@ Examples:
                 </annotation>
                 <switch>mark-generated</switch>
             </option>
+            <option id="suppressGeneratedDate" maxOccurs="1">
+                <annotation>
+                    Prevents dumping current date as part of javadocs of the Java files generated.
+                </annotation>
+                <switch>suppress-generated-date</switch>
+            </option>
         </optionGroup>
         <optionGroup id="common_options">
             <option id="help" maxOccurs="1">
@@ -401,9 +407,9 @@ Examples:
             <option id="wsdlList" maxOccurs="1">
                 <annotation>
                         Indicates the wsdlurl is a plain text list of wsdlurls that are new line delimited.
-                        As an example the wsdlurl might point to 
-                        http://127.0.0.1:8080/context_path/ws?formatted=false&amp;wsdlList=true on a cxf 
-                        server. 
+                        As an example the wsdlurl might point to
+                        http://127.0.0.1:8080/context_path/ws?formatted=false&amp;wsdlList=true on a cxf
+                        server.
                     </annotation>
                 <switch>wsdlList</switch>
             </option>
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
index bf40bdf..257c60e 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/build.vm
@@ -17,9 +17,11 @@
 <?xml version="1.0"?>
 <!--
      Generated by WSDLToJava Compiler.
-     
+
      This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
      $currentdate
+#end
      Generated source version: $version
 -->
 
@@ -100,7 +102,7 @@
 
 
     <path id="cxf.classpath">
-        <pathelement location="${home.dir}" /> 
+        <pathelement location="${home.dir}" />
         <pathelement location="${build.classes.dir}"/>
         <pathelement location="${cxfManifest.jar.file}"/>
         <fileset dir="${cxf.endorsed.dir}">
@@ -113,7 +115,7 @@
         <property name="param" value=""/>
         <cxfrun classname="$clientClassNamesMap.get($targetName)"
 #if ($wsdlLocation.startsWith("classpath:"))
-                   />    
+                   />
 #else
                    param1="$wsdlLocation"/>
 #end
@@ -124,7 +126,7 @@
     <target name="${target}" description="Run $serverClassNamesMap.get($target)" depends="compile">
         <cxfrun classname="$serverClassNamesMap.get($target)"
 #if ($wsdlLocation.startsWith("classpath:"))
-                   />    
+                   />
 #else
                    param1="$wsdlLocation"/>
 #end
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
index 5b9f187..1854c5d 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
@@ -29,7 +29,7 @@ import java.net.URL;
 import javax.annotation.Generated;
 #end
 import javax.xml.namespace.QName;
-#if ($service.PackageName != $intf.PackageName) 
+#if ($service.PackageName != $intf.PackageName)
 import ${service.PackageName}.${service.Name};
 #end
 #foreach ($import in $intf.Imports)
@@ -38,9 +38,11 @@ import ${import};
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 #if ($markGenerated == "true")
 @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate", comments = "$fullversion")
@@ -63,7 +65,7 @@ public final class ${clientClassName} {
 #end
     public static void main(String args[]) throws java.lang.Exception {
         URL wsdlURL = ${service.Name}.WSDL_LOCATION;
-        if (args.length > 0 && args[0] != null && !"".equals(args[0])) { 
+        if (args.length > 0 && args[0] != null && !"".equals(args[0])) {
             File wsdlFile = new File(args[0]);
             try {
                 if (wsdlFile.exists()) {
@@ -75,10 +77,10 @@ public final class ${clientClassName} {
                 e.printStackTrace();
             }
         }
-      
+
         $service.Name ss = new ${service.Name}(wsdlURL, SERVICE_NAME);
-        $intf.Name port = ss.${port.MethodName}();  
-        
+        $intf.Name port = ss.${port.MethodName}();
+
 #foreach ($method in $intf.Methods)
         {
         System.out.println("Invoking ${method.Name}...");
@@ -86,14 +88,14 @@ public final class ${clientClassName} {
 #set($paramValueName = "_${method.Name}_${parameter.Name}")
 #if ($parameter.Style.toString() == "IN")
         ${parameter.writeDefaultValue(${out}, "        ", ${method.Name}, ${paramValueName})}
-#elseif ($parameter.Style.toString() == "INOUT")          
+#elseif ($parameter.Style.toString() == "INOUT")
 #set($paramValueName2 = "${paramValueName}Val")
         ${parameter.writeDefaultValue(${out}, "        ", ${method.Name}, ${paramValueName2})}
         javax.xml.ws.Holder<${parameter.ClassName}> $paramValueName = new javax.xml.ws.Holder<${parameter.ClassName}>(${paramValueName2});
-#elseif ($parameter.Style.toString() == "OUT")   
+#elseif ($parameter.Style.toString() == "OUT")
         javax.xml.ws.Holder<${parameter.ClassName}> $paramValueName = new javax.xml.ws.Holder<${parameter.ClassName}>();
-#end    
-#end    
+#end
+#end
 #set($indent = "        ")
 #if($method.Exceptions.size() > 0)
 #set($indent = "            ")
@@ -113,11 +115,11 @@ ${indent}System.out.println("${method.Name}.${paramValueName}=" + ${paramValueNa
 #end
 #if($method.Exceptions.size() > 0)
         }#foreach($exception in $method.Exceptions)
- catch ($exception.ClassName e) { 
+ catch ($exception.ClassName e) {
             System.out.println("Expected exception: $exception.Name has occurred.");
             System.out.println(e.toString());
         }#end
-#end        
+#end
 
 ${indent}}
 #end
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/fault.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/fault.vm
index 0d2208f..9f4cea8 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/fault.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/fault.vm
@@ -30,9 +30,11 @@ import ${import};
 #if ($expClass.classJavaDoc != "")
 $expClass.classJavaDoc
  *
-#end   
+#end
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
  */
 
@@ -50,7 +52,7 @@ public class $expClass.Name extends $exceptionSuperclass {
     public static final long serialVersionUID = ${suid}L;
 #end
 #foreach ($field in $expClass.Fields)
-    
+
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
 #end
@@ -62,14 +64,14 @@ public class $expClass.Name extends $exceptionSuperclass {
     public ${expClass.Name}() {
         super();
     }
-    
+
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
 #end
     public ${expClass.Name}(String message) {
         super(message);
     }
-    
+
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
 #end
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
index fdc8ce4..775176e 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
@@ -32,26 +32,28 @@ import ${import};
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 
 @javax.jws.WebService(
-#if ($service.ServiceName != "") 
+#if ($service.ServiceName != "")
                       serviceName = "$service.ServiceName",
 #end
-#if ($port != "") 
+#if ($port != "")
                       portName = "$port",
 #end
-#if ($service.Namespace != "") 
+#if ($service.Namespace != "")
                       targetNamespace = "$service.Namespace",
 #end
-#if ($intf.Location != "") 
+#if ($intf.Location != "")
                       wsdlLocation = "$intf.Location",
 #end
                       endpointInterface = "$intf.PackageName.$intf.Name")
-                      
+
 #if ($markGenerated == "true")
 @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate", comments = "$fullversion")
 #end
@@ -69,7 +71,7 @@ public class ${implName} implements $intf.Name {
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
 #end
-    public $method.return.ClassName ${method.Name}(#if($method.ParameterListWithoutAnnotation.size() == 0))#end#if($method.ParameterListWithoutAnnotation.size() != 0)#foreach($param in ${method.ParameterListWithoutAnnotation})$param#if($foreach.count != $method.ParameterListWithoutAnnotation.size()) #end#end)#end#if($method.Exceptions.size() > 0) throws #foreach($exception in $method.Exceptions)$exception.ClassName#if($foreach.count != $method.Exceptions.size()), #end #end #end { 
+    public $method.return.ClassName ${method.Name}(#if($method.ParameterListWithoutAnnotation.size() == 0))#end#if($method.ParameterListWithoutAnnotation.size() != 0)#foreach($param in ${method.ParameterListWithoutAnnotation})$param#if($foreach.count != $method.ParameterListWithoutAnnotation.size()) #end#end)#end#if($method.Exceptions.size() > 0) throws #foreach($exception in $method.Exceptions)$exception.ClassName#if($foreach.count != $method.Exceptions.size()), #end #end #end {
 #if ($method.Async)
        return null;
        /* not called */
@@ -78,7 +80,7 @@ public class ${implName} implements $intf.Name {
 #foreach ($parameter in $method.Parameters)
 #if ($parameter.Style.toString() == "IN")
         System.out.println($parameter.Name);
-#elseif ($parameter.Style.toString() == "INOUT")        
+#elseif ($parameter.Style.toString() == "INOUT")
         System.out.println(${parameter.Name}.value);
 #end
 #end
@@ -88,7 +90,7 @@ public class ${implName} implements $intf.Name {
 #set($paramValueName = "${parameter.Name}Value")
             ${parameter.writeDefaultValue(${out}, "            ", ${method.Name}, ${paramValueName})}
             ${parameter.Name}.value = ${paramValueName};
-#end        
+#end
 #end
 #if ($method.return.ClassName != "void")
             ${method.return.writeDefaultValue(${out}, "            ", ${method.Name}, "_return")}
@@ -98,7 +100,7 @@ public class ${implName} implements $intf.Name {
             ex.printStackTrace();
             throw new RuntimeException(ex);
         }
-#if ($method.Exceptions.size() > 0) 
+#if ($method.Exceptions.size() > 0)
 #foreach($exception in $method.Exceptions)
         //throw new ${exception.ClassName}("${exception.Name}...");
 #end
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/sei.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/sei.vm
index 4e033a9..045e8df 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/sei.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/sei.vm
@@ -34,9 +34,11 @@ $intf.classJavaDoc
  *
 #end
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
 #foreach ($annotation in $intf.Annotations)
 $annotation
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/server.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/server.vm
index 1c43bd3..1d7353b 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/server.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/server.vm
@@ -24,11 +24,13 @@ import javax.xml.ws.Endpoint;
 
 /**
  * This class was generated by $fullversion
+#if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
- 
+
 #if ($markGenerated == "true")
 @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate", comments = "$fullversion")
 #end
@@ -43,15 +45,15 @@ public class ${serverClassName}{
         String address = "${address}";
         Endpoint.publish(address, implementor);
     }
-    
+
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
 #end
-    public static void main(String args[]) throws java.lang.Exception { 
+    public static void main(String args[]) throws java.lang.Exception {
         new ${serverClassName}();
-        System.out.println("Server ready..."); 
-        
-        Thread.sleep(5 * 60 * 1000); 
+        System.out.println("Server ready...");
+
+        Thread.sleep(5 * 60 * 1000);
         System.out.println("Server exiting");
         System.exit(0);
     }
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/service.vm b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/service.vm
index 57a2526..7362e77 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/service.vm
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/service.vm
@@ -32,7 +32,7 @@ import javax.xml.namespace.QName;
 import javax.xml.ws.WebEndpoint;
 import javax.xml.ws.WebServiceClient;
 import javax.xml.ws.WebServiceFeature;
-#foreach ($import in ${service.Imports}) 
+#foreach ($import in ${service.Imports})
 import ${import};
 #end
 #if ($serviceTarget == "cxf")
@@ -46,15 +46,17 @@ $service.classJavaDoc
  *
 #end
  * This class was generated by $fullversion
+ #if ($suppressGeneratedDate != "true")
  * $currentdate
+#end
  * Generated source version: $version
- * 
+ *
  */
-@WebServiceClient(name = "${service.ServiceName}", 
+@WebServiceClient(name = "${service.ServiceName}",
 #if ($wsdlLocation != "")
                   wsdlLocation = "$wsdlLocation",
 #end
-                  targetNamespace = "$service.Namespace") 
+                  targetNamespace = "$service.Namespace")
 #foreach ($annotation in $service.Annotations)
 $annotation
 #end
@@ -81,7 +83,7 @@ public class ${service.Name} extends ${serviceSuperclass} {
     static {
 #if ($wsdlLocation == "")
         WSDL_LOCATION = null;
-#elseif ($wsdlLocation == "null")       
+#elseif ($wsdlLocation == "null")
         WSDL_LOCATION = null;
 #elseif ($wsdlLocation.startsWith("classpath:"))
         URL url = ${service.Name}.class.getClassLoader().getResource("$wsdlLocation.substring(10)");
@@ -89,31 +91,31 @@ public class ${service.Name} extends ${serviceSuperclass} {
         if (url == null) {
             url = ${service.Name}.class.getClassLoader().getResource("$wsdlLocation.substring(11)");
         }
-#end     
+#end
         if (url == null) {
 #if ($serviceTarget == "cxf")
             LogUtils.getL7dLogger(${service.Name}.class)
 #else
             java.util.logging.Logger.getLogger(${service.Name}.class.getName())
 #end
-                .log(java.util.logging.Level.INFO, 
+                .log(java.util.logging.Level.INFO,
                      "Can not initialize the default wsdl from {0}", "$wsdlLocation");
-        }       
-        WSDL_LOCATION = url;   
+        }
+        WSDL_LOCATION = url;
 #elseif ($useGetResource)
         URL url = ${service.Name}.class.getResource("$wsdlLocation");
         if (url == null) {
             url = ${service.Name}.class.getClassLoader().getResource("$wsdlLocation");
-        } 
+        }
         if (url == null) {
 #if ($serviceTarget == "cxf")
             LogUtils.getL7dLogger(${service.Name}.class)
 #else
             java.util.logging.Logger.getLogger(${service.Name}.class.getName())
 #end
-                .log(java.util.logging.Level.INFO, 
+                .log(java.util.logging.Level.INFO,
                      "Can not initialize the default wsdl from {0}", "$wsdlLocation");
-        }       
+        }
         WSDL_LOCATION = url;
 #else
         URL url = null;
@@ -125,7 +127,7 @@ public class ${service.Name} extends ${serviceSuperclass} {
 #else
             java.util.logging.Logger.getLogger(${service.Name}.class.getName())
 #end
-                .log(java.util.logging.Level.INFO, 
+                .log(java.util.logging.Level.INFO,
                      "Can not initialize the default wsdl from {0}", "$wsdlLocation");
         }
         WSDL_LOCATION = url;
@@ -152,7 +154,7 @@ public class ${service.Name} extends ${serviceSuperclass} {
 #end
     public ${service.Name}(Bus bus, URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
         super(bus, wsdlLocation, serviceName, features);
-    }    
+    }
 #else
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
@@ -174,8 +176,8 @@ public class ${service.Name} extends ${serviceSuperclass} {
     public ${service.Name}() {
         super(WSDL_LOCATION, SERVICE);
     }
-#end 
-    
+#end
+
 #if ($jaxws22 || $serviceTarget == "cxf")
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
@@ -196,14 +198,14 @@ public class ${service.Name} extends ${serviceSuperclass} {
 #end
     public ${service.Name}(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
         super(wsdlLocation, serviceName, features);
-    }    
+    }
 #end
 
 #if ($frontend == "cxf")
 #foreach ($portClassName in $cxfPortClassnames)
     /**
      * Proxy interface the extends ${portClassName} to also provide useful methods
-     * without having to cast to the appropriate interface. 
+     * without having to cast to the appropriate interface.
      */
 #if ($markGenerated == "true")
     @Generated(value = "org.apache.cxf.tools.wsdlto.WSDLToJava", date = "$currentdate")
@@ -215,7 +217,7 @@ public class ${service.Name} extends ${serviceSuperclass} {
 
 #foreach ($port in $service.Ports)
 #set($portClassName = ${port.InterfaceClass})
-#if ($portClassName == ${service.Name}) 
+#if ($portClassName == ${service.Name})
 #set($portClassName = ${port.fullClassName})
 #end
 
@@ -243,7 +245,7 @@ $port.javaDoc
 #if ($port.javaDoc != "")
 $port.javaDoc
 #end
-     * 
+     *
      * @param features
      *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
      * @return
diff --git a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenOptionTest.java b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenOptionTest.java
index c288541..d079d93 100644
--- a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenOptionTest.java
+++ b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenOptionTest.java
@@ -294,6 +294,92 @@ public class CodeGenOptionTest extends AbstractCodeGenTest {
         return count;
     }
 
+    /**
+     * Tests that, when 'suppress-generated-date' option is set, javadocs
+     * won't contain the current date in all the generated java classes.
+     */
+    @Test
+    public void testSuppressGeneratedDatePresentOption() throws Exception {
+        env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
+        env.put(ToolConstants.CFG_SUPPRESS_GENERATED_DATE, "true");
+        env.put(ToolConstants.CFG_COMPILE, null);
+        env.put(ToolConstants.CFG_CLASSDIR, null);
+        processor.setContext(env);
+        processor.execute();
+
+        File dir = new File(output, "org");
+        assertTrue("org directory is not found", dir.exists());
+        dir = new File(dir, "apache");
+        assertTrue("apache directory is not found", dir.exists());
+        assertTrue("apache directory is not found", dir.exists());
+        dir = new File(dir, "cxf");
+        assertTrue("cxf directory is not found", dir.exists());
+        dir = new File(dir, "w2j");
+        assertTrue("w2j directory is not found", dir.exists());
+        dir = new File(dir, "hello_world_soap_http");
+        assertTrue("hello_world_soap_http directory is not found", dir.exists());
+        File types = new File(dir, "types");
+        assertTrue("types directory is not found", dir.exists());
+
+        String str = IOUtils.readStringFromStream(new FileInputStream(new File(dir, "Greeter.java")));
+        assertFalse(currentDatePresent(str));
+        str = IOUtils.readStringFromStream(new FileInputStream(new File(types, "SayHi.java")));
+        assertFalse(currentDatePresent(str));
+        str = IOUtils.readStringFromStream(new FileInputStream(new File(types, "SayHiResponse.java")));
+        assertFalse(currentDatePresent(str));
+    }
+
+    /**
+     * Tests that, when 'suppress-generated-date' option is not present, javadocs
+     * will contain the current date in all the generated java classes.
+     */
+    @Test
+    public void testSuppressGeneratedDateNotPresentOption() throws Exception {
+        env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
+        env.put(ToolConstants.CFG_MARK_GENERATED, "true");
+        env.put(ToolConstants.CFG_COMPILE, null);
+        env.put(ToolConstants.CFG_CLASSDIR, null);
+        processor.setContext(env);
+        processor.execute();
+
+        File dir = new File(output, "org");
+        assertTrue("org directory is not found", dir.exists());
+        dir = new File(dir, "apache");
+        assertTrue("apache directory is not found", dir.exists());
+        dir = new File(dir, "cxf");
+        assertTrue("cxf directory is not found", dir.exists());
+        dir = new File(dir, "w2j");
+        assertTrue("w2j directory is not found", dir.exists());
+        dir = new File(dir, "hello_world_soap_http");
+        assertTrue("hello_world_soap_http directory is not found", dir.exists());
+        File types = new File(dir, "types");
+        assertTrue("types directory is not found", dir.exists());
+
+        String str = IOUtils.readStringFromStream(new FileInputStream(new File(dir, "Greeter.java")));
+        assertTrue(currentDatePresent(str));
+        str = IOUtils.readStringFromStream(new FileInputStream(new File(types, "SayHi.java")));
+        assertFalse(currentDatePresent(str));
+        str = IOUtils.readStringFromStream(new FileInputStream(new File(types, "SayHiResponse.java")));
+        assertFalse(currentDatePresent(str));
+    }
+
+    private boolean currentDatePresent(String str) {
+        String[] lines = str.split(System.getProperty("line.separator"));
+        boolean expectDate = false;
+
+        for (String line : lines) {
+            if (expectDate) {
+                if (line.contains("Generated source version")) {
+                    break;
+                } else {
+                    return true;
+                }
+            }
+            expectDate = line.contains("This class was generated by");
+        }
+
+        return false;
+    }
 
     @Test
     public void testResourceURLForWsdlLocation() throws Exception {

-- 
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <co...@cxf.apache.org>'].