Fixed configureLayer

Improved base test.
WIP
This commit is contained in:
ETj 2011-10-19 18:28:19 +02:00
parent bbd13b3aa9
commit 562600f386
3 changed files with 48 additions and 27 deletions

View File

@ -220,7 +220,7 @@ public class GeoServerRESTPublisher {
try { try {
GSLayerEncoder layerEncoder = new GSLayerEncoder(); GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle); layerEncoder.addDefaultStyle(defaultStyle);
configureLayer(layerEncoder, layerName); configureLayer(workspace, layerName, layerEncoder);
} catch (Exception e) { } catch (Exception e) {
LOGGER.warn("Error in publishing shapefile " + e.getMessage(), e); LOGGER.warn("Error in publishing shapefile " + e.getMessage(), e);
sent = false; sent = false;
@ -326,7 +326,7 @@ public class GeoServerRESTPublisher {
GSLayerEncoder layerEncoder = new GSLayerEncoder(); GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle); layerEncoder.addDefaultStyle(defaultStyle);
configured = configureLayer(layerEncoder, layername); configured = configureLayer(workspace, layername, layerEncoder);
if (!configured) { if (!configured) {
LOGGER.warn("Error in configuring (" + configuredResult + ") " LOGGER.warn("Error in configuring (" + configuredResult + ") "
@ -399,7 +399,7 @@ public class GeoServerRESTPublisher {
// config layer props (style, ...) // config layer props (style, ...)
GSLayerEncoder layerEncoder = new GSLayerEncoder(); GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle); layerEncoder.addDefaultStyle(defaultStyle);
configureLayer(layerEncoder, coverageName); configureLayer(workspace, coverageName, layerEncoder);
} catch (Exception e) { } catch (Exception e) {
LOGGER.warn("Could not configure external GEOTiff:" + storeName, e); LOGGER.warn("Could not configure external GEOTiff:" + storeName, e);
@ -510,7 +510,7 @@ public class GeoServerRESTPublisher {
String coverageName = covList.get(0).getName(); String coverageName = covList.get(0).getName();
configureCoverage(coverageEncoder, store.getWorkspaceName(), storeName, coverageName); configureCoverage(coverageEncoder, store.getWorkspaceName(), storeName, coverageName);
configureLayer(layerEncoder, storeName); configureLayer(workspace, storeName, layerEncoder);
} catch (Exception e) { } catch (Exception e) {
LOGGER.warn("Could not configure external mosaic:" + storeName, e); LOGGER.warn("Could not configure external mosaic:" + storeName, e);
@ -730,22 +730,24 @@ public class GeoServerRESTPublisher {
* Allows to configure some layer attributes such as WmsPath and DefaultStyle * Allows to configure some layer attributes such as WmsPath and DefaultStyle
* *
*/ */
public boolean configureLayer(final GSLayerEncoder layer, final String layerName) { public boolean configureLayer(final String workspace, final String layerName, final GSLayerEncoder layer) {
if (layer.isEmpty()) { if (layer.isEmpty()) {
return true; return true;
} }
final String url = restURL + "/rest/layers/" + layerName; String fqLayerName = workspace + ":" + layerName;
final String url = restURL + "/rest/layers/" + fqLayerName;
String layerXml = layer.toString(); String layerXml = layer.toString();
String sendResult = HTTPUtils.putXml(url, layerXml, gsuser, gspass); String sendResult = HTTPUtils.putXml(url, layerXml, gsuser, gspass);
if (sendResult != null) { if (sendResult != null) {
if (LOGGER.isInfoEnabled()) { if (LOGGER.isInfoEnabled()) {
LOGGER.info("Layer successfully configured: " + layerName); LOGGER.info("Layer successfully configured: " + fqLayerName);
} }
} else { } else {
LOGGER.warn("Error configuring layer " + layerName + " (" + sendResult + ")"); LOGGER.warn("Error configuring layer " + fqLayerName + " (" + sendResult + ")");
} }
return sendResult != null; return sendResult != null;

View File

@ -344,11 +344,10 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
return; return;
} }
String ns = "it.geosolutions"; String ws = "it.geosolutions";
String storeName = "resttestshp"; String storeName = "resttestshp";
String layerName = "cities"; String layerName = "cities";
final String styleName = "restteststyle"; final String styleName = "restteststyle";
{ {
File sldFile = new ClassPathResource("testdata/restteststyle.sld").getFile(); File sldFile = new ClassPathResource("testdata/restteststyle.sld").getFile();
@ -371,10 +370,10 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile();
// known state? // known state?
cleanupTestFT(layerName, ns, storeName); cleanupTestFT(layerName, ws, storeName);
// test insert // test insert
boolean published = publisher.publishShp(ns, storeName, layerName, zipFile, "EPSG:4326", styleName); boolean published = publisher.publishShp(ws, storeName, layerName, zipFile, "EPSG:4326", styleName);
assertTrue("publish() failed", published); assertTrue("publish() failed", published);
assertTrue(existsLayer(layerName)); assertTrue(existsLayer(layerName));
@ -386,7 +385,7 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
GSLayerEncoder le = new GSLayerEncoder(); GSLayerEncoder le = new GSLayerEncoder();
le.addDefaultStyle(styleName2); le.addDefaultStyle(styleName2);
publisher.configureLayer(le, layerName); publisher.configureLayer(ws, layerName, le);
{ {
RESTLayer layer = reader.getLayer(layerName); RESTLayer layer = reader.getLayer(layerName);
@ -396,9 +395,9 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
// remove layer and datastore // remove layer and datastore
boolean ok = publisher.unpublishFeatureType(ns, storeName, layerName); boolean ok = publisher.unpublishFeatureType(ws, storeName, layerName);
assertFalse(existsLayer(layerName)); assertFalse(existsLayer(layerName));
boolean dsRemoved = publisher.removeDatastore(ns, storeName); boolean dsRemoved = publisher.removeDatastore(ws, storeName);
assertTrue("removeDatastore() failed", dsRemoved); assertTrue("removeDatastore() failed", dsRemoved);
} }

View File

@ -65,14 +65,22 @@ public abstract class GeoserverRESTTest extends TestCase {
public static final GeoServerRESTPublisher publisher; public static final GeoServerRESTPublisher publisher;
private static boolean enabled = false; private static boolean enabled = false;
private static Boolean existgs = null;
static { static {
RESTURL = System.getProperty("resturl", "http://localhost:8080/geoserver"); // for (String propName : System.getProperties().stringPropertyNames()) {
RESTUSER = System.getProperty("restuser", "admin"); // System.out.println("PROP " + propName);
RESTPW = System.getProperty("restpw", "geoserver"); // }
for (String envName : System.getenv().keySet()) {
System.out.println("ENVVAR " + envName + " = \""+System.getenv(envName)+"\"");
}
RESTURL = getenv("gsmgr_resturl", "http://localhost:8080/geoserver");
RESTUSER = getenv("gsmgr_restuser", "admin");
RESTPW = getenv("gsmgr_restpw", "geoserver");
// These tests will destroy data, so let's make sure we do want to run them // These tests will destroy data, so let's make sure we do want to run them
enabled = System.getProperty("resttest", "false").equalsIgnoreCase("true"); enabled = getenv("gsmgr_resttest", "false").equalsIgnoreCase("true");
if( ! enabled ) if( ! enabled )
LOGGER.warn("Tests are disabled. Please read the documentation to enable them."); LOGGER.warn("Tests are disabled. Please read the documentation to enable them.");
@ -87,6 +95,13 @@ public abstract class GeoserverRESTTest extends TestCase {
publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW); publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);
} }
private static String getenv(String envName, String envDefault) {
String env = System.getenv(envName);
String ret = System.getProperty(envName, env);
LOGGER.debug("env var " + envName + " is " + ret);
return ret != null? ret : envDefault;
}
public GeoserverRESTTest(String testName) { public GeoserverRESTTest(String testName) {
super(testName); super(testName);
} }
@ -97,19 +112,24 @@ public abstract class GeoserverRESTTest extends TestCase {
super.setUp(); super.setUp();
if(enabled) { if(enabled) {
if( ! reader.existGeoserver()) { if(existgs == null) {
System.out.println(getClass().getSimpleName() + ": TESTS WILL BE SKIPPED SINCE NO GEOSERVER WAS FOUND AT " + RESTURL + " ("+ RESTUSER+":"+RESTPW+")"); existgs = reader.existGeoserver();
enabled = false; if ( ! existgs ) {
LOGGER.error("TESTS WILL FAIL BECAUSE NO GEOSERVER WAS FOUND AT " + RESTURL + " ("+ RESTUSER+":"+RESTPW+")");
} else { } else {
System.out.println(getClass().getSimpleName() + ": using geoserver instance " + RESTUSER+":"+RESTPW+ " @ " + RESTURL); LOGGER.info("Using geoserver instance " + RESTUSER+":"+RESTPW+ " @ " + RESTURL);
} }
} }
if(enabled) if ( ! existgs ) {
System.out.println("Failing test " + this.getClass().getSimpleName() + "::" + this.getName() + " : geoserver not found");
fail("GeoServer not found");
}
System.out.println("\n-------------------> RUNNING TEST " + this.getName()); System.out.println("\n-------------------> RUNNING TEST " + this.getName());
else } else {
System.out.println("Skipping test " + this.getClass().getSimpleName() + "::" + this.getName()); System.out.println("Skipping test " + this.getClass().getSimpleName() + "::" + this.getName());
} }
}
protected boolean enabled() { protected boolean enabled() {
return enabled; return enabled;