You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2023/10/19 17:47:00 UTC

[jira] [Comment Edited] (BEANUTILS-560) Add support for JPMS

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

Gary D. Gregory edited comment on BEANUTILS-560 at 10/19/23 5:46 PM:
---------------------------------------------------------------------

One item is that the types postfixed with "2" need to be merged into their super types.

PRs welcome.

Also the build needs to pass on Java 21.


was (Author: garydgregory):
One item is that the types postfixed with "2" need to be merged into their super types.

PRs welcome.

Also the build needs to run on Java 21.

> Add support for JPMS
> --------------------
>
>                 Key: BEANUTILS-560
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-560
>             Project: Commons BeanUtils
>          Issue Type: Bug
>            Reporter: Samael Bate
>            Priority: Major
>
> The commons-beanutils jar doesn't support Java modules:
> {code:java}
> [INFO] --- maven-compiler-plugin:3.11.0:compile (compile-java9) @ opencsv ---
> [WARNING] ***************************************************************************************************************************************************
> [WARNING] * Required filename-based automodules detected: [commons-beanutils-1.9.4.jar]. Please don't publish this project to a public artifact repository! *
> [WARNING] ***************************************************************************************************************************************************{code}
> At the very least the manifest could define an _Automatic-Module-Name_ but preferably the project should be configured to build a multi-release jar that can support Java 8 while also compiling a module-info targeting a newer JDK such as 11. 
>  
> here is an example maven profile that can be used to ensure that a module-info gets included when a project is built with JDK 9 or above:
> {code:java}
> <profile>
>     <id>jpms</id>
>     <activation>
>         <jdk>[9,)</jdk>
>     </activation>
>     <build>
>         <plugins>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-compiler-plugin</artifactId>
>                 <executions>
>                     <execution>
>                         <id>compile-java9</id>
>                         <phase>compile</phase>
>                         <goals>
>                             <goal>compile</goal>
>                         </goals>
>                         <configuration>
>                             <release>9</release>
>                             <compileSourceRoots>
>                                 <compileSourceRoot>${project.basedir}/src/main/java9</compileSourceRoot>
>                             </compileSourceRoots>
>                             <multiReleaseOutput>true</multiReleaseOutput>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-jar-plugin</artifactId>
>                 <version>3.3.0</version>
>                 <configuration>
>                     <archive>
>                         <manifestEntries>
>                             <Multi-Release>true</Multi-Release>
>                         </manifestEntries>
>                         <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
>                     </archive>
>                 </configuration>
>             </plugin>
>         </plugins>
>     </build>
> </profile> {code}



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