Mercurial > hg > digilib-old
annotate servlet3/src/main/java/digilib/servlet/Initialiser.java @ 951:9c699b6cfcca
preview for ZoomArea. shows distortions when changing aspect ratio.
author | robcast |
---|---|
date | Tue, 03 Jan 2012 21:44:22 +0100 |
parents | 7bcc6765c209 |
children | b2d97b842612 |
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 | 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; |
930 | 26 import java.util.concurrent.atomic.AtomicInteger; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
27 |
825
26a3e127f45c
config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents:
821
diff
changeset
|
28 import javax.imageio.ImageIO; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
29 import javax.servlet.ServletContext; |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
30 import javax.servlet.ServletContextEvent; |
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
31 import javax.servlet.ServletContextListener; |
930 | 32 import javax.servlet.ServletRequestEvent; |
33 import javax.servlet.ServletRequestListener; | |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
34 import javax.servlet.annotation.WebListener; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
35 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
36 import org.apache.log4j.Logger; |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
37 import org.apache.log4j.xml.DOMConfigurator; |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
38 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
39 import digilib.auth.AuthOps; |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
40 import digilib.auth.XMLAuthOps; |
531 | 41 import digilib.image.DocuImage; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
42 import digilib.io.AliasingDocuDirCache; |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
43 import digilib.io.DocuDirCache; |
563 | 44 import digilib.io.FileOps.FileClass; |
557 | 45 import digilib.util.DigilibJobCenter; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
46 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
47 /** |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
48 * 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
|
49 * |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
50 * @author casties |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
51 * |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
52 */ |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
53 @WebListener |
930 | 54 public class Initialiser implements ServletContextListener, ServletRequestListener { |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
55 |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
56 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
57 /** servlet version */ |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
58 public static final String version = "0.3"; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
59 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
60 /** gengeral logger for this class */ |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
61 private static Logger logger = Logger.getLogger("digilib.init"); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
62 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
63 /** DocuDirCache instance */ |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
64 DocuDirCache dirCache; |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
65 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
66 /** DigilibConfiguration instance */ |
930 | 67 DigilibServletConfiguration dlConfig; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
68 |
804
587c90bc5976
first version using officially approved Servlet 3.0 async support.
robcast
parents:
564
diff
changeset
|
69 /** Executor for digilib image jobs (AsyncServletWorker doesn't return anything) */ |
548 | 70 DigilibJobCenter<DocuImage> imageEx; |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
71 |
546 | 72 /** Executor for PDF jobs */ |
548 | 73 DigilibJobCenter<OutputStream> pdfEx; |
546 | 74 |
75 /** Executor for PDF image jobs */ | |
548 | 76 DigilibJobCenter<DocuImage> pdfImageEx; |
546 | 77 |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
78 /** |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
79 * Initialisation on first run. |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
80 */ |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
81 public void contextInitialized(ServletContextEvent cte) { |
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
82 ServletContext context = cte.getServletContext(); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
83 |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
84 System.out.println("***** Digital Image Library Initialiser (version " |
563 | 85 + version + ") *****"); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
86 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
87 // see if there is a Configuration instance |
903 | 88 dlConfig = (DigilibServletConfiguration) context.getAttribute("digilib.servlet.configuration"); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
89 if (dlConfig == null) { |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
90 // create new Configuration |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
91 try { |
903 | 92 dlConfig = new DigilibServletConfiguration(context); |
297
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 /* |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
95 * further initialization |
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 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
98 // set up the logger |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
99 File logConf = ServletOps.getConfigFile((File) dlConfig |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
100 .getValue("log-config-file"), context); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
101 DOMConfigurator.configure(logConf.getAbsolutePath()); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
102 dlConfig.setValue("log-config-file", logConf); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
103 // say hello in the log file |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
104 logger |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
105 .info("***** Digital Image Library Initialiser (version " |
563 | 106 + version + ") *****"); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
107 // directory cache |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
108 String[] bd = (String[]) dlConfig.getValue("basedir-list"); |
563 | 109 FileClass[] fcs = { FileClass.IMAGE, FileClass.TEXT }; |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
110 if (dlConfig.getAsBoolean("use-mapping")) { |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
111 // with mapping file |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
112 File mapConf = ServletOps.getConfigFile((File) dlConfig |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
113 .getValue("mapping-file"), context); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
114 dirCache = new AliasingDocuDirCache(bd, fcs, mapConf, |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
115 dlConfig); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
116 dlConfig.setValue("mapping-file", mapConf); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
117 } else { |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
118 // without mapping |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
119 dirCache = new DocuDirCache(bd, fcs, dlConfig); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
120 } |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
121 dlConfig.setValue("servlet.dir.cache", dirCache); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
122 // useAuthentication |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
123 if (dlConfig.getAsBoolean("use-authorization")) { |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
124 // DB version |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
125 //authOp = new DBAuthOpsImpl(util); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
126 // XML version |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
127 File authConf = ServletOps.getConfigFile((File) dlConfig |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
128 .getValue("auth-file"), context); |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
129 AuthOps authOp = new XMLAuthOps(authConf); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
130 dlConfig.setValue("servlet.auth.op", authOp); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
131 dlConfig.setValue("auth-file", authConf); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
132 } |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
133 // DocuImage class |
564 | 134 DocuImage di = DigilibConfiguration.getDocuImageInstance(); |
531 | 135 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
|
136 // disk cache for image toolkit |
26a3e127f45c
config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents:
821
diff
changeset
|
137 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
|
138 // TODO: methods for all toolkits? |
26a3e127f45c
config option img-diskcache-allowed to switch off disk caching in ImageIO
robcast
parents:
821
diff
changeset
|
139 ImageIO.setUseCache(dc); |
546 | 140 // digilib worker threads |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
141 int nt = dlConfig.getAsInt("worker-threads"); |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
142 int mt = dlConfig.getAsInt("max-waiting-threads"); |
858 | 143 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
|
144 dlConfig.setValue("servlet.worker.imageexecutor", imageEx); |
66f1ba72d07b
added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents:
903
diff
changeset
|
145 // digilib worker timeout |
66f1ba72d07b
added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents:
903
diff
changeset
|
146 long to = dlConfig.getAsInt("worker-timeout"); |
66f1ba72d07b
added timeout-parameter and timeout-handler to AsyncServletWorker.
robcast
parents:
903
diff
changeset
|
147 AsyncServletWorker.setTimeout(to); |
546 | 148 // PDF worker threads |
149 int pnt = dlConfig.getAsInt("pdf-worker-threads"); | |
150 int pmt = dlConfig.getAsInt("pdf-max-waiting-threads"); | |
858 | 151 pdfEx = new DigilibJobCenter<OutputStream>(pnt, pmt, false, "servlet.worker.pdfexecutor"); |
546 | 152 dlConfig.setValue("servlet.worker.pdfexecutor", pdfEx); |
548 | 153 // PDF image worker threads |
546 | 154 int pint = dlConfig.getAsInt("pdf-image-worker-threads"); |
155 int pimt = dlConfig.getAsInt("pdf-image-max-waiting-threads"); | |
858 | 156 pdfImageEx = new DigilibJobCenter<DocuImage>(pint, pimt, false, "servlet.worker.pdfimageexecutor"); |
546 | 157 dlConfig.setValue("servlet.worker.pdfimageexecutor", pdfImageEx); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
158 // set as the servlets main config |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
159 context.setAttribute("digilib.servlet.configuration", dlConfig); |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
160 |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
161 } catch (Exception e) { |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
162 logger.error("Error in initialisation: ", e); |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
163 } |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
164 } else { |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
165 // say hello in the log file |
817 | 166 logger.info("***** Digital Image Library Initialiser (version " |
563 | 167 + version + ") *****"); |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
168 logger.warn("Already initialised!"); |
297
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 } |
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
171 |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
172 /** clean up local resources |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
173 * |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
174 */ |
806
d811204ce5a4
Initialiser is now a ServletContextListener (doesn't need web.xml).
robcast
parents:
804
diff
changeset
|
175 public void contextDestroyed(ServletContextEvent arg0) { |
821 | 176 logger.info("Initialiser shutting down."); |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
177 if (dirCache != null) { |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
178 // shut down dirCache? |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
179 dirCache = null; |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
180 } |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
181 if (imageEx != null) { |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
182 // shut down image thread pool |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
183 List<Runnable> rj = imageEx.shutdownNow(); |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
184 int nrj = rj.size(); |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
185 if (nrj > 0) { |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
186 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
|
187 } |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
188 } |
559 | 189 if (pdfEx != null) { |
190 // shut down pdf thread pool | |
191 List<Runnable> rj = pdfEx.shutdownNow(); | |
192 int nrj = rj.size(); | |
193 if (nrj > 0) { | |
194 logger.error("Still running threads when shutting down PDF job queue: "+nrj); | |
195 } | |
196 } | |
197 if (pdfImageEx != null) { | |
198 // shut down pdf image thread pool | |
199 List<Runnable> rj = pdfImageEx.shutdownNow(); | |
200 int nrj = rj.size(); | |
201 if (nrj > 0) { | |
202 logger.error("Still running threads when shutting down PDF-image job queue: "+nrj); | |
203 } | |
204 } | |
544
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
205 } |
5ff500d6812a
more steps towards more standard java.util.concurrent design
robcast
parents:
543
diff
changeset
|
206 |
930 | 207 @Override |
208 public void requestDestroyed(ServletRequestEvent arg0) { | |
209 int i = dlConfig.openRequestCnt.decrementAndGet(); | |
210 logger.debug("ServletRequest destroyed. (cnt="+i+")"); | |
211 } | |
212 | |
213 @Override | |
214 public void requestInitialized(ServletRequestEvent arg0) { | |
937 | 215 dlConfig.webappRequestCnt.incrementAndGet(); |
930 | 216 int i = dlConfig.openRequestCnt.incrementAndGet(); |
217 logger.debug("ServletRequest created. (cnt="+i+")"); | |
218 } | |
219 | |
297
b74c914b48a9
Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents:
diff
changeset
|
220 } |