Work in progress on GeoWebCache Manager
This commit is contained in:
parent
a4268dda60
commit
63733ccabd
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GeoServer-Manager - Simple Manager Library for GeoServer
|
||||
*
|
||||
* Copyright (C) 2007,2013 GeoSolutions S.A.S.
|
||||
* Copyright (C) 2007,2015 GeoSolutions S.A.S.
|
||||
* http://www.geo-solutions.it
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
||||
@ -0,0 +1,127 @@
|
||||
/*
|
||||
* GeoServer-Manager - Simple Manager Library for GeoServer
|
||||
*
|
||||
* Copyright (C) 2007,2015 GeoSolutions S.A.S.
|
||||
* http://www.geo-solutions.it
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package it.geosolutions.geoserver.rest;
|
||||
|
||||
import it.geosolutions.geoserver.rest.decoder.gwc.GWCRESTWMSLayer;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.logging.Level;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author Nazzareno Sileno - CNR IMAA geoSDI Group
|
||||
* @email nazzareno.sileno@geosdi.org
|
||||
*/
|
||||
public class GeoWebCacheRESTManager {
|
||||
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(GeoWebCacheRESTManager.class);
|
||||
|
||||
/**
|
||||
* GeoWebCache instance base URL. E.g.: <TT>http://localhost:8080/geowebcache</TT>.
|
||||
*/
|
||||
private final String restURL;
|
||||
|
||||
/**
|
||||
* GeoWebCache instance privileged username, with read & write permission on REST API
|
||||
*/
|
||||
private final String gwcUser;
|
||||
|
||||
/**
|
||||
* GeoWebCache instance password for privileged username with r&w permission on REST API
|
||||
*/
|
||||
private final String gwcPass;
|
||||
|
||||
/**
|
||||
* Creates a <TT>GeoWebCacheRESTManager</TT> to connect against a GeoWebCache instance with the given URL and user credentials.
|
||||
*
|
||||
* @param restURL the base GeoWebCache URL (e.g.: <TT>http://localhost:8080/geowebcache</TT>)
|
||||
* @param username auth credential
|
||||
* @param password auth credential
|
||||
*/
|
||||
public GeoWebCacheRESTManager(String restURL, String username, String password) {
|
||||
this.restURL = HTTPUtils.decurtSlash(restURL);
|
||||
this.gwcUser = username;
|
||||
this.gwcPass = password;
|
||||
|
||||
URL url = null;
|
||||
try {
|
||||
url = new URL(restURL);
|
||||
} catch (MalformedURLException ex) {
|
||||
LOGGER.error("Bad URL: Calls to GeoWebCache are going to fail" , ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a GeoWebCache instance is running at the given URL.
|
||||
* <BR>
|
||||
* Return <TT>true</TT> if the configured GeoWebCache is up and replies to REST requests.
|
||||
* <BR>
|
||||
* Send a HTTP GET request to the configured URL.<BR>
|
||||
* Return <TT>true</TT> if a HTTP 200 code (OK) is read from the HTTP response;
|
||||
* any other response code, or connection error, will return a
|
||||
* <TT>false</TT> boolean.
|
||||
*
|
||||
* @return true if a GeoWebCache instance was found at the configured URL.
|
||||
*/
|
||||
public boolean existGeoWebCache() {
|
||||
return HTTPUtils.httpPing(restURL + "/rest/", gwcUser, gwcPass);
|
||||
}
|
||||
|
||||
// <editor-fold desc="/layers" defaultstate="collapsed">
|
||||
/**
|
||||
* Get detailed info about a given Layer.
|
||||
*
|
||||
* @param name the layer name
|
||||
* @return a GWCRESTWMSLayer with layer information or null
|
||||
*/
|
||||
public GWCRESTWMSLayer getLayer(String name) {
|
||||
if (name == null || name.isEmpty())
|
||||
throw new IllegalArgumentException("Layername may not be null");
|
||||
String nameEncoded = null;
|
||||
try {
|
||||
nameEncoded = URLEncoder.encode(name, "UTF-8");
|
||||
} catch (UnsupportedEncodingException ex) {
|
||||
LOGGER.error("Error encoding layer name: " + ex);
|
||||
}
|
||||
String url = HTTPUtils.append("/rest/layers/", nameEncoded, ".xml").toString();
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("### Retrieving layer from " + url);
|
||||
}
|
||||
GWCRESTWMSLayer layer = GWCRESTWMSLayer.build(load(url));
|
||||
return layer;
|
||||
}
|
||||
// </editor-fold>
|
||||
|
||||
private String load(String url) {
|
||||
LOGGER.info("Loading from REST path " + url);
|
||||
String response = HTTPUtils.get(restURL + url, gwcUser, gwcPass);
|
||||
return response;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,257 @@
|
||||
/*
|
||||
* GeoServer-Manager - Simple Manager Library for GeoServer
|
||||
*
|
||||
* Copyright (C) 2007,2011 GeoSolutions S.A.S.
|
||||
* http://www.geo-solutions.it
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package it.geosolutions.geoserver.rest.decoder.gwc;
|
||||
|
||||
import it.geosolutions.geoserver.rest.decoder.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.geosolutions.geoserver.rest.decoder.utils.JDOMBuilder;
|
||||
import it.geosolutions.geoserver.rest.encoder.authorityurl.AuthorityURLInfo;
|
||||
import it.geosolutions.geoserver.rest.encoder.authorityurl.GSAuthorityURLInfoEncoder;
|
||||
import it.geosolutions.geoserver.rest.encoder.identifier.GSIdentifierInfoEncoder;
|
||||
import it.geosolutions.geoserver.rest.encoder.identifier.IdentifierInfo;
|
||||
import it.geosolutions.geoserver.rest.encoder.metadatalink.GSMetadataLinkInfoEncoder;
|
||||
import it.geosolutions.geoserver.rest.encoder.metadatalink.ResourceMetadataLinkInfo;
|
||||
|
||||
import org.jdom.Element;
|
||||
import org.jdom.Namespace;
|
||||
|
||||
/**
|
||||
* Parse <TT>wmsLayer</TT>s returned as XML REST objects.
|
||||
*
|
||||
* <P>This is the XML REST representation:
|
||||
* <PRE>
|
||||
* {@code
|
||||
<wmsLayer>
|
||||
<metaInformation>
|
||||
<name>img states</name>
|
||||
<title>Nicer title for Image States</title>
|
||||
<description>This is a description. Fascinating.</description>
|
||||
</metaInformation>
|
||||
<mimeFormats>
|
||||
<string>image/gif</string>
|
||||
<string>image/jpeg</string>
|
||||
<string>image/png</string>
|
||||
<string>image/png8</string>
|
||||
</mimeFormats>
|
||||
<gridSubsets>
|
||||
<gridSubset>
|
||||
<gridSetName>EPSG:4326</gridSetName>
|
||||
<extent>
|
||||
<coords>
|
||||
<double>-129.6</double>
|
||||
<double>3.45</double>
|
||||
<double>-62.1</double>
|
||||
<double>70.9</double>
|
||||
</coords>
|
||||
</extent>
|
||||
</gridSubset>
|
||||
</gridSubsets>
|
||||
<expireCacheList>
|
||||
<expirationRule minZoom="0" expiration="60" />
|
||||
</expireCacheList>
|
||||
<expireClientsList>
|
||||
<expirationRule minZoom="0" expiration="500" />
|
||||
</expireClientsList>
|
||||
<wmsUrl>
|
||||
<string>http://demo.opengeo.org/geoserver/wms</string>
|
||||
</wmsUrl>
|
||||
<wmsLayers>nurc:Img_Sample,topp:states</wmsLayers>
|
||||
<transparent>false</transparent>
|
||||
<bgColor>0x0066FF</bgColor>
|
||||
</wmsLayer>
|
||||
* }</PRE>
|
||||
* @author Nazzareno Sileno
|
||||
*/
|
||||
public class GWCRESTWMSLayer {
|
||||
protected final Element wmsLayerElem;
|
||||
|
||||
public static GWCRESTWMSLayer build(String response) {
|
||||
if(response == null)
|
||||
return null;
|
||||
|
||||
Element pb = JDOMBuilder.buildElement(response);
|
||||
if(pb != null)
|
||||
return new GWCRESTWMSLayer(pb);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public GWCRESTWMSLayer(Element layerElem) {
|
||||
this.wmsLayerElem = layerElem;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return wmsLayerElem.getChildText("name");
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
Element metaInformation = wmsLayerElem.getChild("metaInformation");
|
||||
return metaInformation.getChildText("title");
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
Element metaInformation = wmsLayerElem.getChild("metaInformation");
|
||||
return metaInformation.getChildText("description");
|
||||
}
|
||||
|
||||
public List<String> getMimeFormats() {
|
||||
List<String> mimeFormatsList = new ArrayList<String>();
|
||||
final Element mimeFormatsRoot = wmsLayerElem.getChild("mimeFormats");
|
||||
if (mimeFormatsRoot != null) {
|
||||
for (Element listItem : (List<Element>) mimeFormatsRoot.getChildren()) {
|
||||
mimeFormatsList.add(listItem.getChildText("string"));
|
||||
}
|
||||
}
|
||||
return mimeFormatsList;
|
||||
}
|
||||
|
||||
// public boolean getEnabled(){
|
||||
// return Boolean.parseBoolean(wmsLayerElem.getChildText("enabled"));
|
||||
// }
|
||||
//
|
||||
// public boolean getQueryable(){
|
||||
// return Boolean.parseBoolean(wmsLayerElem.getChildText("queryable"));
|
||||
// }
|
||||
//
|
||||
// public boolean getAdvertised(){
|
||||
// return Boolean.parseBoolean(wmsLayerElem.getChildText("advertised"));
|
||||
// }
|
||||
//
|
||||
// public String getTypeString() {
|
||||
// return wmsLayerElem.getChildText("type");
|
||||
// }
|
||||
//
|
||||
// public Type getType() {
|
||||
// return Type.get(getTypeString());
|
||||
// }
|
||||
//
|
||||
// public String getDefaultStyle() {
|
||||
// Element defaultStyle = wmsLayerElem.getChild("defaultStyle");
|
||||
// return defaultStyle == null? null : defaultStyle.getChildText("name");
|
||||
// }
|
||||
//
|
||||
// public RESTStyleList getStyles() {
|
||||
// RESTStyleList styleList = null;
|
||||
// final Element stylesRoot = wmsLayerElem.getChild("styles");
|
||||
// if (stylesRoot != null) {
|
||||
// styleList = new RESTStyleList(stylesRoot);
|
||||
// }
|
||||
// return styleList;
|
||||
// }
|
||||
//
|
||||
// public String getDefaultStyleWorkspace() {
|
||||
// Element defaultStyle = wmsLayerElem.getChild("defaultStyle");
|
||||
// return defaultStyle == null? null : defaultStyle.getChildText("workspace");
|
||||
// }
|
||||
//
|
||||
// public String getTitle() {
|
||||
// Element resource = wmsLayerElem.getChild("resource");
|
||||
// return resource.getChildText("title");
|
||||
// }
|
||||
//
|
||||
// public String getAbstract() {
|
||||
// Element resource = wmsLayerElem.getChild("resource");
|
||||
// return resource.getChildText("abstract");
|
||||
// }
|
||||
//
|
||||
// public String getNameSpace() {
|
||||
// Element resource = wmsLayerElem.getChild("resource");
|
||||
// return resource.getChild("namespace").getChildText("name");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Get the URL to retrieve the featuretype.
|
||||
// * <PRE>{@code
|
||||
// <resource class="featureType">
|
||||
// <name>tasmania_cities</name>
|
||||
// <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/rest/workspaces/topp/datastores/taz_shapes/featuretypes/tasmania_cities.xml" type="application/xml"/>
|
||||
// </resource>
|
||||
// * }</CODE>
|
||||
// */
|
||||
// public String getResourceUrl() {
|
||||
// Element resource = wmsLayerElem.getChild("resource");
|
||||
// Element atom = resource.getChild("link", Namespace.getNamespace("atom", "http://www.w3.org/2005/Atom"));
|
||||
// return atom.getAttributeValue("href");
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Decodes the list of AuthorityURLInfo from the GeoServer Layer
|
||||
// *
|
||||
// * @return the list of GSAuthorityURLInfoEncoder
|
||||
// */
|
||||
// public List<GSAuthorityURLInfoEncoder> getEncodedAuthorityURLInfoList() {
|
||||
// List<GSAuthorityURLInfoEncoder> authorityURLList = null;
|
||||
//
|
||||
// final Element authorityURLsRoot = wmsLayerElem.getChild("authorityURLs");
|
||||
// if (authorityURLsRoot != null) {
|
||||
// final List<Element> authorityURLs = authorityURLsRoot.getChildren();
|
||||
// if (authorityURLs != null) {
|
||||
// authorityURLList = new ArrayList<GSAuthorityURLInfoEncoder>(
|
||||
// authorityURLs.size());
|
||||
// for (Element authorityURL : authorityURLs) {
|
||||
// final GSAuthorityURLInfoEncoder authEnc = new GSAuthorityURLInfoEncoder();
|
||||
// authEnc.setName(authorityURL
|
||||
// .getChildText(AuthorityURLInfo.name.name()));
|
||||
// authEnc.setHref(authorityURL
|
||||
// .getChildText(AuthorityURLInfo.href.name()));
|
||||
// authorityURLList.add(authEnc);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return authorityURLList;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Decodes the list of IdentifierInfo from the GeoServer Layer
|
||||
// *
|
||||
// * @return the list of IdentifierInfoEncoder
|
||||
// */
|
||||
// public List<GSIdentifierInfoEncoder> getEncodedIdentifierInfoList() {
|
||||
// List<GSIdentifierInfoEncoder> idList = null;
|
||||
//
|
||||
// final Element idRoot = wmsLayerElem.getChild("identifiers");
|
||||
// if (idRoot != null) {
|
||||
// final List<Element> identifiers = idRoot.getChildren();
|
||||
// if (identifiers != null) {
|
||||
// idList = new ArrayList<GSIdentifierInfoEncoder>(
|
||||
// identifiers.size());
|
||||
// for (Element identifier : identifiers) {
|
||||
// final GSIdentifierInfoEncoder idEnc = new GSIdentifierInfoEncoder();
|
||||
// idEnc.setAuthority(identifier
|
||||
// .getChildText(IdentifierInfo.authority.name()));
|
||||
// idEnc.setIdentifier(identifier
|
||||
// .getChildText(IdentifierInfo.identifier.name()));
|
||||
// idList.add(idEnc);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return idList;
|
||||
// }
|
||||
|
||||
}
|
||||
@ -0,0 +1,161 @@
|
||||
/*
|
||||
* GeoServer-Manager - Simple Manager Library for GeoServer
|
||||
*
|
||||
* Copyright (C) 2007,2011 GeoSolutions S.A.S.
|
||||
* http://www.geo-solutions.it
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package it.geosolutions.geoserver.rest;
|
||||
|
||||
import it.geosolutions.geoserver.rest.decoder.gwc.GWCRESTWMSLayer;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import junit.framework.Assert;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestName;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Initializes REST params.
|
||||
* <P>
|
||||
* <B>These tests are destructive, so you have to explicitly enable them</B> by setting the env var <TT>resttest</TT> to <TT>true</TT>.
|
||||
* <P>
|
||||
* The target geoserver instance can be customized by defining the following env vars:
|
||||
* <ul>
|
||||
* <LI><TT>resturl</TT> (default <TT>http://localhost:8080/geowebcache</TT>)</LI>
|
||||
* <LI><TT>restuser</TT> (default: <TT>geowebcache</TT>)</LI>
|
||||
* <LI><TT>restpw</TT> (default: <TT>secured</TT>)</LI>
|
||||
* </ul>
|
||||
*
|
||||
* @author Nazzareno Sileno - CNR IMAA geoSDI Group
|
||||
* @email nazzareno.sileno@geosdi.org
|
||||
*/
|
||||
public class GeoWebCacheRESTTest {
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(GeoWebCacheRESTTest.class);
|
||||
|
||||
@Rule
|
||||
public TestName _testName = new TestName();
|
||||
|
||||
public static final String RESTURL;
|
||||
|
||||
public static final String RESTUSER;
|
||||
|
||||
public static final String RESTPW;
|
||||
|
||||
// geowebcache target version
|
||||
// public static final String GWC_VERSION;
|
||||
|
||||
public static URL URL;
|
||||
|
||||
public static GeoWebCacheRESTManager geoWebCache;
|
||||
|
||||
private static boolean enabled = false;
|
||||
|
||||
private static Boolean existgwc = null;
|
||||
|
||||
static {
|
||||
RESTURL = getenv("gwcmgr_resturl", "http://localhost:8989/geowebcache");
|
||||
RESTUSER = getenv("gwcmgr_restuser", "geowebcache");
|
||||
RESTPW = getenv("gwcmgr_restpw", "secured");
|
||||
// GWC_VERSION = getenv("gwcmgr_version", "1.8.0");
|
||||
|
||||
// These tests will destroy data, so let's make sure we do want to run them
|
||||
enabled = getenv("gwcmgr_resttest", "false").equalsIgnoreCase("true");
|
||||
if (!enabled)
|
||||
LOGGER.warn("Tests are disabled. Please read the documentation to enable them.");
|
||||
|
||||
try {
|
||||
URL = new URL(RESTURL);
|
||||
geoWebCache = new GeoWebCacheRESTManager(RESTURL, RESTUSER, RESTPW);
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static String getenv(String envName, String envDefault) {
|
||||
String env = System.getenv(envName);
|
||||
String prop = System.getProperty(envName, env);
|
||||
LOGGER.debug("varname " + envName + " --> env:" + env + " prop:"+prop);
|
||||
return prop != null ? prop : envDefault;
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void setUp() throws Exception {
|
||||
|
||||
if (enabled) {
|
||||
if (existgwc == null) {
|
||||
existgwc = geoWebCache.existGeoWebCache();
|
||||
if (!existgwc) {
|
||||
LOGGER.error("TESTS WILL FAIL BECAUSE NO GEOWEBCACHE WAS FOUND AT " + RESTURL
|
||||
+ " (" + RESTUSER + ":" + RESTPW + ")");
|
||||
} else {
|
||||
LOGGER.info("Using geowebcache instance " + RESTUSER + ":" + RESTPW + " @ "
|
||||
+ RESTURL);
|
||||
}
|
||||
} else if (existgwc == false){
|
||||
System.out.println("Failing tests : geowebcache not found");
|
||||
fail("GeoWebCache not found");
|
||||
}
|
||||
|
||||
} else {
|
||||
System.out.println("Skipping tests ");
|
||||
LOGGER.warn("Tests are disabled. Please read the documentation to enable them.");
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void before(){
|
||||
String testName = _testName.getMethodName();
|
||||
LOGGER.warn("");
|
||||
LOGGER.warn("============================================================");
|
||||
LOGGER.warn("=== RUNNING TEST " + testName);
|
||||
LOGGER.warn("");
|
||||
}
|
||||
|
||||
protected boolean enabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGWCExistence(){
|
||||
LOGGER.debug("Testing GWC Existence");
|
||||
Assert.assertTrue("The GeoWebCache is unreachable", geoWebCache.existGeoWebCache());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGWCGetLayer(){
|
||||
LOGGER.debug("Testing GWC GetLayer");
|
||||
GWCRESTWMSLayer layer = geoWebCache.getLayer("img states");
|
||||
Assert.assertNotNull("Please, ensure that the 'img states' default layer is available", layer);
|
||||
Assert.assertEquals("img states", layer.getName());
|
||||
Assert.assertEquals("Nicer title for Image States", layer.getTitle());
|
||||
Assert.assertEquals(4, layer.getMimeFormats().size());
|
||||
LOGGER.info("Testing GWC GetLayer result: " + geoWebCache.getLayer("img states"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user