Hi,

For a client to use TinkerPop only 2 modules are required.

gremlin-language
gremlin-core

I am of the opinion that these 2 modules should actually be its own
dedicated project, but that is for another day.

Regarding these two modules, there is only one split package that
requires refactoring.

org.apache.tinkerpop.gremlin.language.grammar

I locally renamed

gremlin-core/org.apache.tinkerpop.gremlin.language.grammar 

and was able two successfully build the client application with the
following module-info.java

module-info.java

    requires gremlin.core;
    requires gremlin.language;

This now gives the client manyoptions including building native images.

So in short, rename one package and I for one will be a happy JPMS
client.

Thanks
Pieter




On Wed, 2023-12-06 at 11:56 -0800, Ken Hu wrote:
> Hi All,
> 
> Recently, there has been some discussion around the use of
> TinkerPop's Java
> libraries as a Java Module. My proposal is to not support this for
> now. The
> reason I feel this way is due to the fact that Java 8 will be
> supported for
> the foreseeable future. There are many dependencies of TinkerPop that
> don't
> support JPMS and would become automatic modules. I'm generally not in
> favor
> of this approach since I feel that it mostly defeats the purpose of
> the
> module system in the first place. I'd prefer that more of our
> dependencies
> became explicit modules first before converting our Java libraries
> into
> explicit modules.
> 
> A second related question that has come up is the issue with using
> TinkerPop's Java libraries as automatic modules. The same package is
> exported in multiple projects which causes split packages to occur
> when
> attempting to use TinkerPop in this way. This will require
> workarounds from
> the user to allow TinkerPop to be used as an automatic module.
> Although it
> can be argued that this change would be simpler to do than converting
> the
> project into an explicit module, I'd still be against doing this. My
> preference would be to either fully support JPMS or not support it at
> all.
> Changing package names also constitutes a breaking change which I
> feel the
> majority of our users would not benefit from. Unless there is strong
> demand
> from users or someone is willing to champion this change (implement
> and
> support) then I'd prefer to not support this for now.
> 
> What are your thoughts on this subject? If there is no disagreement
> in the
> next three days then I'm going to assume lazy consensus and update
> the
> documentation accordingly to show that we don't support being used as
> a
> Java Module.
> 
> Thanks,
> Ken

Reply via email to