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