@Override public void activate() { File f = new File( file.getParentFile(), identifier.getId() + ".xml" ); file.renameTo( f ); file = f; }
public <T extends Resource> void addBuilder( ResourceIdentifier<T> id, ResourceBuilder<T> builder ) { map.put( workspace.getResourceMetadata( id.getProvider(), id.getId() ), builder ); }
@Override public <T extends Resource> List<ResourceIdentifier<T>> getResourcesOfType( Class<? extends ResourceProvider<T>> providerClass ) { List<ResourceIdentifier<T>> list = new ArrayList<ResourceIdentifier<T>>(); for ( ResourceIdentifier<?> id : resources.keySet() ) { if ( id.getProvider().equals( providerClass ) ) { list.add( (ResourceIdentifier) id ); } } return list; }
@Override public void addExtraResource( ResourceLocation<? extends Resource> location ) { List<ResourceLocation<? extends Resource>> list = extraResources.get( location.getIdentifier().getProvider() ); if ( list == null ) { list = new ArrayList<ResourceLocation<? extends Resource>>(); extraResources.put( location.getIdentifier().getProvider(), list ); } list.add( location ); }
@Override public void deactivate() { File f = new File( file.getParentFile(), identifier.getId() + ".ignore" ); file.renameTo( f ); file = f; }
@Override public boolean equals( Object obj ) { if ( !( obj instanceof ResourceIdentifier ) ) { return false; } ResourceIdentifier<? extends Resource> id = (ResourceIdentifier<?>) obj; return getId().equals( id.getId() ) && getProvider().equals( id.getProvider() ); }
@Override public <T extends Resource> void add( ResourceLocation<T> location ) { LOG.info( "Scanning {}", location.getIdentifier() ); ResourceManager<T> mgr = (ResourceManager) resourceManagers.get( location.getIdentifier().getProvider() ); ResourceMetadata<T> md = mgr.add( location ); resourceMetadata.put( md.getIdentifier(), md ); }
@Override protected void read( List<ResourceLocation<OWSMetadataProvider>> list ) { list = new ArrayList<ResourceLocation<OWSMetadataProvider>>( list ); ListIterator<ResourceLocation<OWSMetadataProvider>> iter = list.listIterator(); while ( iter.hasNext() ) { ResourceLocation<OWSMetadataProvider> loc = iter.next(); if ( !loc.getIdentifier().getId().endsWith( "_metadata" ) ) { iter.remove(); } } super.read( list ); }
public <T extends Resource> ResourceBuilder<T> getBuilder( ResourceIdentifier<T> id ) { ResourceBuilder<T> builder = (ResourceBuilder<T>) map.get( workspace.getResourceMetadata( id.getProvider(), id.getId() ) ); if ( builder == null ) { builder = workspace.prepare( id ); } return builder; }
@Override protected void read( List<ResourceLocation<TileStore>> list ) { ListIterator<ResourceLocation<TileStore>> iter = list.listIterator(); while ( iter.hasNext() ) { ResourceLocation<TileStore> loc = iter.next(); if ( loc.getIdentifier().getId().startsWith( "tilematrixset" ) ) { iter.remove(); } } super.read( list ); }
/** * Returns all available processes. * * @return available process, may be empty, but never <code>null</code> */ public Map<CodeType, WPSProcess> getProcesses() { Map<CodeType, WPSProcess> processes = new HashMap<CodeType, WPSProcess>(); for ( ResourceIdentifier<ProcessProvider> rid : workspace.getResourcesOfType( ProcessProviderProvider.class ) ) { ProcessProvider prov = workspace.getResource( rid.getProvider(), rid.getId() ); if ( prov != null ) { Map<CodeType, ? extends WPSProcess> idToProcess = prov.getProcesses(); if ( idToProcess != null ) { processes.putAll( idToProcess ); } } } return processes; }
@Override protected void read( List<ResourceLocation<OWS>> list ) { ListIterator<ResourceLocation<OWS>> iter = list.listIterator(); while ( iter.hasNext() ) { ResourceLocation<OWS> loc = iter.next(); if ( loc.getIdentifier().getId().endsWith( "_metadata" ) ) { iter.remove(); } if ( loc.getIdentifier().getId().equals( "metadata" ) | loc.getIdentifier().getId().equals( "main" ) ) { iter.remove(); } } super.read( list ); }
/** * Returns the process with the specified identifier. * * @param id * identifier of the process, must not be <code>null</code> * @return process with the specified identifier or <code>null</code> if no such process exists */ public WPSProcess getProcess( CodeType id ) { WPSProcess process = null; for ( ResourceIdentifier<ProcessProvider> rid : workspace.getResourcesOfType( ProcessProviderProvider.class ) ) { ProcessProvider prov = workspace.getResource( rid.getProvider(), rid.getId() ); process = prov.getProcess( id ); if ( process != null ) { break; } } return process; }
public OWS getSingleConfiguredService() { List<ResourceIdentifier<OWS>> owss = workspace.getResourcesOfType( OWSProvider.class ); if ( owss.size() == 1 ) { return workspace.getResource( OWSProvider.class, owss.get( 0 ).getId() ); } return null; }
@Override public <T extends Resource> ResourceLocation<T> persist( ResourceLocation<T> location ) { ResourceManager<?> mgr = managers.get( location.getIdentifier().getProvider() ); File file = new File( directory, mgr.getMetadata().getWorkspacePath() ); file = new File( file, location.getIdentifier().getId() + ".xml" ); file.getParentFile().mkdirs(); try { // copy to avoid persisting from same file File tmp = File.createTempFile( "config", ".xml" ); FileUtils.copyInputStreamToFile( location.getAsStream(), tmp ); tmp.renameTo( file ); return new DefaultResourceLocation<T>( file, location.getIdentifier() ); } catch ( Exception e ) { throw new ResourceException( "Could not persist resource location: " + e.getLocalizedMessage(), e ); } }
/** * Returns the service controller instance based on the class of the service controller. * * @param c * class of the requested service controller, e.g. <code>WPSController.getClass()</code> * @return the instance of the requested service used by OGCFrontController, or null if no such service controller * is active */ public List<OWS> getByOWSClass( Class<?> c ) { List<ResourceIdentifier<OWS>> list = workspace.getResourcesOfType( OWSProvider.class ); List<OWS> services = new ArrayList<OWS>(); for ( ResourceIdentifier<OWS> id : list ) { OWS ows = workspace.getResource( OWSProvider.class, id.getId() ); if ( ows != null ) { if ( c == ows.getClass() ) { services.add( ows ); } } } return services; }
List<ResourceIdentifier<FeatureStore>> stores = workspace.getResourcesOfType( FeatureStoreProvider.class ); for ( ResourceIdentifier<FeatureStore> id : stores ) { FeatureStore store = workspace.getResource( id.getProvider(), id.getId() ); if ( store != null ) { addStore( store );
public void transform() throws TransformerException, XMLStreamException { OwsManager mgr = workspace.getResourceManager( OwsManager.class ); List<OWS> wmss = mgr.getByOWSClass( WMSController.class ); for ( OWS ows : wmss ) { ResourceMetadata<? extends Resource> md = ows.getMetadata(); ResourceIdentifier<? extends Resource> id = md.getIdentifier(); File loc = md.getLocation().resolveToFile( id.getId() + ".xml" ); ByteArrayOutputStream bos = new ByteArrayOutputStream(); transformer.transform( new StreamSource( loc ), new StreamResult( bos ) ); ThemeXmlStreamEncoder.writeOut( bos ); WorkspaceUtils.activateSynthetic( workspace, ThemeProvider.class, id.getId(), new String( bos.toByteArray(), Charset.forName( "UTF-8" ) ) ); } }
/** * Destroys and initializes all resources connected to the resource with the given id. * * @param workspace * may not be <code>null</code> * @param id * may not be <code>null</code> */ public static void reinitializeChain( Workspace workspace, ResourceIdentifier<? extends Resource> id ) { ResourceNode<? extends Resource> node = workspace.getDependencyGraph().getNode( id ); List<ResourceMetadata<? extends Resource>> list = new ArrayList<ResourceMetadata<? extends Resource>>(); ResourceMetadata<? extends Resource> meta = workspace.getResourceMetadata( id.getProvider(), id.getId() ); if ( meta == null ) { return; } list.add( meta ); collectDependencies( list, node ); collectDependents( list, node ); ResourceGraph g = new ResourceGraph( list ); list = g.toSortedList(); workspace.destroy( list.get( 0 ).getIdentifier() ); for ( ResourceMetadata<? extends Resource> md : list ) { workspace.add( md.getLocation() ); workspace.init( md.getIdentifier(), null ); } }
private void watchTimeout( final OWS ows, final String requestName ) { if ( requestWatchdog != null ) { final String serviceId = ows.getMetadata().getIdentifier().getId(); requestWatchdog.watchCurrentThread( serviceId, requestName ); } }