Am Fr., 23. Juli 2021 um 15:05 Uhr schrieb Alan Bateman <
alan.bate...@oracle.com>:

> On 23/07/2021 12:17, Gunnar Morling wrote:
> > :
> >
> > > For the migration scenario where the resources are in .properties
> > format then the simplest may be to just deploy the JAR files on the
> > module path where they will be treated as automatic modules.
> >
> > In the scenario I have in mind (for educational purposes mainly) the
> > JAR files contain the properties file as well code and should be
> > usable as "proper" (i.e. non-automatic) modules as well as on the
> > classpath.
> >
> > > There are no split package issues unless the resources have been
> > compiled as .class files.
> >
> > That's very interesting, it's not what I observe. Having the
> > *.properties in one and the same package in multiple modules triggers
> > an error upon start-up:
>
> I should have been clearer that the "no split package issues" comment
> was in the context of automatic modules where you "move" an existing JAR
> file containing .properties files from the class path to the module
> path. The .class files in the JAR file are used to determine the set of
> packages in the automatic module so if there are no .class files then it
> doesn't have any packages.
>
> That said, I'm surprised by the exception message as suggests there must
> be dev.morling.greeter.fr classes or resources  in the
> dev.morling.greeter.german module. I think I'd need to see the output of
> `jar --file=<jar> --describe-module` to be sure.
>

Yes, there is such resource which I had created for demo purposes (see the
jar -tf  output above):

    dev/morling/greeter/fr/GreetingMessages_de.properties

Here's the output you requested:

jar --describe-module --file
german/target/resourceloading-test-german-1.0-SNAPSHOT.jar
dev.morling.greeter.german@1.0-SNAPSHOT
jar:file:///.../resource-loading-test/german/target/resourceloading-test-german-1.0-SNAPSHOT.jar!/module-info.class
requires dev.morling.greeter.base
requires java.base mandated
provides dev.morling.greeter.spi.GreetingMessagesProvider with
dev.morling.greeter.de.internal.GermanGreetingMessagesProvider
contains dev.morling.greeter.de.internal

Interestingly, the dev.morling.greeter.fr package of the
GreetingMessages_de.properties resource file isn't listed there, but it
does trigger the split package error later on. Based on what you say, I
take it that split package error *is* expected in this situation, it'
surprising though to not see the package listed in the output of
--describe-module.

If you wanted to reproduce this yourself, the code is here:

    https://github.com/gunnarmorling/resource-bundle-test/tree/split-package

Just run "mvn clean install" on JDK 9+, then "mvn exec:exec -pl
:resourceloading-test-runner" for running the application, which should
fail.

Thanks,

--Gunnar


> -Alan
>

Reply via email to