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 2019/06/07 08:50:29 UTC
[maven] 01/03: toolchain.xml file should support environment
variables Submitted by: Mike Mol and Martin Kanters
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-6665
in repository https://gitbox.apache.org/repos/asf/maven.git
commit e653ba6a361438e03a0441998fef1b111f731c7c
Author: Martin Kanters <Ma...@ing.com>
AuthorDate: Mon Jun 3 08:43:44 2019 +0200
toolchain.xml file should support environment variables Submitted by: Mike Mol and Martin Kanters
Used constructor injection to inject the toolchainsWriter, instead of always making a new one. Constructor injection is used, in order to be able to unit test against a real instance of the toolchainsWriter. Made it a @Named @Singleton instead of @Component to be consistent with the DefaultToolchainsReader.
---
.../maven/toolchain/building/DefaultToolchainsBuilder.java | 14 ++++++++++----
.../apache/maven/toolchain/io/DefaultToolchainsWriter.java | 6 ++++--
.../toolchain/building/DefaultToolchainsBuilderTest.java | 14 +++++++-------
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java b/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java
index f9ac801..25fc10c 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java
@@ -23,7 +23,6 @@ import org.apache.maven.building.Problem;
import org.apache.maven.building.ProblemCollector;
import org.apache.maven.building.ProblemCollectorFactory;
import org.apache.maven.building.Source;
-import org.apache.maven.toolchain.io.DefaultToolchainsWriter;
import org.apache.maven.toolchain.io.ToolchainsParseException;
import org.apache.maven.toolchain.io.ToolchainsReader;
import org.apache.maven.toolchain.io.ToolchainsWriter;
@@ -55,13 +54,20 @@ import java.util.Map;
public class DefaultToolchainsBuilder
implements ToolchainsBuilder
{
- private MavenToolchainMerger toolchainsMerger = new MavenToolchainMerger();
+ private MavenToolchainMerger toolchainsMerger;
- private ToolchainsWriter toolchainsWriter = new DefaultToolchainsWriter();
+ private ToolchainsWriter toolchainsWriter;
- @Inject
private ToolchainsReader toolchainsReader;
+ @Inject
+ public DefaultToolchainsBuilder( ToolchainsWriter toolchainsWriter, ToolchainsReader toolchainsReader )
+ {
+ this.toolchainsMerger = new MavenToolchainMerger();
+ this.toolchainsWriter = toolchainsWriter;
+ this.toolchainsReader = toolchainsReader;
+ }
+
@Override
public ToolchainsBuildingResult build( ToolchainsBuildingRequest request )
throws ToolchainsBuildingException
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java b/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java
index c3d95d8..a533766 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java
+++ b/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java
@@ -21,8 +21,9 @@ package org.apache.maven.toolchain.io;
import org.apache.maven.toolchain.model.PersistedToolchains;
import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Writer;
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
@@ -34,7 +35,8 @@ import java.util.Objects;
* @author Mike Mol
* @author Martin Kanters
*/
-@Component( role = ToolchainsWriter.class )
+@Named
+@Singleton
public class DefaultToolchainsWriter implements ToolchainsWriter
{
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java
index 4d218d2..5eed404 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java
@@ -21,7 +21,9 @@ package org.apache.maven.toolchain.building;
import org.apache.maven.building.StringSource;
import org.apache.maven.toolchain.io.DefaultToolchainsReader;
+import org.apache.maven.toolchain.io.DefaultToolchainsWriter;
import org.apache.maven.toolchain.io.ToolchainsParseException;
+import org.apache.maven.toolchain.io.ToolchainsWriter;
import org.apache.maven.toolchain.model.PersistedToolchains;
import org.apache.maven.toolchain.model.ToolchainModel;
import org.codehaus.plexus.interpolation.os.OperatingSystemUtils;
@@ -29,9 +31,7 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentMatchers;
-import org.mockito.InjectMocks;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
+import org.mockito.Mockito;
import java.io.IOException;
import java.io.InputStream;
@@ -48,16 +48,16 @@ public class DefaultToolchainsBuilderTest
{
private static final String LS = System.getProperty( "line.separator" );
- @Spy
private DefaultToolchainsReader toolchainsReader;
- @InjectMocks
- private DefaultToolchainsBuilder toolchainBuilder = new DefaultToolchainsBuilder();
+ private DefaultToolchainsBuilder toolchainBuilder;
@Before
public void onSetup()
{
- MockitoAnnotations.initMocks( this );
+ toolchainsReader = Mockito.spy( DefaultToolchainsReader.class );
+ ToolchainsWriter toolchainsWriter = new DefaultToolchainsWriter();
+ toolchainBuilder = new DefaultToolchainsBuilder( toolchainsWriter, toolchainsReader );
Map<String, String> envVarMap = new HashMap<>();
envVarMap.put("testKey", "testValue");