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 );