Mercurial > hg > mpdl-group
diff software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/MpiwgMpdlCmsWebServletContextListener.java @ 23:e845310098ba
diverse Korrekturen
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 27 Nov 2012 12:35:19 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/MpiwgMpdlCmsWebServletContextListener.java Tue Nov 27 12:35:19 2012 +0100 @@ -0,0 +1,67 @@ +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(); + } + } +} \ No newline at end of file