You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (Jira)" <ji...@apache.org> on 2021/03/16 19:36:00 UTC
[jira] [Updated] (JENA-2071) Deprecate DatasetChanges
[ https://issues.apache.org/jira/browse/JENA-2071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne updated JENA-2071:
--------------------------------
Description:
The interface {{org.apache.jena.sparql.core.DatasetChanges}} is not transaction-aware.
If there is to be such a change interface, the contract needs to be sorted out as to how it interacts with transactions and quad visibility while a transaction is in progress and not yet committed. This would mean alterations, not just incremental additions, and a clear contract of its behaviour.
This proposal is to deprecate, warning of removal of the current code to make space for a future, better functionality.
{{DatasetChanges}} is intertwined with {{DatasetGraphText}} which manages the transaction interactions itself.
Proposal: create space for future change. For Jena 4.0.0:
# Move the machinery and tests of {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}} into jena-text
# Rename the moved classes so there are no name clashes of classes with the same name.
# Deprecate the existing jena-arq {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}}, with warnings that they will be removed/changed because they are not transaction-aware.
# Remove usage from jena-tdb2 (it seems to be inaccessible) - there isn't the equivalent in jena-tdb.
This leaves jena-text functionality unchanged.
For information: There is a more sophisticated [DatasetGraphChanges in RDF Delta|https://github.com/afs/rdf-delta/blob/main/rdf-patch/src/main/java/org/seaborne/patch/system/DatasetGraphChanges.java] which runs "inside" the transaction (it can see the changes as they happen) and also hooks into the transaction lifecycle.
was:
The interface {{org.apache.jena.sparql.core.DatasetChanges}} is not transaction-aware.
If there is to be such a change interface, the contract needs to be sorted out as to how it interacts with transactions and quad visibility while a transaction is in progress and not yet committed. This would mean alterations, not just incremental additions, and a clear contract of its behaviour.
This proposal is to deprecate, warning of removal of the current code to make space for a future, better functionality.
{{DatasetChanges}} is intertwined with {{DatasetGraphText}} which manages the transaction interactions itself.
Proposal: create space for future change. For Jena 4.0.0:
1. Move the machinery and tests of {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}} into jena-text
1. Rename the moved classes so there are no name clashes of classes with the same name.
1. Deprecate the existing jena-arq {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}}, with warnings that they will be removed/changed because they are not transaction-aware.
1. Remove usage from jena-tdb2 (it seems to be inaccessible) - there isn't the equivalent in jena-tdb.
This deprecates usage of the general interface from Jena, prior to removal or major revision the general interface from Jena.
It leaves jena-text functionality unchanged.
There is a more sophisticated [DatasetGraphChanges in RDF Delta](https://github.com/afs/rdf-delta/blob/main/rdf-patch/src/main/java/org/seaborne/patch/system/DatasetGraphChanges.java) which runs "inside" the transaction (it can see the changes as they happen) and also hooks into the transaction lifecycle.
> Deprecate DatasetChanges
> ------------------------
>
> Key: JENA-2071
> URL: https://issues.apache.org/jira/browse/JENA-2071
> Project: Apache Jena
> Issue Type: Improvement
> Components: ARQ, Text
> Affects Versions: Jena 3.17.0
> Reporter: Andy Seaborne
> Assignee: Andy Seaborne
> Priority: Major
> Fix For: Jena 4.0.0
>
>
> The interface {{org.apache.jena.sparql.core.DatasetChanges}} is not transaction-aware.
> If there is to be such a change interface, the contract needs to be sorted out as to how it interacts with transactions and quad visibility while a transaction is in progress and not yet committed. This would mean alterations, not just incremental additions, and a clear contract of its behaviour.
> This proposal is to deprecate, warning of removal of the current code to make space for a future, better functionality.
> {{DatasetChanges}} is intertwined with {{DatasetGraphText}} which manages the transaction interactions itself.
> Proposal: create space for future change. For Jena 4.0.0:
> # Move the machinery and tests of {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}} into jena-text
> # Rename the moved classes so there are no name clashes of classes with the same name.
> # Deprecate the existing jena-arq {{DatasetChanges}}/{{DatasetGraphMonitor}}/{{QuadAction}}, with warnings that they will be removed/changed because they are not transaction-aware.
> # Remove usage from jena-tdb2 (it seems to be inaccessible) - there isn't the equivalent in jena-tdb.
> This leaves jena-text functionality unchanged.
> For information: There is a more sophisticated [DatasetGraphChanges in RDF Delta|https://github.com/afs/rdf-delta/blob/main/rdf-patch/src/main/java/org/seaborne/patch/system/DatasetGraphChanges.java] which runs "inside" the transaction (it can see the changes as they happen) and also hooks into the transaction lifecycle.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)