Ah, right, I see that now. So it’s got to be a kind of “getCharacteristics()” method, but you are breaking that down into individual characteristics. Got it. Do you think it is worth trying to reflect the untransactional/transactional/abortable choice in the assembler language? Or is that meant to directly record the implementations that are being used?
--- A. Soroka The University of Virginia Library > On Feb 8, 2016, at 3:42 AM, Andy Seaborne <[email protected]> wrote: > > 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 >> >
