Add the PURGE param to the delete store methods.

This commit is contained in:
etj 2015-03-31 17:02:38 +02:00
parent 3e580b73d1
commit 02439fa277

View File

@ -2006,7 +2006,12 @@ public class GeoServerRESTPublisher {
*/
public boolean removeDatastore(String workspace, String storename, final boolean recurse)
throws IllegalArgumentException {
return removeStore(workspace, storename, StoreType.DATASTORES, recurse);
return removeStore(workspace, storename, StoreType.DATASTORES, recurse, Purge.NONE);
}
public boolean removeDatastore(String workspace, String storename, final boolean recurse, final Purge purge)
throws IllegalArgumentException {
return removeStore(workspace, storename, StoreType.DATASTORES, recurse, purge);
}
/**
@ -2031,9 +2036,27 @@ public class GeoServerRESTPublisher {
*/
public boolean removeCoverageStore(final String workspace, final String storename,
final boolean recurse) throws IllegalArgumentException {
return removeStore(workspace, storename, StoreType.COVERAGESTORES, recurse);
return removeStore(workspace, storename, StoreType.COVERAGESTORES, recurse, Purge.NONE);
}
/**
* Remove a given CoverageStore in a given Workspace.
*
* Note that purging may not work when deleting mosaics (https://jira.codehaus.org/browse/GEOT-4613).
*
* @param workspace The name of the workspace
* @param storename The name of the CoverageStore to remove.
* @param recurse if remove should be performed recursively
* @param purge the purge method
* @return <TT>true</TT> if the CoverageStore was successfully removed.
*/
public boolean removeCoverageStore(final String workspace, final String storename,
final boolean recurse, final Purge purge) throws IllegalArgumentException {
return removeStore(workspace, storename, StoreType.COVERAGESTORES, recurse, purge);
}
public enum Purge {NONE, METADATA, ALL};
/**
* Remove a given Datastore in a given Workspace.
*
@ -2041,11 +2064,12 @@ public class GeoServerRESTPublisher {
* @param storename The name of the Datastore to remove.
* @param the {@link StoreType} type
* @param recurse if remove should be performed recursively
* @param purge the purge method
* @throws IllegalArgumentException if workspace or storename are null or empty
* @return <TT>true</TT> if the store was successfully removed.
*/
private boolean removeStore(String workspace, String storename, StoreType type,
final boolean recurse) throws IllegalArgumentException {
final boolean recurse, final Purge purge) throws IllegalArgumentException {
try {
if (workspace == null || storename == null)
throw new IllegalArgumentException("Arguments may not be null!");
@ -2055,8 +2079,10 @@ public class GeoServerRESTPublisher {
final StringBuilder url = new StringBuilder(restURL);
url.append("/rest/workspaces/").append(workspace).append("/").append(type).append("/")
.append(storename);
if (recurse)
url.append("?recurse=true");
url.append("?recurse=").append(recurse);
if(purge != null)
url.append("&purge=").append(purge);
final URL deleteStore = new URL(url.toString());
boolean deleted = HTTPUtils.delete(deleteStore.toExternalForm(), gsuser, gspass);