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/02/28 18:04:57 UTC
svn commit: r512844 - in /maven/components/trunk/maven-embedder/src:
main/java/org/apache/maven/embedder/ test/java/org/apache/maven/embedder/
Author: jvanzyl
Date: Wed Feb 28 09:04:57 2007
New Revision: 512844
URL: http://svn.apache.org/viewvc?view=rev&rev=512844
Log:
MNG-2330 adding a little harness for running projects easily and testing with eclipse:eclipse
Added:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java (with props)
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java (with props)
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?view=diff&rev=512844&r1=512843&r2=512844
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Feb 28 09:04:57 2007
@@ -96,6 +96,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Arrays;
/**
* Class intended to be used by clients who wish to embed Maven into their applications
Added: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java?view=auto&rev=512844
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java (added)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java Wed Feb 28 09:04:57 2007
@@ -0,0 +1,110 @@
+package org.apache.maven.embedder;
+
+import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.util.List;
+import java.util.Iterator;
+import java.util.Arrays;
+import java.io.File;
+
+public abstract class AbstractMavenEmbedderTestCase
+ extends PlexusTestCase
+{
+ protected MavenEmbedder maven;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+
+ Configuration configuration = new DefaultConfiguration()
+ .setClassLoader( classLoader )
+ .setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() );
+
+ maven = new MavenEmbedder( configuration );
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ maven.stop();
+ }
+
+ protected MavenExecutionRequest request( File basedir,
+ List goals )
+ {
+ return new DefaultMavenExecutionRequest()
+ .setBaseDirectory( basedir )
+ .setGoals( goals );
+ }
+
+ protected File runWithProject( String goal )
+ throws Exception
+ {
+ return runWithProject( new String[]{goal} );
+ }
+
+ protected File runWithProject( String[] goals )
+ throws Exception
+ {
+ return runWithProject( Arrays.asList( goals ) );
+ }
+
+ protected File runWithProject( List goals )
+ throws Exception
+ {
+ /*
+ if ( request.getBaseDirectory() == null || !new File( request.getBaseDirectory() ).exists() )
+ {
+ throw new IllegalStateException( "You must specify a valid base directory in your execution request for this test." );
+ }
+ */
+
+ File testDirectory = new File( getBasedir(), "src/test/embedder-test-project" );
+
+ File targetDirectory = new File( getBasedir(), "target/" + getId() );
+
+ FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+
+ MavenExecutionRequest request = request( targetDirectory, goals );
+
+ MavenExecutionResult result = maven.execute( request );
+
+ assertNoExceptions( result );
+
+ return targetDirectory;
+ }
+
+ protected abstract String getId();
+
+ protected void assertNoExceptions( MavenExecutionResult result )
+ {
+ if ( !result.hasExceptions() )
+ {
+ return;
+ }
+
+ for ( Iterator i = result.getExceptions().iterator(); i.hasNext(); )
+ {
+ Exception exception = (Exception) i.next();
+
+ exception.printStackTrace( System.err );
+ }
+
+ fail( "Encountered Exceptions in MavenExecutionResult during " + getName() );
+ }
+
+ protected void assertFileExists( File file )
+ {
+ if ( !file.exists() )
+ {
+ fail( "The specified file '" + file + "' does not exist." );
+ }
+ }
+}
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractMavenEmbedderTestCase.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java?view=auto&rev=512844
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java (added)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java Wed Feb 28 09:04:57 2007
@@ -0,0 +1,23 @@
+package org.apache.maven.embedder;
+
+import java.io.File;
+
+/** @author Jason van Zyl */
+public class MavenEmbedderUsingEclipsePluginTest
+ extends AbstractMavenEmbedderTestCase
+{
+ protected String getId()
+ {
+ return "eclipse-from-embedder";
+ }
+
+ public void testRunningEclipsePlugin()
+ throws Exception
+ {
+ File basedir = runWithProject( "eclipse:eclipse" );
+
+ assertFileExists( new File( basedir, ".classpath" ) );
+
+ assertFileExists( new File( basedir, ".project" ) );
+ }
+}
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderUsingEclipsePluginTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision