annotate servlet3/src/main/java/digilib/servlet/Initialiser.java @ 1019:287e2d2d2ae8

fix flicker in Firefox by leaving scaler background visible. add setSize and setRGB actions. disabled rotation slider for now (needs excact numerical input option).
author robcast
date Mon, 20 Feb 2012 22:23:07 +0100
parents b2d97b842612
children 2ee261676828
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
1 /* Initialiser.java -- initalisation servlet for setup tasks
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
2 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
3 * Digital Image Library servlet components
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
4 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
5 * Copyright (C) 2004 Robert Casties (robcast@mail.berlios.de)
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
6 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify it
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
8 * under the terms of the GNU General Public License as published by the Free
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
9 * Software Foundation; either version 2 of the License, or (at your option)
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
10 * any later version.
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
11 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
12 * Please read license.txt for the full details. A copy of the GPL may be found
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
13 * at http://www.gnu.org/copyleft/lgpl.html
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
14 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License along with
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
16 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
17 * Place, Suite 330, Boston, MA 02111-1307 USA
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
18 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
19 * Created on 18.10.2004
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
20 */
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
21 package digilib.servlet;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
22
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
23 import java.io.File;
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
24 import java.io.OutputStream;
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
25 import java.util.List;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
26
825
26a3e127f45c config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents: 821
diff changeset
27 import javax.imageio.ImageIO;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
28 import javax.servlet.ServletContext;
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
29 import javax.servlet.ServletContextEvent;
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
30 import javax.servlet.ServletContextListener;
930
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
31 import javax.servlet.ServletRequestEvent;
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
32 import javax.servlet.ServletRequestListener;
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
33 import javax.servlet.annotation.WebListener;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
34
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
35 import org.apache.log4j.Logger;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
36 import org.apache.log4j.xml.DOMConfigurator;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
37
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
38 import digilib.auth.AuthOps;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
39 import digilib.auth.XMLAuthOps;
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents:
diff changeset
40 import digilib.image.DocuImage;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
41 import digilib.io.AliasingDocuDirCache;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
42 import digilib.io.DocuDirCache;
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 559
diff changeset
43 import digilib.io.FileOps.FileClass;
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 548
diff changeset
44 import digilib.util.DigilibJobCenter;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
45
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
46 /**
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
47 * Singleton initalisation listener for setup tasks and resources.
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
48 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
49 * @author casties
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
50 *
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
51 */
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
52 @WebListener
930
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
53 public class Initialiser implements ServletContextListener, ServletRequestListener {
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
54
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
55
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
56 /** servlet version */
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
57 public static final String version = "0.3";
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
58
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
59 /** gengeral logger for this class */
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
60 private static Logger logger = Logger.getLogger("digilib.init");
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
61
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
62 /** DocuDirCache instance */
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
63 DocuDirCache dirCache;
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
64
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
65 /** DigilibConfiguration instance */
930
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
66 DigilibServletConfiguration dlConfig;
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
67
804
587c90bc5976 first version using officially approved Servlet 3.0 async support.
robcast
parents: 564
diff changeset
68 /** Executor for digilib image jobs (AsyncServletWorker doesn't return anything) */
548
bc9196347188 more refactoring and cleanup
robcast
parents: 546
diff changeset
69 DigilibJobCenter<DocuImage> imageEx;
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
70
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
71 /** Executor for PDF jobs */
548
bc9196347188 more refactoring and cleanup
robcast
parents: 546
diff changeset
72 DigilibJobCenter<OutputStream> pdfEx;
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
73
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
74 /** Executor for PDF image jobs */
548
bc9196347188 more refactoring and cleanup
robcast
parents: 546
diff changeset
75 DigilibJobCenter<DocuImage> pdfImageEx;
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
76
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
77 /**
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
78 * Initialisation on first run.
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
79 */
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
80 public void contextInitialized(ServletContextEvent cte) {
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
81 ServletContext context = cte.getServletContext();
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
82
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
83 System.out.println("***** Digital Image Library Initialiser (version "
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 559
diff changeset
84 + version + ") *****");
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
85
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
86 // see if there is a Configuration instance
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
87 dlConfig = (DigilibServletConfiguration) context.getAttribute("digilib.servlet.configuration");
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
88 if (dlConfig == null) {
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
89 // create new Configuration
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
90 try {
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
91 dlConfig = new DigilibServletConfiguration(context);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
92
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
93 /*
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
94 * further initialization
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
95 */
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
96
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
97 // set up the logger
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
98 File logConf = ServletOps.getConfigFile((File) dlConfig
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
99 .getValue("log-config-file"), context);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
100 DOMConfigurator.configure(logConf.getAbsolutePath());
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
101 dlConfig.setValue("log-config-file", logConf);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
102 // say hello in the log file
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
103 logger
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
104 .info("***** Digital Image Library Initialiser (version "
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 559
diff changeset
105 + version + ") *****");
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
106 // directory cache
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
107 String[] bd = (String[]) dlConfig.getValue("basedir-list");
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 559
diff changeset
108 FileClass[] fcs = { FileClass.IMAGE, FileClass.TEXT };
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
109 if (dlConfig.getAsBoolean("use-mapping")) {
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
110 // with mapping file
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
111 File mapConf = ServletOps.getConfigFile((File) dlConfig
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
112 .getValue("mapping-file"), context);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
113 dirCache = new AliasingDocuDirCache(bd, fcs, mapConf,
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
114 dlConfig);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
115 dlConfig.setValue("mapping-file", mapConf);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
116 } else {
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
117 // without mapping
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
118 dirCache = new DocuDirCache(bd, fcs, dlConfig);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
119 }
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
120 dlConfig.setValue("servlet.dir.cache", dirCache);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
121 // useAuthentication
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
122 if (dlConfig.getAsBoolean("use-authorization")) {
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
123 // DB version
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
124 //authOp = new DBAuthOpsImpl(util);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
125 // XML version
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
126 File authConf = ServletOps.getConfigFile((File) dlConfig
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
127 .getValue("auth-file"), context);
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
128 AuthOps authOp = new XMLAuthOps(authConf);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
129 dlConfig.setValue("servlet.auth.op", authOp);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
130 dlConfig.setValue("auth-file", authConf);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
131 }
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
132 // DocuImage class
564
4c51d71aef13 more reshuffling of classes
robcast
parents: 563
diff changeset
133 DocuImage di = DigilibConfiguration.getDocuImageInstance();
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents:
diff changeset
134 dlConfig.setValue("servlet.docuimage.class", di.getClass().getName());
825
26a3e127f45c config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents: 821
diff changeset
135 // disk cache for image toolkit
26a3e127f45c config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents: 821
diff changeset
136 boolean dc = dlConfig.getAsBoolean("img-diskcache-allowed");
26a3e127f45c config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents: 821
diff changeset
137 // TODO: methods for all toolkits?
26a3e127f45c config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents: 821
diff changeset
138 ImageIO.setUseCache(dc);
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
139 // digilib worker threads
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
140 int nt = dlConfig.getAsInt("worker-threads");
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
141 int mt = dlConfig.getAsInt("max-waiting-threads");
858
da4938dac521 don't prestart threads.
robcast
parents: 825
diff changeset
142 imageEx = new DigilibJobCenter<DocuImage>(nt, mt, false, "servlet.worker.imageexecutor");
925
66f1ba72d07b added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents: 903
diff changeset
143 dlConfig.setValue("servlet.worker.imageexecutor", imageEx);
66f1ba72d07b added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents: 903
diff changeset
144 // digilib worker timeout
66f1ba72d07b added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents: 903
diff changeset
145 long to = dlConfig.getAsInt("worker-timeout");
66f1ba72d07b added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents: 903
diff changeset
146 AsyncServletWorker.setTimeout(to);
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
147 // PDF worker threads
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
148 int pnt = dlConfig.getAsInt("pdf-worker-threads");
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
149 int pmt = dlConfig.getAsInt("pdf-max-waiting-threads");
858
da4938dac521 don't prestart threads.
robcast
parents: 825
diff changeset
150 pdfEx = new DigilibJobCenter<OutputStream>(pnt, pmt, false, "servlet.worker.pdfexecutor");
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
151 dlConfig.setValue("servlet.worker.pdfexecutor", pdfEx);
548
bc9196347188 more refactoring and cleanup
robcast
parents: 546
diff changeset
152 // PDF image worker threads
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
153 int pint = dlConfig.getAsInt("pdf-image-worker-threads");
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
154 int pimt = dlConfig.getAsInt("pdf-image-max-waiting-threads");
858
da4938dac521 don't prestart threads.
robcast
parents: 825
diff changeset
155 pdfImageEx = new DigilibJobCenter<DocuImage>(pint, pimt, false, "servlet.worker.pdfimageexecutor");
546
e7c29b587829 more work on util.concurrent compliant structure
casties
parents: 544
diff changeset
156 dlConfig.setValue("servlet.worker.pdfimageexecutor", pdfImageEx);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
157 // set as the servlets main config
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
158 context.setAttribute("digilib.servlet.configuration", dlConfig);
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
159
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
160 } catch (Exception e) {
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
161 logger.error("Error in initialisation: ", e);
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
162 }
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
163 } else {
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
164 // say hello in the log file
817
0b4345866797 fix to log message. fixed jar creation.
robcast
parents: 806
diff changeset
165 logger.info("***** Digital Image Library Initialiser (version "
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 559
diff changeset
166 + version + ") *****");
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
167 logger.warn("Already initialised!");
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
168 }
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
169 }
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
170
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
171 /** clean up local resources
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
172 *
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
173 */
806
d811204ce5a4 Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents: 804
diff changeset
174 public void contextDestroyed(ServletContextEvent arg0) {
821
6c752969f9e8 more tries and catches...
robcast
parents: 817
diff changeset
175 logger.info("Initialiser shutting down.");
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
176 if (dirCache != null) {
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
177 // shut down dirCache?
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
178 dirCache = null;
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
179 }
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
180 if (imageEx != null) {
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
181 // shut down image thread pool
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
182 List<Runnable> rj = imageEx.shutdownNow();
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
183 int nrj = rj.size();
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
184 if (nrj > 0) {
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
185 logger.error("Still running threads when shutting down image job queue: "+nrj);
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
186 }
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
187 }
559
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
188 if (pdfEx != null) {
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
189 // shut down pdf thread pool
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
190 List<Runnable> rj = pdfEx.shutdownNow();
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
191 int nrj = rj.size();
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
192 if (nrj > 0) {
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
193 logger.error("Still running threads when shutting down PDF job queue: "+nrj);
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
194 }
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
195 }
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
196 if (pdfImageEx != null) {
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
197 // shut down pdf image thread pool
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
198 List<Runnable> rj = pdfImageEx.shutdownNow();
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
199 int nrj = rj.size();
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
200 if (nrj > 0) {
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
201 logger.error("Still running threads when shutting down PDF-image job queue: "+nrj);
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
202 }
ad1d473a01f5 clean up thread pools
robcast
parents: 557
diff changeset
203 }
544
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
204 }
5ff500d6812a more steps towards more standard java.util.concurrent design
robcast
parents: 543
diff changeset
205
930
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
206 @Override
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
207 public void requestDestroyed(ServletRequestEvent arg0) {
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
208 int i = dlConfig.openRequestCnt.decrementAndGet();
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
209 logger.debug("ServletRequest destroyed. (cnt="+i+")");
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
210 }
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
211
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
212 @Override
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
213 public void requestInitialized(ServletRequestEvent arg0) {
937
7bcc6765c209 improved runtime statistics
robcast
parents: 930
diff changeset
214 dlConfig.webappRequestCnt.incrementAndGet();
930
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
215 int i = dlConfig.openRequestCnt.incrementAndGet();
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
216 logger.debug("ServletRequest created. (cnt="+i+")");
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
217 }
333e60e5cae9 new counter for open requests.
robcast
parents: 925
diff changeset
218
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff changeset
219 }