[jira] [Commented] (MCOMPILER-550) Make 'outputDirectory' writeable

2023-10-22 Thread ASF GitHub Bot (Jira)


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

ASF GitHub Bot commented on MCOMPILER-550:
--

bmarwell commented on PR #202:
URL: 
https://github.com/apache/maven-compiler-plugin/pull/202#issuecomment-1774132830

   > I think the same change should apply to the test compile mono. @bmarwell
   
   Can do, just left it out because I couldn't think of a use case I could have 
added to the documentation.




> Make 'outputDirectory' writeable
> 
>
> Key: MCOMPILER-550
> URL: https://issues.apache.org/jira/browse/MCOMPILER-550
> Project: Maven Compiler Plugin
>  Issue Type: Improvement
>Reporter: Benjamin Marwell
>Assignee: Benjamin Marwell
>Priority: Major
> Fix For: 3.12.0
>
>
> h2. Description of Improvement
> Currently, the property 'outputDirectory' is not writeable, i.e. not meant to 
> be modified.
> However, making it writeable  has at least two major advantages.
> h2. Use case one -- variable is already used
> Some Tutorials (e.g. https://www.baeldung.com/maven-multi-release-jars) 
> already make use of rewriting the variable.
> h2. Use case two: MR-Jars with different bytecode level.
> Another use case is Multi-Release-Jars. Currently, they can officially only 
> be controlled by setting the {{release}} property. That will not only require 
> a suitable JDK or Toolchain-JDK, it will also require the bytecode for that 
> version to be the bytecode of that version.
> E.g. using {{release}} and {{multiReleaseOutput}}, the bytecode in 
> {{META-INF/version/java9}} MUST be exactly Java 9 bytecode.
> However, the JDK does not know of such restrictions.
> Using {{outputDirectory}}, you can now create Java 8 bytecode to run in e.g. 
> Java 24. Here is an example use case: 
> https://github.com/groovy/GMavenPlus/pull/287
> Granted, this could also be done differently, but this way it seems a little 
> more elegant.
> The actual advantage is, that some developers can now plan ahead. For 
> example, the SecurityManager is not just deprecated, it is deprecated for 
> removal. The moment we know which Java version it is, we can create a MR-Jar 
> for e.g. Java 30, even though Java 30 SDKs are not available then (currently 
> we have Java 21 GA).
> h2. Proposed solution
> Make variable writeable as suggested in Slack.
> PR available locally.



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


[jira] [Commented] (MCOMPILER-550) Make 'outputDirectory' writeable

2023-10-22 Thread ASF GitHub Bot (Jira)


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

ASF GitHub Bot commented on MCOMPILER-550:
--

gnodet commented on PR #202:
URL: 
https://github.com/apache/maven-compiler-plugin/pull/202#issuecomment-1774114724

   I think the same change should Apple to the test compile mono.
   @bmarwell  




> Make 'outputDirectory' writeable
> 
>
> Key: MCOMPILER-550
> URL: https://issues.apache.org/jira/browse/MCOMPILER-550
> Project: Maven Compiler Plugin
>  Issue Type: Improvement
>Reporter: Benjamin Marwell
>Assignee: Benjamin Marwell
>Priority: Major
> Fix For: 3.12.0
>
>
> h2. Description of Improvement
> Currently, the property 'outputDirectory' is not writeable, i.e. not meant to 
> be modified.
> However, making it writeable  has at least two major advantages.
> h2. Use case one -- variable is already used
> Some Tutorials (e.g. https://www.baeldung.com/maven-multi-release-jars) 
> already make use of rewriting the variable.
> h2. Use case two: MR-Jars with different bytecode level.
> Another use case is Multi-Release-Jars. Currently, they can officially only 
> be controlled by setting the {{release}} property. That will not only require 
> a suitable JDK or Toolchain-JDK, it will also require the bytecode for that 
> version to be the bytecode of that version.
> E.g. using {{release}} and {{multiReleaseOutput}}, the bytecode in 
> {{META-INF/version/java9}} MUST be exactly Java 9 bytecode.
> However, the JDK does not know of such restrictions.
> Using {{outputDirectory}}, you can now create Java 8 bytecode to run in e.g. 
> Java 24. Here is an example use case: 
> https://github.com/groovy/GMavenPlus/pull/287
> Granted, this could also be done differently, but this way it seems a little 
> more elegant.
> The actual advantage is, that some developers can now plan ahead. For 
> example, the SecurityManager is not just deprecated, it is deprecated for 
> removal. The moment we know which Java version it is, we can create a MR-Jar 
> for e.g. Java 30, even though Java 30 SDKs are not available then (currently 
> we have Java 21 GA).
> h2. Proposed solution
> Make variable writeable as suggested in Slack.
> PR available locally.



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


[jira] [Commented] (MCOMPILER-550) Make 'outputDirectory' writeable

2023-10-21 Thread ASF GitHub Bot (Jira)


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

ASF GitHub Bot commented on MCOMPILER-550:
--

bmarwell opened a new pull request, #202:
URL: https://github.com/apache/maven-compiler-plugin/pull/202

   - add more documentation when and how to use it (and when to not use it)
   - fixes MCOMPILER-550
   
   Following this checklist to help us incorporate your 
   contribution quickly and easily:
   
- [X] Make sure there is a [JIRA 
issue](https://issues.apache.org/jira/browse/MCOMPILER-550) filed 
  for the change (usually before you start working on it).  Trivial 
changes like typos do not 
  require a JIRA issue.  Your pull request should address just this 
issue, without 
  pulling in other changes.
- [X] Each commit in the pull request should have a meaningful subject line 
and body.
- [X] Format the pull request title like `[MCOMPILER-550] - Fixes bug in 
ApproximateQuantiles`,
  where you replace `MCOMPILER-XXX` with the appropriate JIRA issue. 
Best practice
  is to use the JIRA issue title in the pull request title and in the 
first line of the 
  commit message.
- [X] Write a pull request description that is detailed enough to 
understand what the pull request does, how, and why.
- [X] Run `mvn clean verify` to make sure basic checks pass. A more 
thorough check will 
  be performed on your pull request automatically.
- [X] You have run the integration tests successfully (`mvn -Prun-its clean 
verify`).
   
   If your pull request is about ~20 lines of code you don't need to sign an
   [Individual Contributor License 
Agreement](https://www.apache.org/licenses/icla.pdf) if you are unsure
   please ask on the developers list.
   
   To make clear that you license your contribution under 
   the [Apache License Version 2.0, January 
2004](http://www.apache.org/licenses/LICENSE-2.0)
   you have to acknowledge this by using the following check-box.
   
- [X] I hereby declare this contribution to be licenced under the [Apache 
License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   
- [X] In any other case, please file an [Apache Individual Contributor 
License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   




> Make 'outputDirectory' writeable
> 
>
> Key: MCOMPILER-550
> URL: https://issues.apache.org/jira/browse/MCOMPILER-550
> Project: Maven Compiler Plugin
>  Issue Type: Improvement
>Reporter: Benjamin Marwell
>Assignee: Benjamin Marwell
>Priority: Major
>
> h2. Description of Improvement
> Currently, the property 'outputDirectory' is not writeable, i.e. not meant to 
> be modified.
> However, making it writeable  has at least two major advantages.
> h2. Use case one -- variable is already used
> Some Tutorials (e.g. https://www.baeldung.com/maven-multi-release-jars) 
> already make use of rewriting the variable.
> h2. Use case two: MR-Jars with different bytecode level.
> Another use case is Multi-Release-Jars. Currently, they can officially only 
> be controlled by setting the {{release}} property. That will not only require 
> a suitable JDK or Toolchain-JDK, it will also require the bytecode for that 
> version to be the bytecode of that version.
> E.g. using {{release}} and {{multiReleaseOutput}}, the bytecode in 
> {{META-INF/version/java9}} MUST be exactly Java 9 bytecode.
> However, the JDK does not know of such restrictions.
> Using {{outputDirectory}}, you can now create Java 8 bytecode to run in e.g. 
> Java 24. Here is an example use case: 
> https://github.com/groovy/GMavenPlus/pull/287
> Granted, this could also be done differently, but this way it seems a little 
> more elegant.
> The actual advantage is, that some developers can now plan ahead. For 
> example, the SecurityManager is not just deprecated, it is deprecated for 
> removal. The moment we know which Java version it is, we can create a MR-Jar 
> for e.g. Java 30, even though Java 30 SDKs are not available then (currently 
> we have Java 21 GA).
> h2. Proposed solution
> Make variable writeable as suggested in Slack.
> PR available locally.



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