diff --git a/src/main/java/it/unibz/inf/isoga/service/AbstractService.java b/src/main/java/it/unibz/inf/isoga/service/AbstractService.java index 0119a8798120158ad2a2fe5a850e84d702ab2a4c..72d32c6538800b05c00963709ed7352a343b0549 100644 --- a/src/main/java/it/unibz/inf/isoga/service/AbstractService.java +++ b/src/main/java/it/unibz/inf/isoga/service/AbstractService.java @@ -8,7 +8,7 @@ import it.unibz.inf.isoga.db.DbUtility; import it.unibz.inf.isoga.db.TableEntry; import it.unibz.inf.isoga.geometry.BBox; import it.unibz.inf.isoga.util.DSetConfig; -import it.unibz.inf.isoga.websocket.ConfigurationContainer; +import it.unibz.inf.isoga.web.ConfigurationContainer; import java.sql.Connection; import java.util.ArrayList; diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java index 786a2d9a55983d960e6f6d69d0e00fda18e44afd..2fa002130aa0f3abb2fb7907ad47bcb02563bd91 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java @@ -5,7 +5,7 @@ import it.unibz.inf.isochrone.util.Config; import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import it.unibz.inf.isoga.util.DSetConfig; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.websocket.ConfigurationContainer; +import it.unibz.inf.isoga.web.ConfigurationContainer; import java.sql.Connection; diff --git a/src/main/java/it/unibz/inf/isoga/servlet/CleanupThread.java b/src/main/java/it/unibz/inf/isoga/web/CleanupThread.java similarity index 89% rename from src/main/java/it/unibz/inf/isoga/servlet/CleanupThread.java rename to src/main/java/it/unibz/inf/isoga/web/CleanupThread.java index 31c3cd68e8e183a0164955438e15bb47bb4a216c..35dd668d3b65a98c98e2c6ae50b7df775b7d6151 100644 --- a/src/main/java/it/unibz/inf/isoga/servlet/CleanupThread.java +++ b/src/main/java/it/unibz/inf/isoga/web/CleanupThread.java @@ -1,11 +1,10 @@ -package it.unibz.inf.isoga.servlet; +package it.unibz.inf.isoga.web; import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; import it.geosolutions.geoserver.rest.GeoServerRESTReader; import it.geosolutions.geoserver.rest.decoder.RESTLayerList; import it.unibz.inf.isochrone.util.Config; import it.unibz.inf.isoga.db.DbUtility; -import it.unibz.inf.isoga.websocket.ConfigurationContainer; import java.sql.Connection; import java.util.List; @@ -13,17 +12,16 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class CleanupThread extends Thread { - private static final Logger LOGGER = LoggerFactory.getLogger(CleanupThread.class.getName()); +class CleanupTask extends Object { + private static final Logger LOGGER = LoggerFactory.getLogger(CleanupTask.class.getName()); private static final int SLEEP_TIME = 1000; - @Override - public void run() { + public void performCleanup() { final Config config = ConfigurationContainer.getGlobalConfig(); final GeoServerRESTReader reader = config.getGeoServerReader(); while (!reader.existGeoserver()) { try { - sleep(SLEEP_TIME); + wait(SLEEP_TIME); } catch (final InterruptedException e1) { e1.printStackTrace(); } diff --git a/src/main/java/it/unibz/inf/isoga/websocket/ConfigurationContainer.java b/src/main/java/it/unibz/inf/isoga/web/ConfigurationContainer.java similarity index 99% rename from src/main/java/it/unibz/inf/isoga/websocket/ConfigurationContainer.java rename to src/main/java/it/unibz/inf/isoga/web/ConfigurationContainer.java index 0c86377c7a22daccceaef2ef6b445d51d701e338..a09e0c4acabf8cd8b47c712a1b9b2708b8a5710b 100644 --- a/src/main/java/it/unibz/inf/isoga/websocket/ConfigurationContainer.java +++ b/src/main/java/it/unibz/inf/isoga/web/ConfigurationContainer.java @@ -1,4 +1,4 @@ -package it.unibz.inf.isoga.websocket; +package it.unibz.inf.isoga.web; import it.unibz.inf.isochrone.util.Config; import it.unibz.inf.isochrone.util.EnumContainer.Dataset; diff --git a/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java b/src/main/java/it/unibz/inf/isoga/web/JsonWebsocket.java similarity index 99% rename from src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java rename to src/main/java/it/unibz/inf/isoga/web/JsonWebsocket.java index 33883c0c8184166418fdf4b35cad7a260b6cf5e8..4d6f8bb33047ec19d75d1d378640f74cb678e2ac 100644 --- a/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java +++ b/src/main/java/it/unibz/inf/isoga/web/JsonWebsocket.java @@ -1,4 +1,4 @@ -package it.unibz.inf.isoga.websocket; +package it.unibz.inf.isoga.web; import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; import it.unibz.inf.isochrone.util.Config; diff --git a/src/main/java/it/unibz/inf/isoga/servlet/StartupServlet.java b/src/main/java/it/unibz/inf/isoga/web/StartupListener.java similarity index 54% rename from src/main/java/it/unibz/inf/isoga/servlet/StartupServlet.java rename to src/main/java/it/unibz/inf/isoga/web/StartupListener.java index 2306bf004f2a605a414fb4df7eecd1071fa46e73..d4fa3d1fe53e31b075c07885e91847b10b91ed46 100644 --- a/src/main/java/it/unibz/inf/isoga/servlet/StartupServlet.java +++ b/src/main/java/it/unibz/inf/isoga/web/StartupListener.java @@ -1,18 +1,18 @@ -package it.unibz.inf.isoga.servlet; +package it.unibz.inf.isoga.web; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@WebServlet(name = "StartupServlet", loadOnStartup = 1) -public class StartupServlet extends HttpServlet { - private static final long serialVersionUID = 7599924678364708340L; - private static final Logger LOGGER = LoggerFactory.getLogger(StartupServlet.class.getName()); +@WebListener +public class StartupListener implements ServletContextListener { + private static final Logger LOGGER = LoggerFactory.getLogger(StartupListener.class.getName()); @Override - public void init() { + public void contextInitialized(final ServletContextEvent sce) { // TODO: Implement startup checks // 1) Is there a readable configuration? @@ -25,12 +25,19 @@ public class StartupServlet extends HttpServlet { startCleanup(); } + @Override + public void contextDestroyed(final ServletContextEvent sce) { + // TODO: What should we do on shutdown? + } + // Private methods private void startCleanup() { LOGGER.info("Starting cleanup thread"); - final Thread t = new CleanupThread(); - t.start(); + + final CleanupTask ct = new CleanupTask(); + ct.performCleanup(); } + } diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index c0bff458e218a7a5f9048260d3c0142be0931381..cf6c68b8f7c65effeadb6a7461c4fc6a73d38b86 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<web-app version="3.0" metadata-complete="false" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> +<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>Using Isochrones for Geospatial Analysis</display-name> </web-app>