view gwt-client/src/main/java/org/dive4elements/river/client/server/BaseServletContextListener.java @ 9747:cfc0aab9947f 3.2.x

Enable bind-mounting client configuration in docker container
author Tom Gottfried <tom@intevation.de>
date Mon, 05 Sep 2022 17:55:32 +0200
parents 0a5239a1e46e
children
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.client.server;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import org.dive4elements.river.client.server.features.Features;
import org.dive4elements.river.client.server.features.XMLFileFeatures;

/**
 * ServletContextListenter to initalize the Features globally for
 * all Servlets
 */
public class BaseServletContextListener implements ServletContextListener {

    private static final Logger log = LogManager.getLogger(
        BaseServletContextListener.class);

    @Override
    public void  contextInitialized(ServletContextEvent sce) {
        ServletContext sc = sce.getServletContext();

        File file = new File(sc.getInitParameter("features-file"));
        String path = file.isAbsolute()
            ? file.getPath()
            : sc.getRealPath(file.getPath());

        log.debug("Initializing ServletContext");
        try {
            XMLFileFeatures features = new XMLFileFeatures(path);
            sc.setAttribute(Features.CONTEXT_ATTRIBUTE, features);
        } catch(IOException e) {
            log.error(e);
        }
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //DO NOTHING
    }
}

http://dive4elements.wald.intevation.org