On 04/09/12 08:30, Dave Reynolds wrote:
On 03/09/12 18:33, Andy Seaborne wrote:
As part of wanting to tidy up and reduce the "core" of Jena, I'd like to
propose we
Remove BulkUpdateHandler interface
Migrate it's few useful operation to Graph.
Start to provide reification with "standard" only.
graph.QueryHandler only used to support reification.
Seems reasonable. I've used BulkUpdateHandler in client code on the
assumption that a store *might* optimize the updates but at least some
of those cases are, or could be made, add(Graph) calls.
Presumably this would this be a normal deprecate-then-remove-later cycle?
The Model operations remain -
Model.add(Statement[])
Model.add(StmtIterator iter)
Model.add(List<Statement> statements)
We could also consider simplification at the Model level- that wasn't on
my list.
It's interesting if you're using Graph level in an application - I'd
like to promote the Graph "SPI" as a more formally API after the
cleaning up.
Is that code still in use?
At the SPI level (Graph API), there is less of a contract on migration.
The reasoner does use the bulk update handler - but that's in-codebase
so that will just be cleaned up as part of the change. (Elsewhere in
the main code base most calls to getBulkUpdateHandler are ...
implementations of getBulkUpdateHandler over another graph!)
TDB has a bulk update handler to do removeAll and remove(s,p,o) without
the problems isomorphic to CCME.
SDB has a bulk update handler but the implementation of removeAll is in
the graph anyway.
In executing on this, I'd do at least a local deprecation cycle to track
down and migrate the current code without needing a local big bang.
Then at least a minor number version change to 2.10.0 would be good when
the change happens.
Observation on the deprecate-remove cycle: we know people don't upgrade
incrementally because they don't need to.
Another issue on the release pipeline is that some users are not testing
the development builds, only checking after a release. That's bad for
them and less than helpful for us. I don't want the effect of this to
be making work for the project. We make the deliverables in exactly the
form we release in every night so the only difference is location.
Andy
Dave