ingo@621: package de.intevation.gnv.utils; ingo@621: ingo@621: import org.apache.log4j.Logger; ingo@621: ingo@621: ingo@621: /** ingo@621: * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) ingo@621: */ ingo@621: public class MapfileGenerator ingo@621: extends Thread ingo@621: { ingo@621: ingo@621: public static final String MAPFILE_PATH = ingo@621: "/artifact-database/map-generator/mapfile/@path"; ingo@621: ingo@621: protected static final long SLEEPTIME = 10 * 1000L; // 10 seconds ingo@621: ingo@621: private static Logger logger = Logger.getLogger(MapfileGenerator.class); ingo@621: ingo@621: private static MapfileGenerator instance; ingo@621: ingo@621: private boolean lock[]; ingo@621: ingo@621: ingo@621: ingo@621: private MapfileGenerator() { ingo@621: lock = new boolean[1]; ingo@621: } ingo@621: ingo@621: ingo@621: public static void main(String[] args) { ingo@621: // TODO Implement me ingo@621: } ingo@621: ingo@621: ingo@621: public static synchronized MapfileGenerator getInstance() { ingo@621: if (instance == null) { ingo@621: instance = new MapfileGenerator(); ingo@621: instance.setDaemon(true); ingo@621: instance.start(); ingo@621: } ingo@621: ingo@621: return instance; ingo@621: } ingo@621: ingo@621: ingo@621: public void update() { ingo@621: synchronized (lock) { ingo@621: lock[0] = true; ingo@621: lock.notify(); ingo@621: } ingo@621: } ingo@621: ingo@621: ingo@621: public void run() { ingo@621: try { ingo@621: for (;;) { ingo@621: synchronized (lock) { ingo@621: while (!lock[0]) { ingo@621: lock.wait(SLEEPTIME); ingo@621: } ingo@621: ingo@621: lock[0] = false; ingo@621: } ingo@621: ingo@621: logger.info("Update mapfile for MapServer."); ingo@621: generate(); ingo@621: } ingo@621: } ingo@621: catch (InterruptedException ie) { ingo@621: } ingo@621: } ingo@621: ingo@621: ingo@621: private void generate() { ingo@621: logger.debug("IMPLEMENT ME"); ingo@621: } ingo@621: } ingo@621: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: