Skip to content

Commit 93fd2b2

Browse files
committed
#150 Support --process-module-path
1 parent aabfe38 commit 93fd2b2

File tree

4 files changed

+46
-15
lines changed

4 files changed

+46
-15
lines changed

plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/CompilerConfiguration.java

+26
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,12 @@ public class CompilerConfiguration
153153
*/
154154
private List<String> processorPathEntries;
155155

156+
/**
157+
* --processor-module-path parameter in jdk 9+. If specified, annotation processors are only searched in the processor
158+
* path. Otherwise they are searched in the modulepath.
159+
*/
160+
private List<String> processorModulePathEntries;
161+
156162
/**
157163
* default value {@link CompilerReuseStrategy#ReuseCreated}
158164
*
@@ -684,6 +690,26 @@ public void setProcessorPathEntries(List<String> processorPathEntries) {
684690
this.processorPathEntries = processorPathEntries;
685691
}
686692

693+
694+
public void addProcessorModulePathEntry(String entry) {
695+
if ( processorModulePathEntries == null ) {
696+
processorModulePathEntries = new LinkedList<>();
697+
}
698+
699+
processorModulePathEntries.add( entry );
700+
}
701+
702+
public List<String> getProcessorModulePathEntries()
703+
{
704+
return processorModulePathEntries;
705+
}
706+
707+
public void setProcessorModulePathEntries( List<String> processorModulePathEntries )
708+
{
709+
this.processorModulePathEntries = processorModulePathEntries;
710+
}
711+
712+
687713
public CompilerReuseStrategy getCompilerReuseStrategy()
688714
{
689715
return compilerReuseStrategy;

plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,11 @@ public CompilerResult performCompile( CompilerConfiguration config )
178178
//now add jdk 1.6 annotation processing related parameters
179179
String[] annotationProcessors = config.getAnnotationProcessors();
180180
List<String> processorPathEntries = config.getProcessorPathEntries();
181-
if ( ( annotationProcessors != null && annotationProcessors.length > 0 ) || ( processorPathEntries != null
182-
&& processorPathEntries.size() > 0 ) )
181+
List<String> processorModulePathEntries = config.getProcessorModulePathEntries();
182+
183+
if ( ( annotationProcessors != null && annotationProcessors.length > 0 )
184+
|| ( processorPathEntries != null && processorPathEntries.size() > 0 )
185+
|| ( processorModulePathEntries != null && processorModulePathEntries.size() > 0 ) )
183186
{
184187
if ( annotationProcessors != null && annotationProcessors.length > 0 )
185188
{
@@ -201,6 +204,12 @@ public CompilerResult performCompile( CompilerConfiguration config )
201204
args.add( "-processorpath" );
202205
args.add( getPathString( processorPathEntries ) );
203206
}
207+
208+
if ( processorModulePathEntries != null && processorModulePathEntries.size() > 0 )
209+
{
210+
args.add( "-processorpath" );
211+
args.add( getPathString( processorModulePathEntries ) );
212+
}
204213

205214
if ( config.getProc() != null )
206215
{

plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java

+8-12
Original file line numberDiff line numberDiff line change
@@ -289,22 +289,18 @@ public static String[] buildCompilerArguments( CompilerConfiguration config, Str
289289
}
290290
args.add( buffer.toString() );
291291
}
292-
if ( config.getProcessorPathEntries() != null && !config.getProcessorPathEntries().isEmpty() ) {
293-
294-
if(!isPreJava9(config) && Arrays.asList(sourceFiles).contains("module-info.java")){
295-
args.add( "--processor-module-path" );
296-
297-
} else {
298-
args.add( "-processorpath" );
299-
300-
}
292+
if ( config.getProcessorPathEntries() != null && !config.getProcessorPathEntries().isEmpty() )
293+
{
294+
args.add( "-processorpath" );
301295
args.add( getPathString( config.getProcessorPathEntries() ) );
302296
}
303-
297+
if ( config.getProcessorModulePathEntries() != null && !config.getProcessorModulePathEntries().isEmpty() )
298+
{
299+
args.add( "--processor-module-path" );
300+
args.add( getPathString( config.getProcessorModulePathEntries() ) );
301+
}
304302
}
305303

306-
307-
308304
if ( config.isOptimize() )
309305
{
310306
args.add( "-O" );

plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ public void testModulePathAnnotations() throws Exception
315315
expectedArguments.add( "/repo/a/b/1.0/b-1.0.jar" + File.pathSeparator +
316316
"/repo/c/d/1.0/d-1.0.jar" + File.pathSeparator );
317317

318-
compilerConfiguration.setProcessorPathEntries(Arrays.asList("/repo/a/b/1.0/annotations-1.0.jar",
318+
compilerConfiguration.setProcessorModulePathEntries(Arrays.asList("/repo/a/b/1.0/annotations-1.0.jar",
319319
"/repo/f/a/1.0/annotations-4.0.jar"));
320320
expectedArguments.add( "--processor-module-path" );
321321
expectedArguments.add("/repo/a/b/1.0/annotations-1.0.jar" + File.pathSeparator +

0 commit comments

Comments
 (0)