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() );
- }
-
}