class SingletonRuntimeManager extends AbstractRuntimeManager {

    @Override
    public void close() {
        if (singleton == null) {
            return;
        }
        super.close();
        // dispose singleton session only when manager is closing
        try {
        	removeRuntimeFromTaskService();
        } catch (UnsupportedOperationException e) {
        	logger.debug("Exception while closing task service, was it initialized? {}", e.getMessage());
        }
        if (this.singleton instanceof Disposable) {
            ((Disposable) this.singleton).dispose();
        }
        factory.close();
        this.singleton = null;   
    }

    public  SingletonRuntimeManager();
    public  SingletonRuntimeManager(RuntimeEnvironment environment, SessionFactory factory, TaskServiceFactory taskServiceFactory, String identifier);

}