[ 
https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448402#comment-16448402
 ] 

ASF GitHub Bot commented on JENA-1524:
--------------------------------------

Github user christopher-johnson commented on the issue:

    https://github.com/apache/jena/pull/401
  
    the module system does not allow two distinct modules (e.g. 
`org.apache.jena.arq` and `org.apache.jena.base`) to export the same package 
(e.g. `org.apache.jena.atlas`).  
    
    There are two options in this situation, 
    1. consolidate the package into an existing module.
    2. separate the package into a new module.
    
    Option 2 is only viable when the package has no dependencies to another 
module that depends on it (i.e. a cyclical relationship).  I think that  
`org.apache.jena.atlas` is not a candidate for separation from 
`org.apache.jena.arq` as  `org.apache.jena.riot` depends on it, and  
`org.apache.jena.atlas` depends on `org.apache.jena.riot`, so they must be in 
the same module (given the existing code).   
    
    I agree that there is a balance between organizational convenience and 
radical (presumably hierarchical) package retrofitting to support strong 
encapsulation.  The concept of one-way dependency vectors governs modularity, 
but this does not necessarily agree with component semantics when implemented 
with package names.    



> 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
(v7.6.3#76005)

Reply via email to