states = new ResourceStates(); locationHandler = new DefaultLocationHandler( directory, resourceManagers, states ); errors.clear(); initClassloader();
@Override public void initAll() { startup(); errors.clear(); scan(); PreparedResources prepared = prepare(); String msg = "Dependent resource " + dep + " failed to initialize."; LOG.error( "Unable to build resource {}: " + msg, md.getIdentifier() ); errors.registerError( md.getIdentifier(), msg ); continue outer; Resource res = prepared.getBuilder( md.getIdentifier() ).build(); if ( res == null ) { errors.registerError( md.getIdentifier(), "Unable to prepare." ); states.setState( md.getIdentifier(), Error ); LOG.error( "Unable to build resource {}.", md.getIdentifier() ); states.setState( md.getIdentifier(), Error ); String msg = "Unable to build resource " + md.getIdentifier() + ": " + ex.getLocalizedMessage(); errors.registerError( md.getIdentifier(), msg ); LOG.error( msg ); LOG.trace( "Stack trace:", ex );
if ( res == null ) { states.setState( metadata.getIdentifier(), Error ); errors.registerError( metadata.getIdentifier(), "Unable to build resource." ); LOG.error( "Unable to build resource {}.", metadata.getIdentifier() ); throw new ResourceInitException( "Unable to build resource " + metadata.getIdentifier() + "." ); states.setState( metadata.getIdentifier(), Error ); String msg = "Unable to build resource " + metadata.getIdentifier() + ": " + ex.getLocalizedMessage(); errors.registerError( metadata.getIdentifier(), msg ); LOG.error( msg ); LOG.trace( "Stack trace:", ex );
} catch ( Exception e ) { String msg = "Error preparing resource " + md.getIdentifier() + ": " + e.getLocalizedMessage(); errors.registerError( md.getIdentifier(), msg ); LOG.error( msg ); LOG.trace( "Stack trace:", e );
locationHandler = null; startedUp = false; errors.clear();
@Override public <T extends Resource> void destroy( ResourceIdentifier<T> id ) { ResourceNode<T> node = graph.getNode( id ); if ( node == null ) { return; } for ( ResourceNode<? extends Resource> n : node.getDependents() ) { destroy( n.getMetadata().getIdentifier() ); } T res = (T) resources.get( id ); if ( res != null ) { LOG.info( "Shutting down {}.", id ); res.destroy(); } states.setState( id, null ); removeMetadataFromResourceManager( id ); resources.remove( id ); errors.clear( id ); }