55 lines
1.6 KiB
Java
55 lines
1.6 KiB
Java
package org.gcube.informationsystem.collector.impl.porttypes;
|
|
|
|
import org.globus.wsrf.utils.FaultHelper;
|
|
import org.oasis.wsrf.faults.BaseFaultType;
|
|
|
|
import org.gcube.common.core.contexts.GCUBEServiceContext;
|
|
import org.gcube.common.core.porttypes.GCUBEPortType;
|
|
import org.gcube.informationsystem.collector.impl.contexts.ICServiceContext;
|
|
import org.gcube.informationsystem.collector.impl.xmlstorage.exist.State;
|
|
|
|
/**
|
|
* TODO: Manuele, don't forget to add a comment for this new type!!
|
|
*
|
|
* @author Manuele Simi (ISTI-CNR)
|
|
*
|
|
*/
|
|
public class XMLStorageAccess extends GCUBEPortType {
|
|
|
|
/** {@inheritDoc} */
|
|
@Override
|
|
protected GCUBEServiceContext getServiceContext() {
|
|
return ICServiceContext.getContext();
|
|
}
|
|
|
|
/**
|
|
* Disposes the XMLStorage
|
|
*
|
|
* @throws BaseFaultType if the shutdown fails
|
|
*/
|
|
public void dispose() throws BaseFaultType {
|
|
try {
|
|
logger.info("Dispose operation invoked");
|
|
logger.info("trying to shutdown the storage instances...");
|
|
try {
|
|
State.storage_manager.shutdown();
|
|
State.query_manager.shutdown();
|
|
} catch (NullPointerException se) {/* nothng to do */
|
|
}
|
|
State.storage_manager = null;
|
|
State.query_manager = null;
|
|
// request the interruption of the sweeper thread
|
|
State.sweeperT.interrupt();
|
|
logger.info("done");
|
|
} catch (Exception e) {
|
|
logger.error("unable to pose the IC with success ", e);
|
|
BaseFaultType fault = new BaseFaultType();
|
|
FaultHelper faultHelper = new FaultHelper(fault);
|
|
faultHelper.addFaultCause(e);
|
|
faultHelper
|
|
.addDescription("-IC service: Unable to pose the service");
|
|
throw fault;
|
|
}
|
|
}
|
|
}
|