private WPSRequestType getRequestTypeByName( String requestName ) throws OWSException { WPSRequestType requestType = null; try { requestType = (WPSRequestType) ( (ImplementationMetadata) ( (OWSProvider) metadata.getProvider() ).getImplementationMetadata() ).getRequestTypeByName( requestName ); } catch ( IllegalArgumentException e ) { throw new OWSException( e.getMessage(), OPERATION_NOT_SUPPORTED ); } return requestType; }
/** * @return the parsed ServiceConfiguration * @throws XMLProcessingException */ public static ServiceConfiguration parse( Workspace workspace, ResourceMetadata<OWS> metadata ) throws XMLProcessingException { try { DeegreeWCS wcsConf = (DeegreeWCS) unmarshall( "org.deegree.services.jaxb.wcs", ( (OWSProvider) metadata.getProvider() ).getSchema(), metadata.getLocation().getAsStream(), workspace ); return wcsConf.getServiceConfiguration(); } catch ( JAXBException e ) { throw new XMLProcessingException( e.getMessage(), e ); } }
/** * @param confFileURL * @param configVersionString * @throws ResourceInitException */ protected void checkConfigVersion( String confFileURL, String configVersionString ) throws ResourceInitException { Version configVersion = Version.parseVersion( configVersionString ); if ( !( (OWSProvider) metadata.getProvider() ).getImplementationMetadata().getSupportedConfigVersions().contains( configVersion ) ) { LOG.error( "" ); LOG.error( "*** Configuration version mismatch ***", confFileURL ); LOG.error( "" ); StringBuilder msg = new StringBuilder( "File uses config version " ).append( configVersion ); msg.append( ", but this deegree build only supports version(s): " ); boolean separatorNeeded = false; for ( Version supportedVersion : ( (OWSProvider) metadata.getProvider() ).getImplementationMetadata().getSupportedConfigVersions() ) { msg.append( supportedVersion ); if ( separatorNeeded ) { msg.append( "," ); } separatorNeeded = true; } msg.append( " for this file type. Information on resolving this issue can be found at 'http://wiki.deegree.org/deegreeWiki/deegree3/ConfigurationVersions'. " ); throw new ResourceInitException( msg.toString() ); } }
private void initOfferedVersions( SupportedVersions supportedVersions ) { List<String> versions = null; if ( supportedVersions != null ) { versions = supportedVersions.getVersion(); } if ( versions == null || versions.isEmpty() ) { LOG.info( "No protocol versions specified. Activating all implemented versions." ); ImplementationMetadata<?> md = ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata(); versions = new ArrayList<String>( md.getImplementedVersions().size() ); for ( Version version : md.getImplementedVersions() ) { versions.add( version.toString() ); } } validateAndSetOfferedVersions( versions ); }
private void initOfferedVersions( SupportedVersions supportedVersions ) { List<String> versions = null; if ( supportedVersions != null ) { versions = supportedVersions.getVersion(); } if ( versions == null || versions.isEmpty() ) { LOG.info( "No protocol versions specified. Activating all implemented versions." ); ImplementationMetadata<?> md = ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata(); versions = new ArrayList<String>( md.getImplementedVersions().size() ); for ( Version version : md.getImplementedVersions() ) { versions.add( version.toString() ); } } validateAndSetOfferedVersions( versions ); }
/** * @param requestedVersions * @throws ResourceInitException */ protected final void validateAndSetOfferedVersions( Collection<String> requestedVersions ) throws ResourceInitException { for ( String requestedVersion : requestedVersions ) { Version version = Version.parseVersion( requestedVersion ); if ( !( ( (OWSProvider) metadata.getProvider() ).getImplementationMetadata().getImplementedVersions().contains( Version.parseVersion( requestedVersion ) ) ) ) { String msg = "Version '" + requestedVersion + "' is not supported by the service implementation."; throw new ResourceInitException( msg ); } offeredVersions.add( version ); } }
/** * Method for mapping the request operation to the implemented operations located in {@link CSWConstants} * * @param requestName * @return CSWRequestType * @throws OWSException */ private CSWRequestType getRequestType( String requestName ) throws OWSException { CSWRequestType requestType = null; try { requestType = (CSWRequestType) ( (ImplementationMetadata) ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata() ).getRequestTypeByName( requestName ); } catch ( IllegalArgumentException e ) { throw new OWSException( e.getMessage(), OWSException.OPERATION_NOT_SUPPORTED ); } return requestType; }
/** * Return all active {@link OWS}. * * @return the instance of the requested service used by OGCFrontController, or null if the service is not * registered. */ public Map<String, List<OWS>> getAll() { List<ResourceIdentifier<OWS>> list = workspace.getResourcesOfType( OWSProvider.class ); Map<String, List<OWS>> services = new HashMap<String, List<OWS>>(); for ( ResourceIdentifier<OWS> id : list ) { OWS ows = workspace.getResource( OWSProvider.class, id.getId() ); if ( ows == null ) { continue; } String[] names = ( (OWSProvider) ows.getMetadata().getProvider() ).getImplementationMetadata().getImplementedServiceName(); for ( String name : names ) { List<OWS> owss = services.get( name ); if ( owss == null ) { owss = new ArrayList<OWS>(); services.put( name, owss ); } owss.add( ows ); } } return services; }
private WFSRequestType getRequestTypeByName( String requestName ) throws OWSException { ImplementationMetadata<?> md = ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata(); WFSRequestType requestType = (WFSRequestType) md.getRequestTypeByName( requestName ); if ( requestType == null ) { String msg = "Request type '" + requestName + "' is not supported."; throw new OWSException( msg, OWSException.OPERATION_NOT_SUPPORTED, "request" ); } return requestType; }
/** * Returns the {@link OWS} instance that is responsible for handling requests with a certain name, e.g. GetMap, * GetFeature. * * @param requestName * request name, e.g. "GetMap" or "GetFeature" * @return responsible <code>OWS</code> or null, if no responsible service was found */ public List<OWS> getByRequestName( String requestName ) { 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 ) { continue; } for ( String name : ( (OWSProvider) ows.getMetadata().getProvider() ).getImplementationMetadata().getHandledRequests() ) { if ( name.equalsIgnoreCase( "GetCapabilities" ) ) { continue; } if ( name.equalsIgnoreCase( requestName ) ) { services.add( ows ); } } } return services; }
/** * Determines the {@link OWS} instance that is responsible for handling XML requests in the given namespace. * * @param ns * XML namespace * @return responsible <code>OWS</code> or null, if no responsible service was found */ public List<OWS> getByRequestNS( String ns ) { 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 ) { continue; } for ( String name : ( (OWSProvider) ows.getMetadata().getProvider() ).getImplementationMetadata().getHandledNamespaces() ) { if ( name.equalsIgnoreCase( ns ) ) { services.add( ows ); } } } return services; }
/** * Returns the {@link OWS} instance that is responsible for handling requests to a certain service type, e.g. WMS, * WFS. * * @param serviceType * service type code, e.g. "WMS" or "WFS" * @return responsible <code>OWS</code> or null, if no responsible service was found */ public List<OWS> getByServiceType( String serviceType ) { 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 ) { continue; } for ( String name : ( (OWSProvider) ows.getMetadata().getProvider() ).getImplementationMetadata().getImplementedServiceName() ) { if ( name.equalsIgnoreCase( serviceType ) ) { services.add( ows ); } } } return services; }
public String getMetadataURLTemplate() { // TODO handle this properly in init(), needs service level dependency management if ( metadataURLTemplate == null ) { OwsManager mgr = workspace.getResourceManager( OwsManager.class ); Map<String, List<OWS>> ctrls = mgr.getAll(); for ( List<OWS> lists : ctrls.values() ) { for ( OWS o : lists ) { ImplementationMetadata<?> md = ( (OWSProvider) o.getMetadata().getProvider() ).getImplementationMetadata(); for ( String s : md.getImplementedServiceName() ) { if ( s.equalsIgnoreCase( "csw" ) && md.getImplementedVersions().contains( new Version( 2, 0, 2 ) ) ) { this.metadataURLTemplate = ""; // special case to use requested address } } } } } return metadataURLTemplate; }
RequestUtils.getCurrentThreadRequestParameters().set( map ); try { ImplementationMetadata<?> serviceInfo = ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata();
ImplementationMetadata<?> md = ( (OWSProvider) metadata.getProvider() ).getImplementationMetadata(); for ( SerializerProvider p : spi.getExceptionSerializers() ) { if ( p.matches( md ) ) {
String requestName = map.get( "REQUEST" ); try { req = (WMSRequestType) ( (ImplementationMetadata<?>) ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata() ).getRequestTypeByName( requestName ); } catch ( IllegalArgumentException e ) { controllers.get( version ).sendException( new OWSException( get( "WMS.OPERATION_NOT_KNOWN", requestName ),
for ( ResourceMetadata<OWS> md : mds ) { OWSProvider prov = (OWSProvider) md.getProvider(); for ( String name : prov.getImplementationMetadata().getImplementedServiceName() ) { if ( name.equalsIgnoreCase( "CSW" ) ) { softDependencies.add( md.getIdentifier() );
for ( ResourceMetadata<OWS> md : mds ) { OWSProvider prov = (OWSProvider) md.getProvider(); for ( String name : prov.getImplementationMetadata().getImplementedServiceName() ) { if ( name.equalsIgnoreCase( "CSW" ) ) { softDependencies.add( md.getIdentifier() );
private void checkRequiredKeys( Map<String, String> param ) throws OWSException { try { ImplementationMetadata<?> imd = ( (OWSProvider) getMetadata().getProvider() ).getImplementationMetadata(); String service = KVPUtils.getRequired( param, "SERVICE" ); if ( !"WCS".equalsIgnoreCase( service ) ) { throw new OWSException( "SERVICE " + service + " is not supported", OWSException.INVALID_PARAMETER_VALUE, "SERVICE" ); } String request = KVPUtils.getRequired( param, "REQUEST" ); if ( !imd.getHandledRequests().contains( request ) ) { throw new OWSException( "REQUEST " + request + " is not supported", OWSException.OPERATION_NOT_SUPPORTED, "REQUEST" ); } String version; if ( imd.getRequestTypeByName( request ) != WCSRequestType.GetCapabilities ) { // no version required version = KVPUtils.getRequired( param, "VERSION" ); if ( version != null && !offeredVersions.contains( Version.parseVersion( version ) ) ) { throw new OWSException( "VERSION " + version + " is not supported", OWSException.VERSION_NEGOTIATION_FAILED, "VERSION" ); } } } catch ( MissingParameterException e ) { throw new OWSException( e.getMessage(), OWSException.MISSING_PARAMETER_VALUE ); } }
for ( ResourceMetadata<OWS> md : mds ) { OWSProvider prov = (OWSProvider) md.getProvider(); for ( String name : prov.getImplementationMetadata().getImplementedServiceName() ) { if ( name.equalsIgnoreCase( "CSW" ) ) { softDependencies.add( md.getIdentifier() );