1) Don't ask whether the ABox is empty, if you don't need to
2) If you must ask, ask the graph of the base model, to avoid SDB layers
3) change contains() to use SELECT instead of ASK, because SDB implements ASK very poorly.
When the pause flag is set, the IndexingChangeListener will continue to accumulate changes even if there
are gaps in the stream. The listener will not submit a task until the indexer is unpaused.
Use no-argument constructors, supplying data through the ContextModelsUser interface as needed.
Add toString() methods to IndexingUriFinders, DocumentModifiers and SearchIndexExcluders
Create a bridge implementation of SearchIndexerImpl that just wraps around an old IndexBuilder.
Modify client code:
Application, BasicAuthenticator, SearchServiceController, SparqlUpdateApiController,
UpdateUrisInIndex and VClassGroupCache
Rewrite IndexController to use AJAX and to show the current status and history of the indexer events.
There are still some differences between the two, and I expect some answers from Jon and Brian regarding irregularities in the ontologies.
The Pellet libraries have not yet been removed.
Replace PelletListener with a TBoxReasonerModule in the Application.
The reasoner will be accessible only through here, not as a context attribute or through the WebappDaoFactory.
Split out the initialization of the TBox reasoner from SimpleReasonerSetup.
Break out the filtering of TBox changes into a ConfiguredReasonerListener.
Refactor the threading logic into a BasicTBoxReasonerDriver.
Add a factory for creating VitroBackgroundThreads in an Executor.
Isolate the actual reasoner into a TBoxReasoner implementation. In this case, PelletTBoxReasoner.
Combine the consistency flag, error flag, explanation, and running status into one TBoxReasonerStatus object.
Replace the JAR files with more current ones.
Add a one-line change to BaseInfGraph (from the Jena source), so it will work with Pellet 2.3.1
Adjust all implementations of Graph to include new methods and remove old ones.
Add annotations and generics to reduce compiler warnings.
Remove all dependencies on RDB, which is no longer supported.
This requires considerable refactoring of JenaIngestController, RDFUploadController, listModels.jsp
Refactor the ModelMaker uses
Remove VitroJenaModelMaker,
Revise VitroInterceptingModelMaker to be configurable for Config or Content models
Add debug logging code to ModelChangeImpl ChangeSetImpl, RDFServiceJena.
Add TDB support: RDFServiceFactoryTDB, RDFServiceTDB
Refactor RDFServiceJena and RDFServiceSDB so much of the code can be reused by RDFServiceTDB
Accomodate two RDFService instances - one for Configuration models and one for Content models.
Changes to RDFServiceUtils, RDFServiceSetup
Configuration models use TDB directory in Vitro home directory
Handle bulk updating:
Jena has deprecated bulk operations, and their models classes no longer use the bulk updaters
Create a VitroModelFactory to use instead of the ModelFactory, when bulk updating is required.
Create adapter classes: BulkUpdatingModel, BulkUpdatingOntModel, AbstractModelDecorator
Make the configuration model setup algorithms uniform
Combine ApplicationModelSetup and UserModelSetup into ConfigurationModelsSetup
Split deploy.properties into build.properties and runtime.properties, with runtime.properties going into the Vitro home directory. Modify ConfigurationProperties to locate the Vitro home directory, either by System property or JNDI Environment variable, or from build.properties, and to read from both build.properties and runtime.properties. Revise the install and upgrade documents for VIVO and Vitro. Change comments and error messages that referred to deploy.properties by name. Change vitro.home.directory to vitro.home