private RemoteWMTS getRemoteWmts( String remoteWmtsId ) throws ResourceInitException { RemoteOWS wmts = workspace.getResource( RemoteOWSProvider.class, remoteWmtsId ); if ( !( wmts instanceof RemoteWMTS ) ) { String msg = "The remote WMTS id " + remoteWmtsId + " must correspond to a WMTS instance (was " + wmts.getClass().getSimpleName() + ")"; throw new ResourceInitException( msg ); } return (RemoteWMTS) wmts; }
@Override public T build() { final T t = getBean( clazz, beanName ); try { wireMetadata( t.getClass(), t ); } catch ( Exception e ) { LOG.debug( "Couldn't inject metadata.", e ); throw new ResourceInitException( "Couldn't inject metadata.", e ); } return t; } }
@Override public void init() { try { getConnection().close(); } catch ( SQLException e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<ConnectionProvider> prepare() { try { final Object cfg = unmarshall( JAXB_PACKAGE, SCHEMA_URL, location.getAsStream(), workspace ); return new DataSourceConnectionProviderBuilder( (DataSourceConnectionProvider) cfg, this, workspace ); } catch ( Exception e ) { LOG.error( e.getLocalizedMessage(), e ); throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public RemoteOWS build() { WMTSClient client = null; try { client = createClient(); } catch ( Exception e ) { String msg = "Could not create WMTS client for Remote WMTS store config at '" + metadata.getIdentifier() + "': " + e.getLocalizedMessage(); throw new ResourceInitException( msg, e ); } return new RemoteWMTS( client, metadata ); }
@Override public TileStore build() { try { GdalTileDataSetMapBuilder builder = new GdalTileDataSetMapBuilder( workspace, metadata.getLocation(), cfg ); Map<String, TileDataSet> map = builder.buildTileDataSetMap(); return new GenericTileStore( map, metadata ); } catch ( Exception e ) { e.printStackTrace(); throw new ResourceInitException( "Unable to build GDALTileStore: " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<BatchedMTStore> prepare() { try { BatchedMTFileStoreConfig config = (BatchedMTFileStoreConfig) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); return new BatchedMTFileStoreBuilder( config, this ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to parse config: " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<LayerStore> prepare() { try { GDALLayers cfg; cfg = (GDALLayers) JAXBUtils.unmarshall( "org.deegree.layer.persistence.gdal.jaxb", provider.getSchema(), location.getAsStream(), workspace ); return new GdalLayerStoreBuilder( cfg, workspace, this ); } catch ( Exception e ) { throw new ResourceInitException( "Error while creating GDAL layers: " + e.getLocalizedMessage(), e ); } } }
@Override public ResourceBuilder<FeatureStore> prepare() { try { ShapeFeatureStoreConfig config = (ShapeFeatureStoreConfig) JAXBUtils.unmarshall( ShapeFeatureStoreProvider.CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); return new ShapeFeatureStoreBuilder( config, location, this ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<RenderableStore> prepare() { try { RenderableFileStoreConfig config = (RenderableFileStoreConfig) unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); return new FileRenderableStoreBuilder( config, this ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileMatrixSet> prepare() { try { GeoTIFFTileMatrixSetConfig cfg = (GeoTIFFTileMatrixSetConfig) JAXBUtils.unmarshall( "org.deegree.tile.tilematrixset.geotiff.jaxb", provider.getSchema(), location.getAsStream(), workspace ); return new GeoTiffTileMatrixSetBuilder( cfg, this ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileMatrixSet> prepare() { try { InputStream is = location.getAsStream(); URL schemaUrl = provider.getSchema(); GdalTileMatrixSetConfig cfg = (GdalTileMatrixSetConfig) unmarshall( JAXB_PACKAGE, schemaUrl, is, workspace ); return new GdalTileMatrixSetBuilder( cfg, this ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public TileStore build() { try { GeoTiffTileDataSetMapBuilder builder = new GeoTiffTileDataSetMapBuilder( workspace, metadata.getLocation(), cfg ); Map<String, TileDataSet> map = builder.buildTileDataSetMap(); return new GenericTileStore( map, metadata ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to build GeoTiff tile store: " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<RemoteOWS> prepare() { try { RemoteWMTSConfig cfg = unmarshall( location.getAsStream() ); return new RemoteWmtsBuilder( cfg, this ); } catch ( Exception e ) { String msg = "Remote WMTS store config '" + location.getIdentifier() + "' could not be parsed: " + e.getLocalizedMessage(); throw new ResourceInitException( msg, e ); } }
@Override public ResourceBuilder<OWSMetadataProvider> prepare() { try { JAXBElement<DeegreeServicesMetadataType> md; md = (JAXBElement<DeegreeServicesMetadataType>) unmarshall( "org.deegree.services.jaxb.metadata", provider.getSchema(), location.getAsStream(), workspace ); return new DefaultOwsMetadataProviderBuilder( md, this ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to read service metadata config: " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileMatrixSet> prepare() { TileMatrixSetConfig cfg = null; try { cfg = (TileMatrixSetConfig) unmarshall( "org.deegree.tile.tilematrixset.jaxb", provider.getSchema(), location.getAsStream(), workspace ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } return new DefaultTileMatrixSetBuilder( cfg, this ); }
@Override public ResourceBuilder<RemoteOWS> prepare() { try { org.deegree.remoteows.wms_new.jaxb.RemoteWMS cfg; cfg = (org.deegree.remoteows.wms_new.jaxb.RemoteWMS) unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); return new RemoteWmsBuilder( cfg, this ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to prepare " + location.getIdentifier() + ": " + e.getLocalizedMessage(), e ); } }
@Override public MetadataStore<? extends MetadataRecord> build() { try { ConnectionProvider prov = workspace.getResource( ConnectionProviderProvider.class, cfg.getJDBCConnId() ); SQLDialect dialect = prov.getDialect(); return new ISOMetadataStore( cfg, dialect, metadata, workspace ); } catch ( Exception e ) { String msg = Messages.getMessage( "ERROR_IN_CONFIG_FILE", metadata.getIdentifier(), e.getMessage() ); throw new ResourceInitException( msg, e ); } }
@Override public ResourceBuilder<LayerStore> prepare() { try { RemoteWMSLayers cfg = (RemoteWMSLayers) unmarshall( "org.deegree.layer.persistence.remotewms.jaxb", provider.getSchema(), location.getAsStream(), workspace ); String id = cfg.getRemoteWMSId(); dependencies.add( new DefaultResourceIdentifier<RemoteOWS>( RemoteOWSProvider.class, id ) ); return new RemoteWmsLayerStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Could not parse remote WMS layer store config.", e ); } }
@Override public LayerStore build() { String id = cfg.getRemoteWMSId(); RemoteOWS store = workspace.getResource( RemoteOWSProvider.class, id ); if ( !( store instanceof RemoteWMS ) ) { throw new ResourceInitException( "The remote WMS store with id " + id + " is not available or not of type WMS." ); } RemoteWmsLayerBuilder builder = new RemoteWmsLayerBuilder( ( (RemoteWMS) store ).getClient(), cfg ); Map<String, Layer> map = builder.buildLayerMap(); return new MultipleLayerStore( map, metadata ); }