From f251419bd19d372422717bdef76f3728c2ad58e9 Mon Sep 17 00:00:00 2001 From: Carl Schroedl Date: Tue, 20 Sep 2016 16:42:40 -0500 Subject: [PATCH] Revert "Revert "Switching to formal XML body construction via GS*Encoder classes. #199"" This reverts commit cd511983c03db207d696f6ba88b28cf1b73f890d. --- .../rest/GeoServerRESTPublisher.java | 30 ++++++++++++------- .../encoder/coverage/GSCoverageEncoder.java | 2 +- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index 6b55686..20231fd 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -3264,7 +3264,7 @@ public class GeoServerRESTPublisher { * @param enabled * @return true if recalculation succeeded, false otherwise. */ - private boolean recalculateBBox(StoreType type, String xmlElementName, String workspace, String storeName, String layerName, BBoxRecalculationMode calculationMode, boolean enabled){ + private boolean recalculateBBox(StoreType type, GSResourceEncoder renc, String workspace, String storeName, String layerName, BBoxRecalculationMode calculationMode){ String baseUrl = restURL + "/rest/workspaces/" + workspace + "/" + type.getType().toLowerCase() +"s/" + storeName + "/" + @@ -3274,14 +3274,14 @@ public class GeoServerRESTPublisher { String sUrl = baseUrl + "?recalculate=" + calculationMode.getParamValue(); LOGGER.debug("Constructed the following url for bounding box recalculation: " + sUrl); - /* - * If the 'enabled' element is not specified in the request body, it will be set to 'false' by GeoServer. - * To avoid unintentional disabling of layers, this method and its callers - * require that users specify whether the layer should be enabled. - */ - String body = "<" + xmlElementName +">" + layerName + "" + - "" + enabled + ""; - + +// String body = wsenc.toString(); +// String body = "<" + xmlElementName +">" + layerName + "" + +// "" + enabled + ""; + renc.remove(GSResourceEncoder.KEYWORDS); + renc.remove(GSResourceEncoder.METADATA); + renc.remove(GSResourceEncoder.METADATALINKS); + String body = renc.toString(); String sendResult = HTTPUtils.putXml(sUrl, body, gsuser, gspass); boolean success = sendResult != null; return success; @@ -3297,7 +3297,11 @@ public class GeoServerRESTPublisher { * @return true if successful, false otherwise */ public boolean recalculateFeatureTypeBBox(String workspace, String storeName, String layerName, BBoxRecalculationMode calculationMode, boolean enabled){ - return recalculateBBox(StoreType.DATASTORES, "featureType", workspace, storeName, layerName, calculationMode, enabled); + GSFeatureTypeEncoder fenc = new GSFeatureTypeEncoder(); + fenc.remove(GSFeatureTypeEncoder.ATTRIBUTES); + fenc.setName(layerName); + fenc.setEnabled(enabled); + return recalculateBBox(StoreType.DATASTORES, fenc, workspace, storeName, layerName, calculationMode); } /** @@ -3310,6 +3314,10 @@ public class GeoServerRESTPublisher { * @return true if successful, false otherwise */ public boolean recalculateCoverageBBox(String workspace, String storeName, String layerName, BBoxRecalculationMode calculationMode, boolean enabled){ - return recalculateBBox(StoreType.COVERAGESTORES, "coverage", workspace, storeName, layerName, calculationMode, enabled); + GSCoverageEncoder cenc = new GSCoverageEncoder(); + cenc.remove(GSCoverageEncoder.SUPPORTED_FORMATS); + cenc.setName(layerName); + cenc.setEnabled(enabled); + return recalculateBBox(StoreType.COVERAGESTORES, cenc, workspace, storeName, layerName, calculationMode); } } diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java index 4b506e1..796e122 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java @@ -44,7 +44,7 @@ public class GSCoverageEncoder extends GSResourceEncoder { public final static String NATIVECOVERAGENAME = "nativeCoverageName"; private final static String NATIVE_FORMAT="nativeFormat"; - private final static String SUPPORTED_FORMATS="supportedFormats"; + public final static String SUPPORTED_FORMATS="supportedFormats"; private final static String REQUEST_SRS="requestSRS"; private final static String RESPONSE_SRS="responseSRS";