NIHVIVO-3810 intercepting RDFService.close() when using a factory with single service instance
This commit is contained in:
parent
ffce3efe91
commit
0b014fb3de
2 changed files with 100 additions and 2 deletions
|
@ -152,7 +152,9 @@ public class WebappDaoFactorySDB extends WebappDaoFactoryJena {
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
super.close();
|
super.close();
|
||||||
//this.rdfService.close();
|
if (this.rdfService != null) {
|
||||||
|
this.rdfService.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ReconnectingDatasetFactory implements DatasetWrapperFactory {
|
private class ReconnectingDatasetFactory implements DatasetWrapperFactory {
|
||||||
|
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.rdfservice.impl;
|
package edu.cornell.mannlib.vitro.webapp.rdfservice.impl;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeListener;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeListener;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeSet;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||||
|
@ -17,7 +21,7 @@ public class RDFServiceFactorySingle implements RDFServiceFactory {
|
||||||
private RDFService rdfService;
|
private RDFService rdfService;
|
||||||
|
|
||||||
public RDFServiceFactorySingle(RDFService rdfService) {
|
public RDFServiceFactorySingle(RDFService rdfService) {
|
||||||
this.rdfService = rdfService;
|
this.rdfService = new UnclosableRDFService(rdfService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,5 +38,97 @@ public class RDFServiceFactorySingle implements RDFServiceFactory {
|
||||||
public void unregisterListener(ChangeListener listener) throws RDFServiceException {
|
public void unregisterListener(ChangeListener listener) throws RDFServiceException {
|
||||||
this.rdfService.unregisterListener(listener);
|
this.rdfService.unregisterListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class UnclosableRDFService implements RDFService {
|
||||||
|
|
||||||
|
private RDFService s;
|
||||||
|
|
||||||
|
public UnclosableRDFService(RDFService rdfService) {
|
||||||
|
this.s = rdfService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean changeSetUpdate(ChangeSet changeSet)
|
||||||
|
throws RDFServiceException {
|
||||||
|
return s.changeSetUpdate(changeSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void newIndividual(String individualURI, String individualTypeURI)
|
||||||
|
throws RDFServiceException {
|
||||||
|
s.newIndividual(individualURI, individualTypeURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void newIndividual(String individualURI,
|
||||||
|
String individualTypeURI, String graphURI)
|
||||||
|
throws RDFServiceException {
|
||||||
|
s.newIndividual(individualURI, individualTypeURI, graphURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream sparqlConstructQuery(String query,
|
||||||
|
ModelSerializationFormat resultFormat)
|
||||||
|
throws RDFServiceException {
|
||||||
|
return s.sparqlConstructQuery(query, resultFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream sparqlDescribeQuery(String query,
|
||||||
|
ModelSerializationFormat resultFormat)
|
||||||
|
throws RDFServiceException {
|
||||||
|
return s.sparqlDescribeQuery(query, resultFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream sparqlSelectQuery(String query,
|
||||||
|
ResultFormat resultFormat) throws RDFServiceException {
|
||||||
|
return s.sparqlSelectQuery(query, resultFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean sparqlAskQuery(String query) throws RDFServiceException {
|
||||||
|
return s.sparqlAskQuery(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getGraphURIs() throws RDFServiceException {
|
||||||
|
return s.getGraphURIs();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getGraphMetadata() throws RDFServiceException {
|
||||||
|
s.getGraphMetadata();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultWriteGraphURI() throws RDFServiceException {
|
||||||
|
return s.getDefaultWriteGraphURI();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(ChangeListener changeListener)
|
||||||
|
throws RDFServiceException {
|
||||||
|
s.registerListener(changeListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void unregisterListener(ChangeListener changeListener)
|
||||||
|
throws RDFServiceException {
|
||||||
|
s.unregisterListener(changeListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChangeSet manufactureChangeSet() {
|
||||||
|
return s.manufactureChangeSet();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() {
|
||||||
|
// Don't close s. It's being used by everybody.
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue