You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/01/17 17:24:38 UTC

maven git commit: [MNG-5754] Toolchains should be read during initialization DefaultToolchainManagerPrivate now uses toolchains from MavenExecutionRequest

Repository: maven
Updated Branches:
  refs/heads/master 4f05b59de -> b6ae8ef8a


[MNG-5754] Toolchains should be read during initialization
DefaultToolchainManagerPrivate now uses toolchains from MavenExecutionRequest


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/b6ae8ef8
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/b6ae8ef8
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/b6ae8ef8

Branch: refs/heads/master
Commit: b6ae8ef8abfa16f03dcf3d0bf9697be64da138fe
Parents: 4f05b59
Author: Robert Scholte <rf...@codehaus.org>
Authored: Sat Jan 17 17:24:00 2015 +0100
Committer: Robert Scholte <rf...@codehaus.org>
Committed: Sat Jan 17 17:24:00 2015 +0100

----------------------------------------------------------------------
 .../DefaultToolchainManagerPrivate.java         | 44 ++--------
 .../DefaultToolchainManagerPrivateTest.java     | 87 +++-----------------
 2 files changed, 19 insertions(+), 112 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/b6ae8ef8/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
index aeb8294..cac8e29 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
@@ -19,20 +19,13 @@ package org.apache.maven.toolchain;
  * under the License.
  */
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.building.FileSource;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.toolchain.building.DefaultToolchainsBuildingRequest;
-import org.apache.maven.toolchain.building.ToolchainsBuildingException;
-import org.apache.maven.toolchain.building.ToolchainsBuildingResult;
-import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.ToolchainModel;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * @author mkleint
@@ -44,38 +37,10 @@ public class DefaultToolchainManagerPrivate
     implements ToolchainManagerPrivate
 {
 
-    @Requirement
-    private org.apache.maven.toolchain.building.ToolchainsBuilder toolchainsBuilder;
-
+    @Override
     public ToolchainPrivate[] getToolchainsForType( String type, MavenSession context )
         throws MisconfiguredToolchainException
     {
-        DefaultToolchainsBuildingRequest buildRequest = new DefaultToolchainsBuildingRequest();
-        
-        File globalToolchainsFile = context.getRequest().getGlobalToolchainsFile();
-        if ( globalToolchainsFile != null && globalToolchainsFile.isFile() )
-        {
-            buildRequest.setGlobalToolchainsSource( new FileSource( globalToolchainsFile ) );
-        }
-
-        File userToolchainsFile = context.getRequest().getUserToolchainsFile();
-        if ( userToolchainsFile != null && userToolchainsFile.isFile() )
-        {
-            buildRequest.setUserToolchainsSource( new FileSource( userToolchainsFile ) );
-        }
-        
-        ToolchainsBuildingResult buildResult;
-        try
-        {
-            buildResult = toolchainsBuilder.build( buildRequest );
-        }
-        catch ( ToolchainsBuildingException e )
-        {
-            throw new MisconfiguredToolchainException( e.getMessage(), e );
-        }
-        
-        PersistedToolchains effectiveToolchains = buildResult.getEffectiveToolchains();
-
         List<ToolchainPrivate> toRet = new ArrayList<ToolchainPrivate>();
 
         ToolchainFactory fact = factories.get( type );
@@ -86,9 +51,11 @@ public class DefaultToolchainManagerPrivate
         }
         else
         {
-            for ( ToolchainModel toolchainModel : effectiveToolchains.getToolchains() )
+            List<ToolchainModel> availableToolchains = context.getRequest().getToolchains().get( type );
+
+            if ( availableToolchains != null )
             {
-                if ( type.equals( toolchainModel.getType() ) )
+                for ( ToolchainModel toolchainModel : availableToolchains )
                 {
                     toRet.add( fact.createToolchain( toolchainModel ) );
                 }
@@ -105,6 +72,7 @@ public class DefaultToolchainManagerPrivate
         return toRet.toArray( new ToolchainPrivate[toRet.size()] );
     }
 
+    @Override
     public void storeToolchainToBuildContext( ToolchainPrivate toolchain, MavenSession session )
     {
         Map<String, Object> context = retrieveContext( session );

http://git-wip-us.apache.org/repos/asf/maven/blob/b6ae8ef8/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
index 090eefb..28a13bb 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
@@ -20,31 +20,25 @@ package org.apache.maven.toolchain;
  */
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.toolchain.building.DefaultToolchainsBuildingResult;
-import org.apache.maven.toolchain.building.ToolchainsBuildingException;
-import org.apache.maven.toolchain.building.ToolchainsBuildingRequest;
-import org.apache.maven.toolchain.building.ToolchainsBuildingResult;
-import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.ToolchainModel;
 import org.codehaus.plexus.logging.Logger;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.ArgumentCaptor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -53,9 +47,6 @@ public class DefaultToolchainManagerPrivateTest
 {
     // Mocks to inject into toolchainManager
     @Mock
-    private org.apache.maven.toolchain.building.ToolchainsBuilder toolchainsBuilder;
-
-    @Mock
     private Logger logger;
 
     @InjectMocks
@@ -88,8 +79,6 @@ public class DefaultToolchainManagerPrivateTest
         MavenExecutionRequest req = new DefaultMavenExecutionRequest();
         when( session.getRequest() ).thenReturn( req );
 
-        ToolchainsBuildingResult toolchainsResult = new DefaultToolchainsBuildingResult( new PersistedToolchains(), null );
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenReturn( toolchainsResult );
         ToolchainPrivate basicToolchain = mock( ToolchainPrivate.class );
         when( toolchainFactory_basicType.createDefaultToolchain() ).thenReturn( basicToolchain );
         ToolchainPrivate rareToolchain = mock( ToolchainPrivate.class );
@@ -112,8 +101,6 @@ public class DefaultToolchainManagerPrivateTest
         MavenExecutionRequest req = new DefaultMavenExecutionRequest();
         when( session.getRequest() ).thenReturn( req );
 
-        ToolchainsBuildingResult toolchainsResult = new DefaultToolchainsBuildingResult( new PersistedToolchains(), null );
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenReturn( toolchainsResult );
         ToolchainPrivate basicToolchain = mock( ToolchainPrivate.class );
         when( toolchainFactory_basicType.createDefaultToolchain() ).thenReturn( basicToolchain );
         ToolchainPrivate rareToolchain = mock( ToolchainPrivate.class );
@@ -135,19 +122,21 @@ public class DefaultToolchainManagerPrivateTest
         MavenSession session = mock( MavenSession.class );
         MavenExecutionRequest req = new DefaultMavenExecutionRequest();
         when( session.getRequest() ).thenReturn( req );
+        Map<String, List<ToolchainModel>> groupedToolchains = new HashMap<String, List<ToolchainModel>>();
+        req.setToolchains( groupedToolchains );
 
-        PersistedToolchains effectiveToolchains = new PersistedToolchains();
+        List<ToolchainModel> basicToolchains = new ArrayList<ToolchainModel>();
         ToolchainModel basicToolchainModel = new ToolchainModel();
         basicToolchainModel.setType( "basic" );
-        effectiveToolchains.addToolchain( basicToolchainModel );
-        effectiveToolchains.addToolchain( basicToolchainModel );
+        basicToolchains.add( basicToolchainModel );
+        basicToolchains.add( basicToolchainModel );
+        groupedToolchains.put( "basic", basicToolchains );
 
+        List<ToolchainModel> rareToolchains = new ArrayList<ToolchainModel>();
         ToolchainModel rareToolchainModel = new ToolchainModel();
         rareToolchainModel.setType( "rare" );
-        effectiveToolchains.addToolchain( rareToolchainModel );
-        
-        ToolchainsBuildingResult toolchainsResult = new DefaultToolchainsBuildingResult( effectiveToolchains, null );
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenReturn( toolchainsResult );
+        rareToolchains.add( rareToolchainModel );
+        groupedToolchains.put( "rare", rareToolchains );
 
         // execute
         ToolchainPrivate[] toolchains = toolchainManager.getToolchainsForType( "basic", session );
@@ -166,62 +155,12 @@ public class DefaultToolchainManagerPrivateTest
         MavenSession session = mock( MavenSession.class );
         MavenExecutionRequest req = new DefaultMavenExecutionRequest();
         when( session.getRequest() ).thenReturn( req );
+        when(toolchainFactory_basicType.createDefaultToolchain()).thenThrow( MisconfiguredToolchainException.class );
 
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenThrow( ToolchainsBuildingException.class );
-        
         // execute
         toolchainManager.getToolchainsForType( "basic", session );
         
         // verify
         fail( "Should exit with a MisconfiguredToolchainException" );
     }
-    
-    @Test
-    public void testGlobalToolchainsFile()
-        throws Exception
-    {
-        // prepare
-        MavenSession session = mock( MavenSession.class );
-        MavenExecutionRequest req = new DefaultMavenExecutionRequest();
-        File globalFile = new File( "target/test-classes/org/apache/maven/toolchain/global.xml" );
-        req.setGlobalToolchainsFile( globalFile );
-        when( session.getRequest() ).thenReturn( req );
-
-        ToolchainsBuildingResult toolchainsResult = new DefaultToolchainsBuildingResult( new PersistedToolchains(), null );
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenReturn( toolchainsResult );
-        
-        // execute
-        toolchainManager.getToolchainsForType( "basic", session );
-
-        // verify
-        ArgumentCaptor<ToolchainsBuildingRequest> argument = ArgumentCaptor.forClass(ToolchainsBuildingRequest.class);
-        verify( toolchainsBuilder ).build( argument.capture() );
-        assertNull( argument.getValue().getUserToolchainsSource() );
-        assertEquals( globalFile.getAbsolutePath(), argument.getValue().getGlobalToolchainsSource().getLocation() );
-    }
-
-    @Test
-    public void testUserToolchainsFile()
-        throws Exception
-    {
-        // prepare
-        MavenSession session = mock( MavenSession.class );
-        MavenExecutionRequest req = new DefaultMavenExecutionRequest();
-        File userFile = new File( "target/test-classes/org/apache/maven/toolchain/user.xml" );
-        req.setUserToolchainsFile( userFile );
-        when( session.getRequest() ).thenReturn( req );
-
-        ToolchainsBuildingResult toolchainsResult = new DefaultToolchainsBuildingResult( new PersistedToolchains(), null );
-        when( toolchainsBuilder.build( isA( ToolchainsBuildingRequest.class ) ) ).thenReturn( toolchainsResult );
-        
-        // execute
-        toolchainManager.getToolchainsForType( "basic", session );
-
-        // verify
-        ArgumentCaptor<ToolchainsBuildingRequest> argument = ArgumentCaptor.forClass(ToolchainsBuildingRequest.class);
-        verify( toolchainsBuilder ).build( argument.capture() );
-        assertNull( argument.getValue().getGlobalToolchainsSource() );
-        assertEquals( userFile.getAbsolutePath(), argument.getValue().getUserToolchainsSource().getLocation() );
-    }
-
 }