Declare stable Java module name
See original GitHub issueCurrently this library does not define a stable Java module name. Thus this automatic module name is derived from it’s JAR filename to be ical4j
.
It would be useful to set a stable automatic module name to what it will eventually be when the library natively supports the JPMS (see #345). net.fortuna.ical4j
is one possibility but would take ownership of the package of the same name. This would conflict with other projects being subpackages thereof (e.g. net.fortuna.ical4j.vcard
).
Maybe the best solution would be moving the net.fortuna.ical4j
package from this project to net.fortuna.ical4j.core
with the next big version. That way the module name net.fortuna.ical4j.core
would not conflict with the other projects.
For more details about Java module names see: sormuras/modules#about-java-module-names
Issue Analytics
- State:
- Created 4 years ago
- Comments:9 (9 by maintainers)
Yeah, I guess I’m just looking for some precedent for how other libraries similar to ical4j have done it.
For example, if I look at slf4j I can see they didn’t change the core package (although the “sub modules” don’t appear to export packages explicitly, but they do provide services in the same namespace):
https://github.com/qos-ch/slf4j/blob/master/slf4j-api/src/main/java9/module-info.java
https://github.com/qos-ch/slf4j/blob/master/slf4j-nop/src/main/java9/module-info.java
Log4j also hasn’t changed the base package but then I can only see one module from that project:
https://github.com/apache/logging-log4j2/blob/master/log4j-api-java9/src/main/java/module-info.java
I’ll keep looking for better examples, but
my current thinking is that it doesn’t feel right to change the base package of ical4j (i.e.I’m still in the process of understanding the new module system. 😉org.mnode.ical4j.core.*
), but if necessary perhaps the other libraries will require a more significant package name changeTrying to think in a modular way (and potential for library split in the future) it does probably make sense to use a
core
base package for all the exported classes, I think we need to understand what those exported classes would be (i.e. the whole library or a subset?)I want to explore all the possibilities as in the articles linked above they say to think very carefully about the module/package naming.
Updated ical4j-integration, will be released shortly.