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 {
GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle);
configureLayer(layerEncoder, layerName);
configureLayer(workspace, layerName, layerEncoder);
} catch (Exception e) {
LOGGER.warn("Error in publishing shapefile " + e.getMessage(), e);
sent = false;
@ -326,7 +326,7 @@ public class GeoServerRESTPublisher {
GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle);
configured = configureLayer(layerEncoder, layername);
configured = configureLayer(workspace, layername, layerEncoder);
if (!configured) {
LOGGER.warn("Error in configuring (" + configuredResult + ") "
@ -399,7 +399,7 @@ public class GeoServerRESTPublisher {
// config layer props (style, ...)
GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.addDefaultStyle(defaultStyle);
configureLayer(layerEncoder, coverageName);
configureLayer(workspace, coverageName, layerEncoder);
} catch (Exception e) {
LOGGER.warn("Could not configure external GEOTiff:" + storeName, e);
@ -510,7 +510,7 @@ public class GeoServerRESTPublisher {
String coverageName = covList.get(0).getName();
configureCoverage(coverageEncoder, store.getWorkspaceName(), storeName, coverageName);
configureLayer(layerEncoder, storeName);
configureLayer(workspace, storeName, layerEncoder);
} catch (Exception 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
*
*/
public boolean configureLayer(final GSLayerEncoder layer, final String layerName) {
public boolean configureLayer(final String workspace, final String layerName, final GSLayerEncoder layer) {
if (layer.isEmpty()) {
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 sendResult = HTTPUtils.putXml(url, layerXml, gsuser, gspass);
if (sendResult != null) {
if (LOGGER.isInfoEnabled()) {
LOGGER.info("Layer successfully configured: " + layerName);
LOGGER.info("Layer successfully configured: " + fqLayerName);
}
} else {
LOGGER.warn("Error configuring layer " + layerName + " (" + sendResult + ")");
LOGGER.warn("Error configuring layer " + fqLayerName + " (" + sendResult + ")");
}
return sendResult != null;

View File

@ -344,11 +344,10 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
return;
}
String ns = "it.geosolutions";
String ws = "it.geosolutions";
String storeName = "resttestshp";
String layerName = "cities";
final String styleName = "restteststyle";
{
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();
// known state?
cleanupTestFT(layerName, ns, storeName);
cleanupTestFT(layerName, ws, storeName);
// 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(existsLayer(layerName));
@ -386,7 +385,7 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
GSLayerEncoder le = new GSLayerEncoder();
le.addDefaultStyle(styleName2);
publisher.configureLayer(le, layerName);
publisher.configureLayer(ws, layerName, le);
{
RESTLayer layer = reader.getLayer(layerName);
@ -396,9 +395,9 @@ public class GeoserverRESTPublisherTest extends GeoserverRESTTest {
// remove layer and datastore
boolean ok = publisher.unpublishFeatureType(ns, storeName, layerName);
boolean ok = publisher.unpublishFeatureType(ws, storeName, layerName);
assertFalse(existsLayer(layerName));
boolean dsRemoved = publisher.removeDatastore(ns, storeName);
boolean dsRemoved = publisher.removeDatastore(ws, storeName);
assertTrue("removeDatastore() failed", dsRemoved);
}

View File

@ -65,14 +65,22 @@ public abstract class GeoserverRESTTest extends TestCase {
public static final GeoServerRESTPublisher publisher;
private static boolean enabled = false;
private static Boolean existgs = null;
static {
RESTURL = System.getProperty("resturl", "http://localhost:8080/geoserver");
RESTUSER = System.getProperty("restuser", "admin");
RESTPW = System.getProperty("restpw", "geoserver");
// for (String propName : System.getProperties().stringPropertyNames()) {
// System.out.println("PROP " + propName);
// }
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
enabled = System.getProperty("resttest", "false").equalsIgnoreCase("true");
enabled = getenv("gsmgr_resttest", "false").equalsIgnoreCase("true");
if( ! enabled )
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);
}
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) {
super(testName);
}
@ -97,18 +112,23 @@ public abstract class GeoserverRESTTest extends TestCase {
super.setUp();
if(enabled) {
if( ! reader.existGeoserver()) {
System.out.println(getClass().getSimpleName() + ": TESTS WILL BE SKIPPED SINCE NO GEOSERVER WAS FOUND AT " + RESTURL + " ("+ RESTUSER+":"+RESTPW+")");
enabled = false;
} else {
System.out.println(getClass().getSimpleName() + ": using geoserver instance " + RESTUSER+":"+RESTPW+ " @ " + RESTURL);
if(existgs == null) {
existgs = reader.existGeoserver();
if ( ! existgs ) {
LOGGER.error("TESTS WILL FAIL BECAUSE NO GEOSERVER WAS FOUND AT " + RESTURL + " ("+ RESTUSER+":"+RESTPW+")");
} else {
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());
else
} else {
System.out.println("Skipping test " + this.getClass().getSimpleName() + "::" + this.getName());
}
}
protected boolean enabled() {