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/01 05:08:07 UTC

svn commit: r491529 - in /maven/components/trunk: maven-cli/src/main/java/org/apache/maven/cli/ maven-core/src/main/java/org/apache/maven/execution/ maven-embedder/src/main/java/org/apache/maven/embedder/ maven-embedder/src/test/embedder-test-project/ ...

Author: jvanzyl
Date: Sun Dec 31 20:08:06 2006
New Revision: 491529

URL: http://svn.apache.org/viewvc?view=rev&rev=491529
Log:
MNG-1385 You can now activate a profile using the embedder.


Modified:
    maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
    maven/components/trunk/maven-embedder/src/test/embedder-test-project/pom.xml
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java

Modified: maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java?view=diff&rev=491529&r1=491528&r2=491529
==============================================================================
--- maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java Sun Dec 31 20:08:06 2006
@@ -293,11 +293,6 @@
                 alternatePomFile = commandLine.getOptionValue( CLIManager.ALTERNATE_POM_FILE );
             }
 
-            // We have a general problem with plexus components that are singletons in that they use
-            // the same logger for their lifespan. This is not good in that many requests may be fired
-            // off and the singleton plexus component will continue to funnel their output to the same
-            // logger. We need to be able to swap the logger.
-
             int loggingLevel;
 
             if ( debug )

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?view=diff&rev=491529&r1=491528&r2=491529
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Sun Dec 31 20:08:06 2006
@@ -163,6 +163,7 @@
     MavenExecutionRequest addActiveProfile( String profile );
     MavenExecutionRequest addActiveProfiles( List profiles );
     List getActiveProfiles();
+    //MAPI: do we really need to do this? deactivate active profile? seems confusing.
     MavenExecutionRequest addInactiveProfile( String profile );
     MavenExecutionRequest addInactiveProfiles( List profiles );
     List getInactiveProfiles();

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=491529&r1=491528&r2=491529
==============================================================================
--- 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 Sun Dec 31 20:08:06 2006
@@ -447,7 +447,9 @@
 
         if ( logger != null )
         {
-            container.setLoggerManager( new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) ) );
+            MavenEmbedderLoggerManager loggerManager = new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
+
+            container.setLoggerManager( loggerManager );
         }
 
         try

Modified: maven/components/trunk/maven-embedder/src/test/embedder-test-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/embedder-test-project/pom.xml?view=diff&rev=491529&r1=491528&r2=491529
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/embedder-test-project/pom.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/embedder-test-project/pom.xml Sun Dec 31 20:08:06 2006
@@ -15,4 +15,14 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
+  <profiles>
+    <profile>
+      <id>embedderProfile</id>
+      <properties>
+        <embedderProfile>true</embedderProfile>
+        <name>jason</name>
+        <occupation>somnambulance</occupation>
+      </properties>
+    </profile>
+  </profiles>
 </project>

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?view=diff&rev=491529&r1=491528&r2=491529
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Sun Dec 31 20:08:06 2006
@@ -52,7 +52,7 @@
     // Goal/Phase execution tests
     // ----------------------------------------------------------------------
 
-    public void testSimplePhaseExecutionUsingABaseDirectory()
+    public void testExecutionUsingABaseDirectory()
         throws Exception
     {
         File testDirectory = new File( basedir, "src/test/embedder-test-project" );
@@ -76,7 +76,7 @@
         assertTrue( jar.exists() );
     }
 
-    public void testSimplePhaseExecutionUsingAPomFile()
+    public void testExecutionUsingAPomFile()
         throws Exception
     {
         File testDirectory = new File( basedir, "src/test/embedder-test-project" );
@@ -99,6 +99,50 @@
 
         assertTrue( jar.exists() );
     }
+
+    public void testExecutionUsingAProfileWhichSetsAProperty()
+        throws Exception
+    {
+        File testDirectory = new File( basedir, "src/test/embedder-test-project" );
+
+        File targetDirectory = new File( basedir, "target/embedder-test-project2" );
+
+        FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+
+        // Check with profile not active
+
+        MavenExecutionRequest requestWithoutProfile = new DefaultMavenExecutionRequest()
+            .setPomFile( new File( targetDirectory, "pom.xml" ).getAbsolutePath() )
+            .setGoals( Arrays.asList( new String[]{ "validate" } ) );
+
+        MavenExecutionResult r0 = maven.execute( requestWithoutProfile );
+
+        MavenProject p0 = r0.getMavenProject();
+
+        assertNull( p0.getProperties().getProperty( "embedderProfile" ) );
+
+        assertNull( p0.getProperties().getProperty( "name" ) );
+
+        assertNull( p0.getProperties().getProperty( "occupation" ) );
+
+        // Check with profile activated
+
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+            .setPomFile( new File( targetDirectory, "pom.xml" ).getAbsolutePath() )
+            .setGoals( Arrays.asList( new String[]{ "validate" } ) )
+            .addActiveProfile( "embedderProfile" );
+
+        MavenExecutionResult r1 = maven.execute( request );
+
+        MavenProject p1 = r1.getMavenProject();
+
+        assertEquals( "true", p1.getProperties().getProperty( "embedderProfile" ) );
+
+        assertEquals( "jason", p1.getProperties().getProperty( "name" ) );
+
+        assertEquals( "somnambulance", p1.getProperties().getProperty( "occupation" ) );
+    }
+
 
     // ----------------------------------------------------------------------
     // Test mock plugin metadata