On 08/02/16 00:03, A. Soroka wrote:
Is it worth trying to factor Transactional apart into
TransactionalPossiblyWithAbort and TransactionalWithAbort? (With
better names, of course! {grin})
There's a runtime/dynamic aspect. Whether a DSG can provide abort can
depend on what it's wrapping - not all DSG are base units of storage
like DatasetGraphInMemory.
e.g. DatasetGraphWrapper.
e.g. jena-text is a case where it is not a static feature that can be
compiled in. In that case, whether abort is available depends on the
underlying dataset graph has abort or not.
Andy
---
A. Soroka
The University of Virginia Library
On Feb 6, 2016, at 11:15 AM, Andy Seaborne <[email protected]> wrote:
JENA-1089, JENA-1131
DatasetGraphs now support the Transactional interface, rather than it being an
optional extra. Dataset itself already had Transactional.
Implementations of DatasetGraph now need to opt out of transactions via the
TransactionalNotSupported interface.
DatasetGraph and Dataset provide
supportTransactions() : begin/commit/end
supportTransactionAbort() : and also abort.
Some of the compound DSGs can't provide abort properly. Crashing out of a
transaction with an exception needs proper abort.
DatasetGraphText provides abort if and only if the underlying data does.
jena-text is the most complicated part of the changes. All the tests pass but
if you are a big user of jena-text with update it would be worth checking the
changes.
Rob - I switched the tests for jena-jdbc-driver-mem to use the transaction
memory dataset implementation. In the course of that, I
found and fixed an oddity in jena-jdbc-driver-mem:MemConnection. The code
comments discuss the initialization issue.
Andy