diff --git a/retrolambda-maven-plugin/pom.xml b/retrolambda-maven-plugin/pom.xml
index 951a593c..20f39a86 100644
--- a/retrolambda-maven-plugin/pom.xml
+++ b/retrolambda-maven-plugin/pom.xml
@@ -13,7 +13,7 @@
maven-plugin
- 3.0
+ 3.3.9
@@ -29,10 +29,17 @@
${project.version}
+
+ org.apache.maven
+ maven-core
+ 3.3.9
+ provided
+
org.apache.maven
maven-plugin-api
- 3.0
+ 3.3.9
+ provided
org.apache.maven.plugin-tools
@@ -50,7 +57,7 @@
org.twdata.maven
mojo-executor
- 2.2.0
+ 2.4.1-m2
@@ -70,6 +77,7 @@
maven-toolchains-plugin
+ 3.1.0
diff --git a/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessClassesMojo.java b/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessClassesMojo.java
index 122decd6..04690dae 100644
--- a/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessClassesMojo.java
+++ b/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessClassesMojo.java
@@ -222,21 +222,37 @@ private void retrieveRetrolambdaJar(String version) throws MojoExecutionExceptio
}
String getJavaCommand() {
- String javaCommand = getJavaCommand(new File(System.getProperty("java.home")));
-
- Toolchain tc = toolchainManager.getToolchainFromBuildContext("jdk", session);
- if (tc != null) {
- getLog().info("Toolchain in retrolambda-maven-plugin: " + tc);
- javaCommand = tc.findTool("java");
- }
-
- if (java8home != null) {
- if (tc != null) {
- getLog().warn("Toolchains are ignored, 'java8home' parameter is set to " + java8home);
- }
- javaCommand = getJavaCommand(java8home);
- }
- return javaCommand;
+ String javaCommand = null;
+
+ List tcCandidates = toolchainManager.getToolchains(session, "jdk", Collections
+ .singletonMap("version", "1.8"));
+ for (Toolchain tc : tcCandidates) {
+ String cmd = tc.findTool("java");
+ if (cmd != null) {
+ getLog().info("Toolchain in retrolambda-maven-plugin: " + tc);
+ javaCommand = cmd;
+ break;
+ }
+ }
+
+ Toolchain tc = toolchainManager.getToolchainFromBuildContext("jdk", session);
+ if (javaCommand == null && tc != null) {
+ getLog().info("Toolchain in retrolambda-maven-plugin: " + tc);
+ javaCommand = tc.findTool("java");
+ }
+
+ if (java8home != null) {
+ if (tc != null) {
+ getLog().warn("Toolchains are ignored, 'java8home' parameter is set to " + java8home);
+ }
+ javaCommand = getJavaCommand(java8home);
+ }
+
+ if (javaCommand == null) {
+ javaCommand = getJavaCommand(new File(System.getProperty("java.home")));
+ }
+
+ return javaCommand;
}
private static String getJavaCommand(File javaHome) {
diff --git a/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessTestClassesMojo.java b/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessTestClassesMojo.java
index 0060a714..00d9215f 100644
--- a/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessTestClassesMojo.java
+++ b/retrolambda-maven-plugin/src/main/java/net/orfjackal/retrolambda/maven/ProcessTestClassesMojo.java
@@ -4,12 +4,15 @@
package net.orfjackal.retrolambda.maven;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.plugins.annotations.*;
-
import java.io.File;
import java.util.List;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
/**
* Processes test classes compiled with Java 8 so that they will be compatible with
* Java 5, 6 or 7 runtime.
diff --git a/retrolambda-maven-plugin/src/test/java/net/orfjackal/retrolambda/maven/ProcessClassesMojoTest.java b/retrolambda-maven-plugin/src/test/java/net/orfjackal/retrolambda/maven/ProcessClassesMojoTest.java
index cfdbbcb7..023df0b9 100644
--- a/retrolambda-maven-plugin/src/test/java/net/orfjackal/retrolambda/maven/ProcessClassesMojoTest.java
+++ b/retrolambda-maven-plugin/src/test/java/net/orfjackal/retrolambda/maven/ProcessClassesMojoTest.java
@@ -76,9 +76,20 @@ public Toolchain getToolchainFromBuildContext(String type, MavenSession context)
return toolChainsByType.get(type);
}
- public void setJdkToolChain(JavaToolChain toolChain) {
+ public void setJdkToolChain(JavaToolchain toolChain) {
toolChainsByType.put("jdk", toolChain);
}
+
+ @Override
+ public List getToolchains(MavenSession session, String type,
+ Map requirements) {
+ Toolchain tc = toolChainsByType.get("jdk");
+ if(tc == null) {
+ return Collections.emptyList();
+ } else {
+ return Collections.singletonList(tc);
+ }
+ }
}
private static class FakeJavaToolChain extends DefaultJavaToolChain {