ASF GitHub Bot commented on JENA-1524:

Github user afs commented on the issue:

    Hi there - could you please split out the automatic module name name part 
then we can get that into the codebase soon and separately from the API impact 
of the rest?
    I've create JENA-1525 for the automatic module name.
    For the package split:
    The problematic classes are `JenaInit` (functions init() and to a lesser 
extent shutdown()) and the interface JenaSubsystemLifecycle in jena-core, and 
`Txn` in jena-arq.  The rest of the jena-core classes are only used by 
extensions of Jena and by other jena components, not by applications. There is 
a chance 3rd party use but it is going to be very uncommon as far as I know. 
`Serializable` is jena-internal for wiring up RIOT (in jena-arq) into the code 
    Of the classes, `Txn` is more important for applications, and its use 
encouraged in general user code. `JenaInit` normally isn't called by 
application code but can be to be sure or to force initialization before 
calling into internal code very early in the application startup, before proper 
Jena code.
    I think it is less disruptive to do the split as a rename of 
"jena-core:org.apache.jena.system" as "jena-core:org.apache.jena.sys", then put 
an adapter class `JenaInit` in "jena-core:org.apache.jena.system"  that has two 
functions to call the real `init` and `shutdown`. We immediately deprecate 
"jena-arq:JenaInit" prior to removal quite quickly (in a very few release 
    This way the impact is lessened: `Txn` is not repackaged. The adapter class 
approach does not work for calls from jena-core to jena-arq without reflection.

> org.apache.jena.system is split by org.apache.jena.arq and 
> org.apache.jena.core
> -------------------------------------------------------------------------------
>                 Key: JENA-1524
>                 URL: https://issues.apache.org/jira/browse/JENA-1524
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Jena
>    Affects Versions: Jena 3.7.0
>            Reporter: Christopher Johnson
>            Priority: Major
> a JPMS module cannot require both org.apache.jena.arq and 
> org.apache.jena.core since org.apache.jena.system can be read from both.  
> This cannot be resolved with --patch-module since arq and core provide 
> different implementations.  Suggestion is to make a distinction by renaming 
> system to sys in either one.

This message was sent by Atlassian JIRA

Reply via email to