diff --git a/plexus-compiler-api/pom.xml b/plexus-compiler-api/pom.xml
index 03598c50..48820067 100644
--- a/plexus-compiler-api/pom.xml
+++ b/plexus-compiler-api/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-api
diff --git a/plexus-compiler-its/pom.xml b/plexus-compiler-its/pom.xml
index 9c3b9781..928a089d 100644
--- a/plexus-compiler-its/pom.xml
+++ b/plexus-compiler-its/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-its
diff --git a/plexus-compiler-its/src/main/it/MCOMPILER-346-mre b/plexus-compiler-its/src/main/it/MCOMPILER-346-mre
new file mode 160000
index 00000000..33fdb68f
--- /dev/null
+++ b/plexus-compiler-its/src/main/it/MCOMPILER-346-mre
@@ -0,0 +1 @@
+Subproject commit 33fdb68fb6ce2042db7945b873c7b57ee3f65157
diff --git a/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml b/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml
index 5beaa3d0..a4efe0c0 100644
--- a/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml
+++ b/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml
@@ -55,7 +55,7 @@
eclipse
-
+
org.codehaus.plexus
plexus-compiler-api
@pom.version@
diff --git a/plexus-compiler-manager/pom.xml b/plexus-compiler-manager/pom.xml
index 65c6c9a3..9a5c2ec0 100644
--- a/plexus-compiler-manager/pom.xml
+++ b/plexus-compiler-manager/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-manager
diff --git a/plexus-compiler-test/pom.xml b/plexus-compiler-test/pom.xml
index 4bbd1525..7d03d00e 100644
--- a/plexus-compiler-test/pom.xml
+++ b/plexus-compiler-test/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-test
diff --git a/plexus-compilers/plexus-compiler-aspectj/pom.xml b/plexus-compilers/plexus-compiler-aspectj/pom.xml
index 24c7fac9..9af23632 100644
--- a/plexus-compilers/plexus-compiler-aspectj/pom.xml
+++ b/plexus-compilers/plexus-compiler-aspectj/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-aspectj
diff --git a/plexus-compilers/plexus-compiler-csharp/pom.xml b/plexus-compilers/plexus-compiler-csharp/pom.xml
index 40fef831..d58965be 100644
--- a/plexus-compilers/plexus-compiler-csharp/pom.xml
+++ b/plexus-compilers/plexus-compiler-csharp/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-csharp
diff --git a/plexus-compilers/plexus-compiler-eclipse/pom.xml b/plexus-compilers/plexus-compiler-eclipse/pom.xml
index 3374608d..b5f5b41c 100644
--- a/plexus-compilers/plexus-compiler-eclipse/pom.xml
+++ b/plexus-compilers/plexus-compiler-eclipse/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-eclipse
diff --git a/plexus-compilers/plexus-compiler-j2objc/pom.xml b/plexus-compilers/plexus-compiler-j2objc/pom.xml
index fc4c49f3..1c805e2a 100644
--- a/plexus-compilers/plexus-compiler-j2objc/pom.xml
+++ b/plexus-compilers/plexus-compiler-j2objc/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-j2objc
diff --git a/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml b/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml
index c1fd76b4..e54d25ca 100644
--- a/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml
+++ b/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-javac-errorprone
diff --git a/plexus-compilers/plexus-compiler-javac/pom.xml b/plexus-compilers/plexus-compiler-javac/pom.xml
index 5aa5ef67..579a4b78 100644
--- a/plexus-compilers/plexus-compiler-javac/pom.xml
+++ b/plexus-compilers/plexus-compiler-javac/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compilers
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compiler-javac
diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java
index c4374eee..65e7f6cc 100644
--- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java
+++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java
@@ -3,8 +3,9 @@
import org.codehaus.plexus.compiler.CompilerConfiguration;
import org.codehaus.plexus.compiler.CompilerException;
import org.codehaus.plexus.compiler.CompilerResult;
+import org.codehaus.plexus.logging.LogEnabled;
-public interface InProcessCompiler {
+public interface InProcessCompiler extends LogEnabled {
CompilerResult compileInProcess(String[] args, final CompilerConfiguration config, String[] sourceFiles)
throws CompilerException;
diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java
index 9297d3d4..a0c54090 100644
--- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java
+++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java
@@ -70,6 +70,7 @@
import org.codehaus.plexus.compiler.CompilerOutputStyle;
import org.codehaus.plexus.compiler.CompilerResult;
import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.Os;
import org.codehaus.plexus.util.StringUtils;
@@ -106,6 +107,9 @@ public class JavacCompiler
private List> javaccClasses = new CopyOnWriteArrayList<>();
+ @Requirement
+ private InProcessCompiler inProcessCompiler;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
@@ -186,10 +190,10 @@ public CompilerResult performCompile( CompilerConfiguration config )
return result;
}
- protected InProcessCompiler inProcessCompiler()
- {
- return new org.codehaus.plexus.compiler.javac.JavaxToolsCompiler();
- }
+ protected InProcessCompiler inProcessCompiler()
+ {
+ return inProcessCompiler;
+ }
protected static boolean isJava16()
{
diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java
index d0b0bd1b..b12a3244 100644
--- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java
+++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java
@@ -18,12 +18,12 @@
* under the License.
*/
-import org.codehaus.plexus.compiler.Compiler;
import org.codehaus.plexus.compiler.CompilerConfiguration;
import org.codehaus.plexus.compiler.CompilerMessage;
import org.codehaus.plexus.compiler.CompilerException;
import org.codehaus.plexus.compiler.CompilerResult;
import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
import javax.tools.Diagnostic;
import javax.tools.DiagnosticCollector;
@@ -36,6 +36,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
/**
@@ -43,8 +44,8 @@
* @author David M. Lloyd
* @since 2.0
*/
-@Component( role = Compiler.class )
-public class JavaxToolsCompiler implements InProcessCompiler
+@Component( role = InProcessCompiler.class )
+public class JavaxToolsCompiler extends AbstractLogEnabled implements InProcessCompiler
{
/**
* is that thread safe ???
@@ -57,7 +58,7 @@ protected JavaCompiler newJavaCompiler()
return ToolProvider.getSystemJavaCompiler();
}
- private List JAVA_COMPILERS = new CopyOnWriteArrayList<>();
+ private final List JAVA_COMPILERS = new CopyOnWriteArrayList<>();
private JavaCompiler getJavaCompiler( CompilerConfiguration compilerConfiguration )
{
@@ -111,14 +112,14 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati
CompilerMessage.Kind.ERROR );
return new CompilerResult( false, Collections.singletonList( message ) );
}
- final String sourceEncoding = config.getSourceEncoding();
- final Charset sourceCharset = sourceEncoding == null ? null : Charset.forName( sourceEncoding );
- final DiagnosticCollector collector = new DiagnosticCollector<>();
- try ( final StandardJavaFileManager standardFileManager =
+ String sourceEncoding = config.getSourceEncoding();
+ Charset sourceCharset = sourceEncoding == null ? null : Charset.forName( sourceEncoding );
+ DiagnosticCollector collector = new DiagnosticCollector<>();
+ try ( StandardJavaFileManager standardFileManager =
compiler.getStandardFileManager( collector, null, sourceCharset ) )
{
- final Iterable extends JavaFileObject> fileObjects =
+ Iterable extends JavaFileObject> fileObjects =
standardFileManager.getJavaFileObjectsFromStrings( Arrays.asList( sourceFiles ) );
/*(Writer out,
@@ -130,14 +131,27 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati
List arguments = Arrays.asList( args );
- final JavaCompiler.CompilationTask task =
+ JavaCompiler.CompilationTask task =
compiler.getTask( null, standardFileManager, collector, arguments, null, fileObjects );
- final Boolean result = task.call();
- final ArrayList compilerMsgs = new ArrayList<>();
+ Boolean result = task.call();
+ List compilerMsgs = new ArrayList<>();
+
for ( Diagnostic extends JavaFileObject> diagnostic : collector.getDiagnostics() )
{
- CompilerMessage.Kind kind = convertKind(diagnostic);
- String baseMessage = diagnostic.getMessage( null );
+ CompilerMessage.Kind kind = convertKind( diagnostic );
+
+ String baseMessage;
+ try
+ {
+ baseMessage = diagnostic.getMessage( Locale.getDefault() );
+ }
+ catch ( AssertionError e )
+ {
+ // workaround for https://bugs.openjdk.java.net/browse/JDK-8210649
+ getLogger().debug( "Ignore Issue get JavaCompiler Diagnostic message (see https://bugs.openjdk.java.net/browse/JDK-8210649):" + e.getMessage(), e );
+ // in this case we try to replace the baseMessage with toString (hoping this does not throw a new exception..
+ baseMessage = diagnostic.toString();
+ }
if ( baseMessage == null )
{
continue;
@@ -185,7 +199,6 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati
finally
{
releaseJavaCompiler( compiler, config );
-
}
}
diff --git a/plexus-compilers/pom.xml b/plexus-compilers/pom.xml
index e2bdf9d8..886634f0 100644
--- a/plexus-compilers/pom.xml
+++ b/plexus-compilers/pom.xml
@@ -5,7 +5,7 @@
org.codehaus.plexus
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
plexus-compilers
diff --git a/pom.xml b/pom.xml
index e57440a9..f550ba7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
plexus-compiler
- 2.10.1-SNAPSHOT
+ 2.11.0-SNAPSHOT
pom
Plexus Compiler
@@ -45,7 +45,7 @@
scm:git:git@github.com:codehaus-plexus/plexus-compiler.git
11
true
- 2022-02-08T11:49:09Z
+ 2022-03-06T00:54:21Z
5.8.2
1.9.7.M3
2.11.0