Re: [JEXL] Full Java module descriptor support
Hi Gilles, On 2023/04/25 15:45:37 Gilles Sadowski wrote: > It's an interesting functionality, but I think that it should be done in > a general way, applicable to all "Commons" components (through > settings/profile in the "parent" POM, I guess). > > Regards, > Gilles Well, that's my end goal to be precise ;-) Right now I'm in need for full Java modules for the following Commons components: codec, compress, io, jexl, lang3, net, text. But certainly other developers may want to have similar capabilities on other Commons components. Just happened to ping Jexl because it's the latest dependency I just added to the project I'm working on. Cheers, Andres - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: [JEXL] Full Java module descriptor support
Hi. Le mar. 25 avr. 2023 à 17:37, Andres Almiray a écrit : > > Hello! > > I'd like to gauge interest in adding a full Java module descriptor (a.k.a > JPMS though the use of the acronym is discouraged) to commons-jexl. It's an interesting functionality, but I think that it should be done in a general way, applicable to all "Commons" components (through settings/profile in the "parent" POM, I guess). Regards, Gilles > > The codebase is currently Java 8 compatible. Adding a full Java descriptor > requires using Java 9+ in the build but does not force the whole codebase to > migrate. There are a couple of alternatives to make this work: > > - setup Maven so that a secondary source tree containing `module-info-.java` > is compiled with Java 9+. The compiled class should be added to the project's > JAR file inside the versioned space, such as > `/META-INF/versions/9/module-info.class`. > > - use the Moditect[1] Maven plugin to generate `module-info.class` and place > it inside the JAR. > > Full Java modules are required when creating custom Java runtimes with jlink, > regardless of the modular status of the target application. This is the use > case I'm looking for at the moment. > > If interested I can work on a PR based on feedback you may have. > > Cheers, > Andres > > [1] https://github.com/moditect/moditect > > PS: Some metadata of the latest JAR file: > > ``` > $ jarviz bytecode show --gav org.apache.commons:commons-jexl3:3.3 > subject: commons-jexl3-3.3.jar > Unversioned classes. Bytecode version: 52 (Java 8) total: 321 > > $ jarviz module name --gav org.apache.commons:commons-jexl3:3.3 > subject: commons-jexl3-3.3.jar > name: commons.jexl3 > source: filename > automatic: true > valid: true > > $ jarviz bytecode show --gav org.apache.commons:commons-jexl3:3.3 > subject: commons-jexl3-3.3.jar > Unversioned classes. Bytecode version: 52 (Java 8) total: 321 > aalmiray2:tmp aalmiray$ jarviz module descriptor --gav > org.apache.commons:commons-jexl3:3.3 > subject: commons-jexl3-3.3.jar > name: commons.jexl3 > version: 3.3 > open: false > automatic: true > requires: > java.base mandated > provides: > javax.script.ScriptEngineFactory with > org.apache.commons.jexl3.scripting.JexlScriptEngineFactory > contains: > org.apache.commons.jexl3 > org.apache.commons.jexl3.annotations > org.apache.commons.jexl3.internal > org.apache.commons.jexl3.internal.introspection > org.apache.commons.jexl3.introspection > org.apache.commons.jexl3.parser > org.apache.commons.jexl3.scripting > ``` > > - > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
[JEXL] Full Java module descriptor support
Hello! I'd like to gauge interest in adding a full Java module descriptor (a.k.a JPMS though the use of the acronym is discouraged) to commons-jexl. The codebase is currently Java 8 compatible. Adding a full Java descriptor requires using Java 9+ in the build but does not force the whole codebase to migrate. There are a couple of alternatives to make this work: - setup Maven so that a secondary source tree containing `module-info-.java` is compiled with Java 9+. The compiled class should be added to the project's JAR file inside the versioned space, such as `/META-INF/versions/9/module-info.class`. - use the Moditect[1] Maven plugin to generate `module-info.class` and place it inside the JAR. Full Java modules are required when creating custom Java runtimes with jlink, regardless of the modular status of the target application. This is the use case I'm looking for at the moment. If interested I can work on a PR based on feedback you may have. Cheers, Andres [1] https://github.com/moditect/moditect PS: Some metadata of the latest JAR file: ``` $ jarviz bytecode show --gav org.apache.commons:commons-jexl3:3.3 subject: commons-jexl3-3.3.jar Unversioned classes. Bytecode version: 52 (Java 8) total: 321 $ jarviz module name --gav org.apache.commons:commons-jexl3:3.3 subject: commons-jexl3-3.3.jar name: commons.jexl3 source: filename automatic: true valid: true $ jarviz bytecode show --gav org.apache.commons:commons-jexl3:3.3 subject: commons-jexl3-3.3.jar Unversioned classes. Bytecode version: 52 (Java 8) total: 321 aalmiray2:tmp aalmiray$ jarviz module descriptor --gav org.apache.commons:commons-jexl3:3.3 subject: commons-jexl3-3.3.jar name: commons.jexl3 version: 3.3 open: false automatic: true requires: java.base mandated provides: javax.script.ScriptEngineFactory with org.apache.commons.jexl3.scripting.JexlScriptEngineFactory contains: org.apache.commons.jexl3 org.apache.commons.jexl3.annotations org.apache.commons.jexl3.internal org.apache.commons.jexl3.internal.introspection org.apache.commons.jexl3.introspection org.apache.commons.jexl3.parser org.apache.commons.jexl3.scripting ``` - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org