You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/01/10 19:11:48 UTC

svn commit: r494912 - in /maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration: pom.xml src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java

Author: jvanzyl
Date: Wed Jan 10 10:11:47 2007
New Revision: 494912

URL: http://svn.apache.org/viewvc?view=rev&rev=494912
Log:
o this should be more comprehensive but is enough to test MNG-2201

Modified:
    maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/pom.xml
    maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java

Modified: maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/pom.xml
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/pom.xml?view=diff&rev=494912&r1=494911&r2=494912
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/pom.xml (original)
+++ maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/pom.xml Wed Jan 10 10:11:47 2007
@@ -40,6 +40,11 @@
       <version>2.0</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
       <version>1.4</version>

Modified: maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java?view=diff&rev=494912&r1=494911&r2=494912
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java (original)
+++ maven/core-integration-testing/trunk/core-integration-testing-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PluginConfigurationEmitter.java Wed Jan 10 10:11:47 2007
@@ -18,17 +18,27 @@
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomWriter;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.Writer;
+import java.io.OutputStream;
+import java.io.FileOutputStream;
+import java.util.Properties;
 
 //MAPI: This is a canidate for the internal state dump (ISD). This is probably similar to what is in the help plugin.
 
+// Compare:
+//   MavenProject
+//   PluginExpressionEvaluator
+//   Raw DOM
+//
+// Currently we don't have the means to easily test this inside the core. So this will be a model to drive
+// making the core more testable.
+
 /**
  * @goal config
  * @phase generate-resources
@@ -37,26 +47,99 @@
 public class PluginConfigurationEmitter
     extends AbstractMojo
 {
-    /** @parameter expression="${dom}" */
+    /**
+     * The MavenProject we will use for comparision.
+     *
+     * @parameter expression="${project}"
+     */
+    private MavenProject project;
+
+    // How to enumerate all the possible expressions that can be used.
+
+    /**
+     * This is the raw interpolated DOM will be used for comparison.
+     *
+     * @parameter expression="${dom}"
+     */
     private PlexusConfiguration dom;
 
-    /** @parameter expression="${outputDirectory}" default-value="${project.build.directory}" */
-    private File outputDirectory;
+    /** @parameter expression="${directory}" default-value="${project.build.directory}" */
+    private File directory;
 
-    /** @parameter expression="${fileName}" default-value="plugin-configuration.txt" */
+    /**
+     * Where to place the serialized version of the DOM for analysis.
+     *
+     * @parameter expression="${fileName}" default-value="interpolated-plugin-configuration.xml"
+     */
     private String fileName;
 
     public void execute()
         throws MojoExecutionException
     {
+        if ( !directory.exists() )
+        {
+            directory.mkdirs();
+        }
+
+        emitMavenProjectValues();
+
+        emitExpressionEvaluatorValues();
+
+        emitRawDomValues();
+    }
+
+    private void emitMavenProjectValues()
+        throws MojoExecutionException
+    {
         try
         {
-            File file = new File( outputDirectory, fileName );
+            Properties p = new Properties();
 
-            if ( !outputDirectory.exists() )
-            {
-                outputDirectory.mkdirs();
-            }
+            p.setProperty( "project.build.directory", directory.getAbsolutePath() );
+
+            File file = new File( directory, "maven-project-output.txt" );
+
+            OutputStream os = new FileOutputStream( file );
+
+            p.store( os, "expression evaluator values" );
+
+            os.close();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Error writing out plugin configuration.", e );
+        }
+    }
+
+    private void emitExpressionEvaluatorValues()
+        throws MojoExecutionException
+    {
+        try
+        {
+            Properties p = new Properties();
+
+            p.setProperty( "project.build.directory", directory.getAbsolutePath() );
+
+            File file = new File( directory, "expression-evaluator-output.txt" );
+
+            OutputStream os = new FileOutputStream( file );
+
+            p.store( os, "expression evaluator values" );
+
+            os.close();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Error writing out plugin configuration.", e );
+        }
+    }
+
+    private void emitRawDomValues()
+        throws MojoExecutionException
+    {
+        try
+        {
+            File file = new File( directory, fileName );
 
             Writer writer = new FileWriter( file );