diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java
index 6b55686b..20231fd4 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 String getParamValue(){
* @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 @@ private boolean recalculateBBox(StoreType type, String xmlElementName, String wo
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 + "" + xmlElementName + ">";
-
+
+// String body = wsenc.toString();
+// String body = "<" + xmlElementName +">" + layerName + "" +
+// "" + enabled + "" + xmlElementName + ">";
+ 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 @@ private boolean recalculateBBox(StoreType type, String xmlElementName, String wo
* @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 boolean recalculateFeatureTypeBBox(String workspace, String storeName, St
* @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 4b506e17..796e122e 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";