[ 
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)

Reply via email to