From bb0498055ebe2556645c74d9040f2a45c92d972d Mon Sep 17 00:00:00 2001 From: draktina Date: Mon, 14 Sep 2015 12:28:11 +0100 Subject: [PATCH] adding wms publishing --- .../rest/GeoServerRESTPublisher.java | 57 +++++++++++++++++++ .../rest/encoder/GSWMSLayerEncoder.java | 27 --------- 2 files changed, 57 insertions(+), 27 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index cd26a99..b27149d 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -2040,6 +2040,63 @@ public class GeoServerRESTPublisher { } } + /** + * Removes the wms layer. + *

+ * You may also want to {@link #removeDatastore(String, String) remove the datastore}. + * + * @return true if the operation completed successfully. + */ + public boolean unpublishWmsLayer(String workspace, String storename, String layerName) { + try { + + final String fqLayerName; + // this null check is here only for backward compatibility. + // workspace + // shall be mandatory. + if (workspace == null) { + + fqLayerName = layerName; + + if (LOGGER.isWarnEnabled()) { + LOGGER.warn("Null workspace while configuring layer : " + layerName + + " -- This behavior is deprecated."); + } + } else { + fqLayerName = workspace + ":" + layerName; + } + // delete related layer + URL deleteLayerUrl = new URL(restURL + "/rest/layers/" + fqLayerName); + boolean layerDeleted = HTTPUtils + .delete(deleteLayerUrl.toExternalForm(), gsuser, gspass); + if (!layerDeleted) { + LOGGER.warn("Could not delete layer '" + fqLayerName + "'"); + return false; + } + // delete the wms layer + URL deleteFtUrl = new URL(restURL + "/rest/workspaces/" + workspace + "/wmsstores/" + + storename + "/wmslayers/" + layerName); + boolean ftDeleted = HTTPUtils.delete(deleteFtUrl.toExternalForm(), gsuser, gspass); + if (!ftDeleted) { + LOGGER.warn("Could not delete wms layer " + workspace + ":" + storename + "/" + + layerName + ", but layer was deleted."); + } else { + LOGGER.info("Wms layer successfully deleted " + workspace + ":" + storename + "/" + + layerName); + } + + return ftDeleted; + + // the store is still there: should we delete it? + + } catch (MalformedURLException ex) { + if (LOGGER.isErrorEnabled()) + LOGGER.error(ex.getLocalizedMessage(), ex); + return false; + } + } + + /** * Removes the featuretype and the associated layer. *

diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/GSWMSLayerEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/GSWMSLayerEncoder.java index 0b438e1..2b2b2ff 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/GSWMSLayerEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/GSWMSLayerEncoder.java @@ -42,33 +42,6 @@ public class GSWMSLayerEncoder extends GSResourceEncoder { super.setMetadata(key, dimensionInfo); } - /** - * Add a VirtualTable (SQL View feature type) - * - * @param virtualtable - */ - protected void addMetadataVirtualTable( - final GSVirtualTableEncoder virtualtable) { - super.addMetadata("JDBC_VIRTUAL_TABLE", virtualtable); - } - - /** - * Set a VirtualTable (SQL View feature type) - * - * @param virtualtable - */ - public void setMetadataVirtualTable(final GSVirtualTableEncoder virtualtable) { - super.setMetadata("JDBC_VIRTUAL_TABLE", virtualtable); - } - - /** - * Deletes the VirtualTable metadata - * - * @return true if deleted, false otherwise - */ - public boolean delMetadataVirtualTable(){ - return super.delMetadata("JDB_VIRTUAL_TABLE"); - } /** * delete a keyword from the list