/** * Reads all the common attributes from the service info class. * * <p>This method is intended to be called by subclasses after creating an instance of * ServiceInfo. Example: * * <pre> * // read properties * Map<String,Object> props = reader.wfs(); * * // create config object * WFSInfo wfs = new WFSInfoImpl(); * * //load common properties * load( wfs, reader ); * * //load wfs specific properties * wfs.setServiceLevel( map.get( "serviceLevel") ); * ... * </pre> */ protected void readCommon(ServiceInfo service, Map<String, Object> properties, GeoServer gs) throws Exception { service.setEnabled((Boolean) properties.get("enabled")); service.setName((String) properties.get("name")); service.setTitle((String) properties.get("title")); service.setAbstract((String) properties.get("abstract")); Map metadataLink = (Map) properties.get("metadataLink"); if (metadataLink != null) { MetadataLinkInfo ml = gs.getCatalog().getFactory().createMetadataLink(); ml.setAbout((String) metadataLink.get("about")); ml.setMetadataType((String) metadataLink.get("metadataType")); ml.setType((String) metadataLink.get("type")); service.setMetadataLink(ml); } List<String> keywords = (List<String>) properties.get("keywords"); if (keywords != null) { for (String kw : keywords) { service.getKeywords().add(new Keyword(kw)); } } service.setOnlineResource((String) properties.get("onlineResource")); service.setFees((String) properties.get("fees")); service.setAccessConstraints((String) properties.get("accessConstraints")); service.setCiteCompliant((Boolean) properties.get("citeConformanceHacks")); service.setMaintainer((String) properties.get("maintainer")); service.setSchemaBaseURL((String) properties.get("SchemaBaseUrl")); }
@Test public void testMetadataLink() throws Exception { Catalog catalog = getCatalog(); CoverageInfo ci = catalog.getCoverageByName(getLayerId(TASMANIA_DEM)); MetadataLinkInfo ml = catalog.getFactory().createMetadataLink(); ml.setContent("http://www.geoserver.org/tasmania/dem.xml"); ml.setAbout("http://www.geoserver.org"); ci.getMetadataLinks().add(ml); catalog.save(ci); Document dom = getAsDOM("wcs?request=GetCapabilities"); // print(dom); checkValidationErrors(dom, WCS11_SCHEMA); String xpathBase = "//wcs:CoverageSummary[wcs:Identifier = '" + TASMANIA_DEM.getLocalPart() + "']/ows:Metadata"; assertXpathEvaluatesTo("http://www.geoserver.org", xpathBase + "/@about", dom); assertXpathEvaluatesTo("simple", xpathBase + "/@xlink:type", dom); assertXpathEvaluatesTo( "http://www.geoserver.org/tasmania/dem.xml", xpathBase + "/@xlink:href", dom); }