You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/04/26 00:58:18 UTC
svn commit: r651733 - in /maven/plugins/trunk/maven-invoker-plugin/src:
main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java
Author: bentmann
Date: Fri Apr 25 15:58:14 2008
New Revision: 651733
URL: http://svn.apache.org/viewvc?rev=651733&view=rev
Log:
[MINVOKER-6] Add current's project test classpath to the Bean Shell interpreter classpath
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java?rev=651733&r1=651732&r2=651733&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java Fri Apr 25 15:58:14 2008
@@ -73,6 +73,7 @@
* outputting the results to the command line.
*
* @goal run
+ * @requiresDependencyResolution test
* @since 1.0
*
* @author <a href="mailto:kenney@apache.org">Kenney Westerhof</a>
@@ -366,8 +367,16 @@
* @since 1.2
*/
private Settings settings;
-
-
+
+ /**
+ * A flag whether the test class path of the project under test should be added to the class path of the BeanShell
+ * scripts.
+ *
+ * @parameter expression="${invoker.addTestClassPath}" default-value="false"
+ * @since 1.2
+ */
+ private boolean addTestClassPath;
+
public void execute()
throws MojoExecutionException, MojoFailureException
@@ -912,6 +921,25 @@
if ( script.exists() )
{
final Interpreter engine = new Interpreter();
+
+ if ( addTestClassPath )
+ {
+ getLog().debug( "Adding test class path to BeanShell interpreter:" );
+ try
+ {
+ List testClassPath = project.getTestClasspathElements();
+ for ( Iterator it = testClassPath.iterator(); it.hasNext(); )
+ {
+ String path = (String) it.next();
+ getLog().debug( " " + path );
+ engine.getClassManager().addClassPath( new File( path ).toURI().toURL() );
+ }
+ }
+ catch ( Exception e )
+ {
+ getLog().error( "Failed to add test class path to BeanShell interpreter", e );
+ }
+ }
PrintStream origOut = System.out;
PrintStream origErr = System.err;
Modified: maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java?rev=651733&r1=651732&r2=651733&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java Fri Apr 25 15:58:14 2008
@@ -22,9 +22,11 @@
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.invoker.Invoker;
import org.codehaus.plexus.util.FileUtils;
@@ -72,6 +74,9 @@
FileUtils.deleteDirectory( cloneProjectsTo );
}
//cloneProjectsTo.getParent()
+ MavenProjectStub project = new MavenProjectStub();
+ project.setTestClasspathElements( Collections.EMPTY_LIST );
+ setVariableValueToObject( invokerMojo, "project", project );
setVariableValueToObject( invokerMojo, "cloneProjectsTo", cloneProjectsTo );
setVariableValueToObject( invokerMojo, "postBuildHookScript", "verify.bsh" );
setVariableValueToObject( invokerMojo, "settings", new Settings() );