@Override public ResourceBuilder<OWS> prepare() { try { DeegreeCSW cfg = (DeegreeCSW) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); String id = cfg.getMetadataStoreId(); if ( id != null ) { dependencies.add( new DefaultResourceIdentifier( MetadataStoreProvider.class, id ) ); } else { for ( ResourceMetadata<?> md : workspace.getResourceManager( MetadataStoreManager.class ).getResourceMetadata() ) { softDependencies.add( md.getIdentifier() ); } } OWSMetadataProviderManager mmgr = workspace.getResourceManager( OWSMetadataProviderManager.class ); for ( ResourceMetadata<OWSMetadataProvider> md : mmgr.getResourceMetadata() ) { ResourceIdentifier<OWSMetadataProvider> mdId = md.getIdentifier(); if ( mdId.getId().equals( getIdentifier().getId() + "_metadata" ) ) { softDependencies.add( mdId ); } } return new CswBuilder( this, workspace, cfg ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }