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 2012/11/06 22:08:16 UTC

svn commit: r1406332 - in /cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin: AbstractCodegenMoho.java wsdl2java/WSDL2JavaMojo.java wsdl2js/WSDL2JavaScriptMojo.java

Author: dkulp
Date: Tue Nov  6 21:08:15 2012
New Revision: 1406332

URL: http://svn.apache.org/viewvc?rev=1406332&view=rev
Log:
Record the options used for the wsdl into the .DONE file and compare them on next run to allow changes to the pom to trigger regeneration of code.

Modified:
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractCodegenMoho.java
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WSDL2JavaMojo.java
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractCodegenMoho.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractCodegenMoho.java?rev=1406332&r1=1406331&r2=1406332&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractCodegenMoho.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractCodegenMoho.java Tue Nov  6 21:08:15 2012
@@ -434,7 +434,7 @@ public abstract class AbstractCodegenMoh
             URI wsdlURI = getWsdlURI(wsdlOption, basedir);
             File doneFile = getDoneFile(basedir, wsdlURI, getMarkerSuffix());
             try {
-                doneFile.createNewFile();
+                createMarkerFile(wsdlOption, doneFile, wsdlURI);
             } catch (Throwable e) {
                 getLog().warn("Could not create marker file " + doneFile.getAbsolutePath());
                 getLog().debug(e);
@@ -570,6 +570,9 @@ public abstract class AbstractCodegenMoh
      */
     protected abstract boolean shouldRun(GenericWsdlOption wsdlOption, File doneFile, URI wsdlURI);
 
+    protected void createMarkerFile(GenericWsdlOption wsdlOption, File doneFile, URI wsdlURI) throws IOException {
+        doneFile.createNewFile();
+    }
    
     private String[] createForkOnceArgs(List<List<String>> wargs) throws MojoExecutionException {
         try {

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WSDL2JavaMojo.java?rev=1406332&r1=1406331&r2=1406332&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WSDL2JavaMojo.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2java/WSDL2JavaMojo.java Tue Nov  6 21:08:15 2012
@@ -19,7 +19,11 @@
 
 package org.apache.cxf.maven_plugin.wsdl2java;
 
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URI;
@@ -238,8 +242,41 @@ public class WSDL2JavaMojo extends Abstr
                 }
             }
         }
+        if (!doWork) {
+            URI basedir = project.getBasedir().toURI();
+            String options = wsdlOption.generateCommandLine(null, basedir, wsdlURI, false).toString();
+            DataInputStream reader = null;
+            try {
+                reader = new DataInputStream(new FileInputStream(doneFile));
+                String s = reader.readUTF();
+                if (!options.equals(s)) {
+                    doWork = true;
+                }
+            } catch (Exception ex) {
+                //ignore
+            } finally {
+                if (reader != null) {
+                    try {
+                        reader.close();
+                    } catch (IOException e) {
+                        //ignore
+                    }
+                }
+            }
+        }
         return doWork;
     }
+    
+    protected void createMarkerFile(GenericWsdlOption wsdlOption, File doneFile, URI wsdlURI) throws IOException {
+        doneFile.createNewFile();
+        URI basedir = project.getBasedir().toURI();
+        String options = wsdlOption.generateCommandLine(null, basedir, wsdlURI, false).toString();
+        DataOutputStream writer = new DataOutputStream(new FileOutputStream(doneFile));
+        writer.writeUTF(options);
+        writer.flush();
+        writer.close();
+    }
+    
 
     /**
      * Finds the timestamp for a given URI. Calls {@link #getBaseFileURI(URI)} prior to the timestamp
@@ -407,7 +444,7 @@ public class WSDL2JavaMojo extends Abstr
 
 
         try {
-            doneFile.createNewFile();
+            createMarkerFile(wsdlOption, doneFile, wsdlURI);
             buildContext.refresh(doneFile);
         } catch (Throwable e) {
             getLog().warn("Could not create marker file " + doneFile.getAbsolutePath());

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java?rev=1406332&r1=1406331&r2=1406332&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java Tue Nov  6 21:08:15 2012
@@ -136,7 +136,7 @@ public class WSDL2JavaScriptMojo extends
         }
 
         try {
-            doneFile.createNewFile();
+            createMarkerFile(wsdlOption, doneFile, wsdlURI);
         } catch (Throwable e) {
             getLog().warn("Could not create marker file " + doneFile.getAbsolutePath());
             getLog().debug(e);