[ 
https://issues.apache.org/jira/browse/MCOMPILER-581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17824354#comment-17824354
 ] 

Tamas Cservenak edited comment on MCOMPILER-581 at 3/7/24 10:31 AM:
--------------------------------------------------------------------

How about something along these lines:
 * create 2 new mojos "proc" and "test-proc" (or apt or whatever) that 
automatically binds to "generate-sources" and "generate-test-sources" phases: 
they use {{proc:only}}
 * add new configuration to {{AbstractCompilerMojo}} like "two phase APT" 
(boolean) defaults to false, keep today functionality, works as now
 * behavior change 1: if "two phase APT" is false, the two new mojos just skip 
(like skip would be set), they immediately exit doing nothing and existing 
compile and test-compile mojos do whatever they did before.
 * behavior change 2: "if two phase APT" is true, existing compiler mojo use 
{{proc:none}} (maybe fail if proc explicitly configured?), and the two new 
mojos activate and run using {{{}proc:only{}}}.

Am unsure why we need Maven4 for change like this.


was (Author: cstamas):
How about something along these lines:
 * create 2 new mojos "apt" and "test-apt" that automatically binds to 
"generate-sources" and "generate-test-sources" phases: they use {{proc:only}}
 * add new configuration to {{AbstractCompilerMojo}} like "two phase APT" 
(boolean) defaults to false, keep today functionality, works as now
 * behavior change 1: if "two phase APT" is false, the two new mojos just skip 
(like skip would be set), they immediately exit doing nothing and existing 
compile and test-compile mojos do whatever they did before.
 * behavior change 2: "if two phase APT" is true, existing compiler mojo use 
{{proc:none}} (maybe fail if proc explicitly configured?), and the two new 
mojos activate and run using {{{}proc:only{}}}.

Am unsure why we need Maven4 for change like this.

> Create 2nd default execution "default-generate-sources" for APT
> ---------------------------------------------------------------
>
>                 Key: MCOMPILER-581
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-581
>             Project: Maven Compiler Plugin
>          Issue Type: Task
>            Reporter: Benjamin Marwell
>            Priority: Major
>             Fix For: 4.0.0
>
>
> Starting with version 4.0.0 of this plugin for use with Maven 4+, the 
> following changes should be incorporated to align the compilation process 
> with the process designed by the OpenJDK javac team:
> * Modify default-compile to use proc:none by default
> * Create a new goal default-generate-sources and use proc:only
> This will align the compilation process with the default javac use.
> h2. Rationale 
> Before JDK 21+, no "proc:full" was available and implicitly used when no 
> proc:* was set.
> However, starting with  JDK 21, proc:full was introduced and not specifying 
> proc:* will now trigger a warning.
> h2. Alternatives
> Keep one phase but specify proc:full whenever APTs are in the CP or used as a 
> compiler-plugin dependency/path or when APT classes are explicitly given.
> h2. Drawbacks of this approach
> TODO: document drawbacks of this approach and of the alternatives.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to