[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16454408#comment-16454408 ] ASF GitHub Bot commented on JENA-1524: -- Github user ajs6f commented on the issue: https://github.com/apache/jena/pull/401 This, to my mind, is now well into the realm of 4.0-sized changes. > 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 >Assignee: Andy Seaborne >Priority: Major > Fix For: Jena 3.8.0 > > > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16453084#comment-16453084 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/401 a quick note here about the prospect of further restructuring to support jpms. I have learned today that if a module (e.g. `org.apache.jena.arq`) does not contain a single top level package this creates an "ambiguous module". The expectation is that the module contains a hierarchy of packages and this does not exist in the primary jena library modules, It is possible for the top package to not contain any classes, but the `module-info.java` then must explictly export every subpackage it wants to make public. With a new package hierarchy, it does not seem possible to maintain compatibility with existing implementations _and_ support modules with jena master. One possibility might be to create a new branch and produce distinct artifacts that could be used downstream. It could also be used for testing and making changes to support the new jdk methods without impacting LTS. btw, I have noticed in running the tests that there are a few issues due to jdk changes (`java.nio.ByteBuffer`, for example). This might be a question for the dev list. > 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 >Assignee: Andy Seaborne >Priority: Major > Fix For: Jena 3.8.0 > > > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16452033#comment-16452033 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 See PR #408 for updating the shaded Google guava. > 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 > Fix For: Jena 3.8.0 > > > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451988#comment-16451988 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 PR merged and email sent to dev@jena to let everyone know this has an impact on ServiceLoader files. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451982#comment-16451982 ] ASF subversion and git services commented on JENA-1524: --- Commit 66a8ff47e088225633a07cb224e667721323d7f9 in jena's branch refs/heads/master from [~andy.seaborne] [ https://git-wip-us.apache.org/repos/asf?p=jena.git;h=66a8ff4 ] JENA-1524: Rename services files for JenaSubsystemLifecycle > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451981#comment-16451981 ] ASF subversion and git services commented on JENA-1524: --- Commit 6a30cdca901ad9810f27c0b987e7d1c00d782d1a in jena's branch refs/heads/master from [~andy.seaborne] [ https://git-wip-us.apache.org/repos/asf?p=jena.git;h=6a30cdc ] JENA-1524: Merge commit 'refs/pull/401/head' of https://github.com/apache/jena This closes #401. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451984#comment-16451984 ] ASF GitHub Bot commented on JENA-1524: -- Github user asfgit closed the pull request at: https://github.com/apache/jena/pull/401 > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451980#comment-16451980 ] ASF subversion and git services commented on JENA-1524: --- Commit d82328d905b0f8ae40f60ffe800728824975 in jena's branch refs/heads/master from [~christopher-johnson] [ https://git-wip-us.apache.org/repos/asf?p=jena.git;h=d82328d ] [JENA-1524] org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16451960#comment-16451960 ] ASF subversion and git services commented on JENA-1524: --- Commit 1830060 from [~andy.seaborne] in branch 'site/trunk' [ https://svn.apache.org/r1830060 ] JENA-1524: org.apache.jena.system -> org.apache.jena.sys > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16449979#comment-16449979 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 `RemovalNotification` is used in the constructor for `CacheGuava`. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16449950#comment-16449950 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/401 Indeed, these dependency questions are issues that I need to solve... I would prefer to simplify the über-jar `jena-osgi` dependency of `commons.rdf.jena` by creating lean modular jena artifacts (with BND manifests), that can be managed by a downstream application more easily. I have a quick related question about the shaded-guava dependency. Would you know why `org.apache.jena.atlas.lib.cache.CacheGuava` would still be looking for `org/apache/jena/ext/com/google/common/cache/RemovalNotification` even though there are absolutely no references to the shadow redirection in the code or the build scripts? This reference to the shadow redirection is buried somewhere (perhaps in my filesystem), and I know that it is not using any local maven cache now as I built `org.apache.jena.base` in offline mode. Thanks. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16449845#comment-16449845 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 > Compilation in JPMS requires a module-info.java and is distinct from compiling in JDK 9+. The issue is for trellisldp to solve surely? The transitivity is an indirect jena-osgi dependency and a direct jena dependency. Or a PR to improve `jena-osgi` (which does not get much use or at least not much user@ questions). You may also wish to take that up with CommonsRDF. I'm not sure OSGi is helping here. `jena-osgi` does not affect the oaj.atlas issue between `jena-arq` and `jena-base`. This PR is for the org.system split package. This seems completed. I'd like to get this merged and other matters taken up in separate issues/JIRA so we can make incremental progress. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16449644#comment-16449644 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/401 Compilation in JPMS requires a `module-info.java` and is distinct from compiling in JDK 9+. > What is the issue here? Does anything break? A quick background of the use case might help here. I have been developing JPMS support for the TrellisLDP project recently and have encountered several blocking dependency issues resulting from `jena-osgi`, which is a [transitive dependency ](https://github.com/apache/commons-rdf/blob/master/commons-rdf-jena/pom.xml#L68-L72) resulting from `org.apache.commons.rdf.jena` that is a direct dependency of the `org.trellisldp.app.triplestore` implementation. JPMS compilation is strict and cannot resolve a class-containing package sourced from multiple "parent modules" (even if the package is private).[1] A good question here that you raise is what happens if a top level package contains no classes and only exports subpackages. This requires further investigation and I do not know whether this semi-split, semi-private package, multi-module configuration works, but it is probably not advisable according to the requirements of the [specification](http://openjdk.java.net/projects/jigsaw/spec/reqs/#non-interference). Regarding this PR, I am running tests now. BTW, for me, the shaded-guava jar does not work. I do not know whether it is my IDE, JRE or the maven build configuration. At any rate, I can run tests if I replace the shaded-guava with a direct dependency. Also, `guava 21.0` does not work (without hacking) in a JDK10 because it depends on `javax.annotation.Nullable`. (it seems that `guava 24.1-jre` removes the problematic jsr-305 annotations). There seems to be an initialization/lifecycle issue that can be seen when running `TestFactoryRDF`. The first test to fail there is `factoryRDF_triple_01` with this exception `java.lang.ExceptionInInitializerError`. also `com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Could not initialize class org.apache.jena.riot.system.RiotLib` is reported. The preceding tests pass. It could be my issue, though as an initialization related, it could be a consequence of a the changes in this PR: `java.lang.ExceptionInInitializerError` is also produced in a test runtime use of `org.apache.jena.arq` by a `org.trellisldp.vocabulary` test: ``` java.lang.ExceptionInInitializerError org.apache.jena.riot.RDFParserBuilder.buildFactoryRDF(RDFParserBuilder.java:597) org.apache.jena.riot.RDFParserBuilder.build(RDFParserBuilder.java:569) org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:512) org.trellisldp.vocabulary.AbstractVocabularyTest.getVocabulary(AbstractVocabularyTest.java:56) org.trellisldp.vocabulary.AbstractVocabularyTest.testVocabulary(AbstractVocabularyTest.java:62) ``` [1] https://stackoverflow.com/questions/40616739/java-9-overlapping-non-exported-packages > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448981#comment-16448981 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 jdeps complains about oaj.dboe so having a common automatic-moulde-name seems not to work. Clearing that out and xerces, then /usr/lib/jvm/java-9-openjdk-amd64/bin/jdeps -R --module-path libx -filter:module -m org.apache.jena.arq shows (reformatted from jdeps) org.apache.jena.atlas.data -> org.apache.jena.atlas org.apache.jena.base > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448979#comment-16448979 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 I ran: /usr/lib/jvm/java-9-openjdk-amd64/bin/jdeps -cp 'lib/*' lib/jena-arq-3.8.0-SNAPSHOT.jar and the only split packages reported are for Xerces/xml-apis. Various packages under javax.xml, org.w3c.dom and org.xml.sax split (clashing) with the java runtime libraries. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448934#comment-16448934 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 What is the issue here? Does anything break? oaj = org.apache.jena > 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). jena-arq does not contain any classes of `oaj.atlas` so the package isn't split. jena-arq would export the packages like `oaj.atlas.web` that it has but not `oaj.atlas` itself. jena-base would export `oaj.atlas`, and each subpackage by name. (No use of `*`) It is the same situation as jena-core having `org.apache.jena` and other jars having `oaj.query`etc. That is not a split package. In an ideal world, the naming might be different but the question is what does the current situation break? The dependency is: {noformat} [INFO] org.apache.jena:jena-arq:jar:3.8.0-SNAPSHOT [INFO] +- org.apache.jena:jena-core:jar:3.8.0-SNAPSHOT:compile [INFO] | \- org.apache.jena:jena-base:jar:3.8.0-SNAPSHOT:compile {noformat} > "org.apache.jena.atlas.json.io.parser" | "org.apache.jena.riot.tokens (jena-arq-3.7.0.jar)"; > Could this be changed? To what? They are both in jena-arq - I'm not seeing any problem with that. Are you suggesting better naming or because something breaks? (The name "atlas" is no more than a holder as a "lib".) Arguably, the JSON package should have a different hierarchical name but I agree with @ajs6f shuffling package names around impacts users heavily, and few use java9 yet. The end target naming isn't clear until the whole of Jena is considered. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448648#comment-16448648 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 I've tried out the PR and it passes the build and Fuseki starts up. I renamed the ServiceLoader files as `org.apache.jena.sys.JenaSubsystemLifecycle` (I have a script for that now,I can do that after the PR is merged). One other change is class `system.JenaInit` => `...system.jenaSystem` for compatibility. This is the JDI version, not the "speculative thought" above. That works, but does risk changing initialization order between jena-arq and jena-core which is the most sensitive part of initialization. That does not cause problems in the test suite but deployed applications are a big unknown. Given the risks and impacts, I'm currently inclined to go straight to the change to `META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle`. Putting in an adapter `org.apache.jena.system.JenaSubsystemLifecycle` ends up as replicating the machinery to find services. It's a bit bumpy for people working from development - we can let them know via dev@ that they need to do a clearup and rebuild. So - looking good! > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448419#comment-16448419 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 jena-arq does not need to export `org.apache.jena.atlas` - it needs to export `org.apache.jena.atlas.csv`, org.apache.jena.atlas.data` etc. `org.apache.jena.atlas` does not depend on `riot`, it only has two classes, both exceptions. This is the case for `org.apache.jena` in "jena-core". `org.apache.jena` subpackages are everywhere. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448352#comment-16448352 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/401 I don't see a split package in `org.apache.jena.atlas` - it has classes and sub-packages in `jena-base` and separate sub-packages in `jena-arq` but I don't see a package being split. That should not be a problem, should it? Given this is retrofitting, we have to balance change with continuity for existing users. Calling it `org.apache.jena.base` follows the general automatic module style. "base" is code that is RDF-independent and is more for internal Jena use. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16446779#comment-16446779 ] ASF GitHub Bot commented on JENA-1524: -- Github user ajs6f commented on the issue: https://github.com/apache/jena/pull/401 That sounds like a set of changes (e.g. module renaming) much better suited for 4.0. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16446702#comment-16446702 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/401 In working with the automatic modules, I have also found a split with`org.apache.jena.atlas`. This is between `org.apache.jena.arq` and `org.apache.jena.base`. Would it make sense to create a separate project and artifact for `org.apache.jena.atlas`? I realize that this sort of package refactoring is a slippery slope. However, the new module idiom was to enforce a semantic relationship between the project structure, the artifact(s) it produces and the package(s) it provides. I have found furthermore that it is consistent to name a project in accordance with the qualified module name (without the top level group). So, the traditional "-" naming semantic could be replaced in archives with a "." > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16441067#comment-16441067 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/401#discussion_r182128407 --- Diff: apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle --- @@ -1,4 +1,4 @@ -org.apache.jena.system.InitJenaCore +org.apache.jena.sys.InitJenaCore --- End diff -- I hope this debt isn't too bad because it can be signalled via deprecation. As ever, there is a balance. The services filename ATM is `org.apache.jena.system.JenaSubsystemLifecycle`. I'm happy to and have a interface `...system.JenaSubsystemLifecycle` to make the transition not too abrupt. ( Speculative thought, maybe trying too hard: Can we actually move initialization all to jena-arq and just leave `Serializer` behind? `InitARQ` would call to be non-lifecycle managed initialization code in jena-core. That fixes the jena-core/jena-arq relationship. This may be less debt in the sense that it is a relationship the code depends on anyway. People using only jena-core aren't impacted - we actively discourage that but it happens. jena-core initialization happens via services currently but it can be dropped as it is using "services" to call itself, so that flexibility is unnecessary and it can just call itself in a fixed fashion. ) > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16440955#comment-16440955 ] ASF GitHub Bot commented on JENA-1524: -- Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/401#discussion_r182101777 --- Diff: apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle --- @@ -1,4 +1,4 @@ -org.apache.jena.system.InitJenaCore +org.apache.jena.sys.InitJenaCore --- End diff -- +1 to honesty. I hear tell it's the best policy :) In all seriousness, the alternative seems to me to build up debt. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16440946#comment-16440946 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/401#discussion_r182097398 --- Diff: jena-arq/src/main/java/org/apache/jena/system/JenaInit.java --- @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.system; + +import org.apache.jena.sys.JenaSystem; + +/** + * This is a temporary adapter for implementations to transition to [JENA-1524] + */ +public class JenaInit { --- End diff -- I'd prefer this to be called "JenaSystem" then init() is ``` @Deprecated public static void init() { org.apache.jena.sys.JenaSystem.init(); } ``` because this will work with existing code. If that's OK, I will do that as part of the merge. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16440947#comment-16440947 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/401#discussion_r182099487 --- Diff: apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle --- @@ -1,4 +1,4 @@ -org.apache.jena.system.InitJenaCore +org.apache.jena.sys.InitJenaCore --- End diff -- Ouch! Yes, the initialization services classes will be impacted. That means any customer extensions change but an intermediate subclass of JenaSubsystemLifecycle in the new "systems" package should provide a bridge. Or we can be honest and announce to custom extensions there are changes they need to be aware of. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16439562#comment-16439562 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/399 See https://github.com/apache/jena/pull/401. If I understood you correctly, the adapter `jena-arq:org.apache.jena.system.JenaInit` just provides a short cut for using the renamed ` jena-core:org.org.apache.jena.sys.JenaSystem` in the context of ` jena-arq` (for external implementations). The `jena-arq `services that formerly used ` jena-core:org.org.apache.jena.system.JenaSystem` and will now use ` jena-core:org.apache.jena.sys.JenaSystem` will continue to do so and not change their import to the ` jena-arq:org.apache.jena.system.JenaInit` adapter, correct? > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438860#comment-16438860 ] ASF GitHub Bot commented on JENA-1524: -- GitHub user christopher-johnson opened a pull request: https://github.com/apache/jena/pull/401 [JENA-1524] org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core per @afs > this renames of "jena-core:org.apache.jena.system" as "jena-core:org.apache.jena.sys", and puts an adapter class `JenaInit` in "jena-arq:org.apache.jena.system" that has two functions to call the real init and shutdown. > > `JenaInit` will be deprecated prior to removal quite quickly (in a very few release cycles). > > This way the impact is lessened: `org.apache.jena.system.Txn` is not repackaged. The adapter class approach does not work for calls from jena-core to jena-arq without reflection. You can merge this pull request into a Git repository by running: $ git pull https://github.com/christopher-johnson/jena rename-core-system Alternatively you can review and apply these changes as the patch at: https://github.com/apache/jena/pull/401.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #401 commit d82328d905b0f8ae40f60ffe800728824975 Author: Christopher Hanna JohnsonDate: 2018-04-15T21:24:12Z [JENA-1524] org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438850#comment-16438850 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson closed the pull request at: https://github.com/apache/jena/pull/399 > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438849#comment-16438849 ] ASF GitHub Bot commented on JENA-1524: -- Github user christopher-johnson commented on the issue: https://github.com/apache/jena/pull/399 it may be clearer to close this PR and submit a new one with "system" to "sys" changes to `org.apache.jena.core` rather than try to merge with this one since there is no overlap. > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438801#comment-16438801 ] ASF GitHub Bot commented on JENA-1524: -- GitHub user christopher-johnson opened a pull request: https://github.com/apache/jena/pull/400 [JENA-1524] Add to for each jar module See comments here: https://github.com/apache/jena/pull/399 It is possible that there are more artifacts that might want this. FYI: This does not include the following top level projects: apache-jena, apache-jena-libs, apache-jena-osgi, jena-elephas, jena-examples, jena-extras, jena-fuseki1, jena-fuseki, jena-integration-tests, jena-iri, jena-jdbc, jena-maven-tools, jena-permissions, jena-sdb, jena-shaded-guava You can merge this pull request into a Git repository by running: $ git pull https://github.com/christopher-johnson/jena automatic-modules Alternatively you can review and apply these changes as the patch at: https://github.com/apache/jena/pull/400.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #400 commit 669f75891d237f441ceab93f5083076c0a10a468 Author: Christopher Hanna JohnsonDate: 2018-04-15T18:32:11Z [JENA-1524] Add to for each jar module > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438760#comment-16438760 ] ASF GitHub Bot commented on JENA-1524: -- Github user afs commented on the issue: https://github.com/apache/jena/pull/399 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 engine. 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 cycles). 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 (v7.6.3#76005)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438743#comment-16438743 ] ASF GitHub Bot commented on JENA-1524: -- GitHub user christopher-johnson opened a pull request: https://github.com/apache/jena/pull/399 [JENA-1524] renames jena-arq org.apache.jena.system to org.apache.jena.sys The changes are superficial, but will break existing implementations. The thinking pattern here is shallow, and there may be better ways to restructure the `org.apache.jena.system` package (like merging the split in a new project). Since this PR is JPMS related, I also added the Automatic-Module-Name to `` for most of the projects. This ModuleFinder mechanism is documented [here](https://docs.oracle.com/javase/10/docs/api/java/lang/module/ModuleFinder.html#of(java.nio.file.Path...)). These names are consistent with semantics described in [this specification](https://docs.oracle.com/javase/specs/jls/se10/html/jls-6.html#jls-6.5) and follow the conventions of other Apache projects like `org.apache.commons.io` You can merge this pull request into a Git repository by running: $ git pull https://github.com/christopher-johnson/jena split-system Alternatively you can review and apply these changes as the patch at: https://github.com/apache/jena/pull/399.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #399 commit ee9fd831f588d02b500a78811b9a78c418cfc89e Author: Christopher Hanna JohnsonDate: 2018-04-15T13:35:51Z [JENA-1524] renames jena-arq org.apache.jena.system to org.apache.jena.sys adds Automatic-Module-Name to manifestEntries > 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)
[jira] [Commented] (JENA-1524) org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
[ https://issues.apache.org/jira/browse/JENA-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438681#comment-16438681 ] A. Soroka commented on JENA-1524: - Thanks for the report, [~christopher-johnson]. Both packages contain public API. This would be a breaking change. Do you have a PR for discussion? > 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)