view flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/FLYSService.java @ 2566:8bacd0ce3704

Partial fix flys/issue637 (wording). flys-artifacts/trunk@4092 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 27 Feb 2012 09:09:54 +0000
parents a5f327849b85
children 247f3e98a14b
line wrap: on
line source
package de.intevation.flys.artifacts.services;

import org.w3c.dom.Document;

import org.apache.log4j.Logger;

import org.hibernate.Session;

import de.intevation.artifacts.CallMeta;
import de.intevation.artifacts.GlobalContext;

import de.intevation.artifactdatabase.DefaultService;

import de.intevation.flys.backend.SessionHolder;


public abstract class FLYSService extends DefaultService {

    private static final Logger logger = Logger.getLogger(FLYSService.class);


    @Override
    public Document process(
        Document      data,
        GlobalContext globalContext,
        CallMeta      callMeta
    ) {
        init();

        try {
            return doProcess(data, globalContext, callMeta);
        }
        finally {
            shutdown();
        }
    }


    protected abstract Document doProcess(
        Document      data,
        GlobalContext globalContext,
        CallMeta      callMeta);


    protected void init() {
        logger.debug("init");
        SessionHolder.acquire();
    }


    protected void shutdown() {
        logger.debug("shutdown");
        Session session = SessionHolder.HOLDER.get();
        session.close();

        SessionHolder.release();
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org