Fixed configureLayer
Improved base test. WIP
This commit is contained in:
parent
bbd13b3aa9
commit
562600f386
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user