partially fix issue #8 and #7.

This commit is contained in:
ccancellieri 2012-03-27 17:59:39 +02:00
parent 0b9f6eda5d
commit 270f3450fb
7 changed files with 593 additions and 351 deletions

View File

@ -154,7 +154,7 @@ public class RESTLayer {
* }</CODE>
*/
public String getResourceUrl() {
Element resource = layerElem.getChild("resource");
Element resource = layerElem.getChild("resource");
Element atom = resource.getChild("link", Namespace.getNamespace("atom", "http://www.w3.org/2005/Atom"));
return atom.getAttributeValue("href");
}

View File

@ -25,6 +25,8 @@
package it.geosolutions.geoserver.rest.encoder;
import org.jdom.Element;
import it.geosolutions.geoserver.rest.encoder.utils.PropertyXMLEncoder;
/**
@ -42,6 +44,9 @@ public class GSLayerEncoder extends PropertyXMLEncoder {
addEnabled();
}
/**
* enabled the layer
*/
protected void addEnabled(){
add("enabled","true");
}
@ -55,18 +60,72 @@ public class GSLayerEncoder extends PropertyXMLEncoder {
else
set("enabled","false");
}
// /**
// * @param name the name of the layer
// */
// protected void addName(final String name){
// add("name",name);
// }
//
// /**
// * @return name the name of the layer or null
// */
// public String getName() {
// final Element nameNode = get("name");
// if (nameNode != null)
// return nameNode.getText();
// else
// return null;
// }
//
// /**
// * @param name the name of the layer
// * @throws IllegalArgumentException
// */
// public void setName(final String name) throws IllegalArgumentException {
// if (name==null || name.isEmpty())
// throw new IllegalArgumentException("Unable to set an empty or null parameter");
// set("name",name);
// }
/**
* @see {@link GSLayerEncoder#setWmsPath(String)}
*
* @param defaultStyle
* @deprecated will be set to protected in the next release, please use setDefaultStyle
*
* @param path the wms path to set
*/
public void addDefaultStyle(String defaultStyle) {
add("defaultStyle", defaultStyle);
protected void addWmsPath(final String path) {
add("path", path);
}
public void setDefaultStyle(String defaultStyle) {
/**
* Default WMS Path The GeoServer WMS path is, by default, /geoserver/wms.
* However you can change it to /geoserver/anythingyouwant
*
* @param path the wms path to set
* @throws IllegalArgumentException if path is null or empty
*/
public void setWmsPath(final String path) throws IllegalArgumentException {
if (path==null || path.isEmpty())
throw new IllegalArgumentException("Unable to set an empty or null parameter");
set("path",path);
}
/**
* @see {@link GSLayerEncoder#setDefaultStyle(String)}
* @param defaultStyle
*/
protected void addDefaultStyle(String defaultStyle) {
add("defaultStyle", defaultStyle);
}
/**
* @param defaultStyle The style that will be applied if no style is specified.
* @throws IllegalArgumentException if defaultStyle is null or empty
*/
public void setDefaultStyle(final String defaultStyle) throws IllegalArgumentException {
if (defaultStyle==null || defaultStyle.isEmpty())
throw new IllegalArgumentException("Unable to set an empty or null parameter");
set("defaultStyle", defaultStyle);
}
}

View File

@ -27,6 +27,9 @@ package it.geosolutions.geoserver.rest;
import it.geosolutions.geoserver.rest.decoder.RESTCoverageStore;
import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder;
import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy;
import it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoder;
import java.io.File;
import java.io.FileNotFoundException;
@ -90,19 +93,18 @@ public class ConfigTest extends GeoserverRESTTest {
String layerName = "resttestdem";
File geotiff = new ClassPathResource("testdata/resttestdem.tif").getFile();
RESTCoverageStore pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, null, null);
boolean pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, layerName,"EPSG:4326",ProjectionPolicy.FORCE_DECLARED,"raster");
assertNotNull(pc);
assertTrue(pc);
}
public void insertExternalShape() throws FileNotFoundException, IOException {
File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile();
boolean published = publisher.publishShp(DEFAULT_WS, "anyname", "cities", zipFile, "EPSG:4326", "default_point");
boolean published = publisher.publishShp(DEFAULT_WS, "anyname", "cities", zipFile, "EPSG:41001", "default_point");
assertTrue("publish() failed", published);
//test delete
boolean ok = publisher.unpublishFeatureType(DEFAULT_WS, "anyname", "cities");
assertTrue("Unpublish() failed", ok);

View File

@ -27,6 +27,9 @@ package it.geosolutions.geoserver.rest.publisher;
import it.geosolutions.geoserver.rest.GeoserverRESTTest;
import it.geosolutions.geoserver.rest.decoder.RESTCoverageStore;
import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder;
import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy;
import it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoder;
import java.io.File;
import java.io.FileNotFoundException;
@ -66,14 +69,14 @@ public class GeoserverRESTGeoTiffTest extends GeoserverRESTTest {
assertFalse("Cleanup failed", existsLayer(layerName));
// test insert
RESTCoverageStore pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, null, null);
assertNotNull("publish() failed", pc);
boolean pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, layerName,"EPSG:4326",ProjectionPolicy.FORCE_DECLARED,"raster");
assertTrue("publish() failed", pc);
assertTrue(existsLayer(layerName));
LOGGER.info(pc);
RESTCoverageStore reloadedCS = reader.getCoverageStore(DEFAULT_WS, storeName);
assertEquals(pc.getName(), reloadedCS.getName());
assertEquals(pc.getWorkspaceName(), reloadedCS.getWorkspaceName());
assertEquals(storeName, reloadedCS.getName());
assertEquals(DEFAULT_WS, reloadedCS.getWorkspaceName());
//test delete
assertTrue("Unpublish() failed", publisher.unpublishCoverage(DEFAULT_WS, storeName, layerName));

View File

@ -139,7 +139,7 @@ public class GeoserverRESTImageMosaicTest extends GeoserverRESTTest {
try {
final File mosaicFile = new ClassPathResource("testdata/time_geotiff/").getFile();
if (!publisher.createExternalMosaic(wsName,coverageStoreName,mosaicFile,coverageEncoder,layerEncoder)){
if (!publisher.publishExternalMosaic(wsName,coverageStoreName,mosaicFile,coverageEncoder,layerEncoder)){
fail();
}
coverageStore = reader.getCoverageStore(wsName,coverageStoreName);

View File

@ -27,6 +27,9 @@ package it.geosolutions.geoserver.rest.publisher;
import it.geosolutions.geoserver.rest.GeoserverRESTTest;
import it.geosolutions.geoserver.rest.decoder.RESTCoverageStore;
import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder;
import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy;
import it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoder;
import java.io.File;
import java.io.IOException;
@ -84,7 +87,7 @@ public class GeoserverRESTWorkspaceTest extends GeoserverRESTTest {
assertFalse("Cleanup failed", existsLayer(layerName));
// test insert
RESTCoverageStore pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, null, null);
boolean pc = publisher.publishExternalGeoTIFF(DEFAULT_WS, storeName, geotiff, layerName, "EPSG:4326",ProjectionPolicy.REPROJECT_TO_DECLARED,"raster");
// remove workspace and all of its contents
assertTrue(publisher.removeWorkspace(DEFAULT_WS,true));