Show exclusions count as separate from deletions count.
When there is an error on the Ajax call, display the error status and stop asking for refreshes.
When a rebuild is requested, redirect to just status, so refreshing the page would not request another rebuild.
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.
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.
Add OntModelCache to the top of the stack of RDF data structures.
Add DataStructuresProvider to the bottom of the stack.
Redesign ModelAccess method signatures.
Create the ShowSources page.
Remove RequestModelsPrep, except for setting the Collator.
Reduce the complexity of ContentModelsSetup and ConfigurationModelsSetup.
VIVO-225 VIVO-819 VIVO-820 VIVO-821 VIVO-823 VIVO-832
SparqlQueryServlet was JSP-based, so delete the JSP also.
SparqlQueryController is Freemarker-based, and is a this shell around the SparqlQueryApiExecutor.
For some reason, the password-reset template was too long to do proper substitution on the last line. Removing some of the intermediate content fixed the problem, but without appropriate content. I had been unhappy with the @@file approach anyway, so I went back to language-specific templates for each type of message.