Mercurial > hg > mpdl-group
view software/mpdl-services-new/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/MpiwgMpdlCmsWebServletContextListener.java @ 25:e9fe3186670c default tip
letzter Stand eingecheckt
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 21 May 2013 10:19:32 +0200 |
parents | |
children |
line wrap: on
line source
package de.mpg.mpiwg.berlin.mpdl.servlets.cms; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import de.mpg.mpiwg.berlin.mpdl.lt.dict.db.LexHandler; import de.mpg.mpiwg.berlin.mpdl.lt.morph.app.MorphologyCache; import de.mpg.mpiwg.berlin.mpdl.servlets.cms.MpiwgMpdlCmsWebServletContextListener; import de.mpg.mpiwg.berlin.mpdl.xml.transform.FragmentTransformer; import de.mpg.mpiwg.berlin.mpdl.xml.xquery.XQueryEvaluator; import de.mpg.mpiwg.berlin.mpdl.cms.general.Constants; import de.mpg.mpiwg.berlin.mpdl.cms.lucene.IndexHandler; import de.mpg.mpiwg.berlin.mpdl.cms.scheduler.CmsChainScheduler; import de.mpg.mpiwg.berlin.mpdl.cms.transform.PageTransformer; import de.mpg.mpiwg.berlin.mpdl.cms.transform.TocTransformer; public class MpiwgMpdlCmsWebServletContextListener implements ServletContextListener { private ServletContext context = null; private FragmentTransformer fragmentTransformer = null; private PageTransformer pageTransformer = null; private TocTransformer tocTransformer = null; private XQueryEvaluator xQueryEvaluator = null; public void contextInitialized(ServletContextEvent event) { try { this.context = event.getServletContext(); String documentsDirectory = Constants.getInstance().getDocumentsDir(); String luceneDocumentsDirectory = Constants.getInstance().getLuceneDocumentsDir(); String luceneNodesDirectory = Constants.getInstance().getLuceneNodesDir(); context.setAttribute("documentDirectory", documentsDirectory); context.setAttribute("luceneDocumentsDirectory", luceneDocumentsDirectory); context.setAttribute("luceneNodesDirectory", luceneNodesDirectory); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (documentsDirectory= \"" + documentsDirectory + "\", set in constants.properties)"); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (luceneDocumentsDirectory= \"" + luceneDocumentsDirectory + "\", set in constants.properties)"); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (luceneNodesDirectory= \"" + luceneNodesDirectory + "\", set in constants.properties)"); fragmentTransformer = new FragmentTransformer(); context.setAttribute("fragmentTransformer", fragmentTransformer); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (fragmentTransformer)"); pageTransformer = new PageTransformer(); context.setAttribute("pageTransformer", pageTransformer); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (pageTransformer)"); tocTransformer = new TocTransformer(); context.setAttribute("tocTransformer", tocTransformer); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (tocTransformer)"); xQueryEvaluator = new XQueryEvaluator(); context.setAttribute("xQueryEvaluator", xQueryEvaluator); System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextInitialized (xQueryEvaluator)"); } catch (Exception e) { e.printStackTrace(); } } public void contextDestroyed(ServletContextEvent event) { try { this.context = null; LexHandler.getInstance().end(); MorphologyCache.getInstance().end(); IndexHandler.getInstance().end(); CmsChainScheduler scheduler = CmsChainScheduler.getInstance(); scheduler.end(); Thread.sleep(1000); // with this, also the scheduler worker threads could be closed System.out.println(MpiwgMpdlCmsWebServletContextListener.class.getName() + ": contextDestroyed"); } catch (Exception e) { e.printStackTrace(); } } }