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");