From e218762e8614205a06a8ad5fb9a0372c60bb819c Mon Sep 17 00:00:00 2001 From: Carl Schroedl Date: Tue, 20 Sep 2016 14:26:05 -0500 Subject: [PATCH] Switching to formal XML body construction via GS*Encoder classes. #199 --- .../rest/GeoServerRESTPublisher.java | 22 ++++++++++++++----- .../encoder/coverage/GSCoverageEncoder.java | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index 9223844..f4e157e 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -3263,7 +3263,7 @@ public class GeoServerRESTPublisher { * @param calculationMode * @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 + "/" + @@ -3283,8 +3283,12 @@ public class GeoServerRESTPublisher { // GSWorkspaceEncoder wsenc = new GSWorkspaceEncoder(workspace); // String body = wsenc.toString(); - String body = "<" + xmlElementName +">" + layerName + "" + - "" + enabled + ""; +// 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; @@ -3299,7 +3303,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); } /** @@ -3311,6 +3319,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";