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