- Add a Jasper server listener to setup the JspFactory before any component related...
authorremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 19 Apr 2006 15:18:53 +0000 (15:18 +0000)
committerremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 19 Apr 2006 15:18:53 +0000 (15:18 +0000)
  started.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@395266 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/core/JasperListener.java [new file with mode: 0644]

diff --git a/java/org/apache/catalina/core/JasperListener.java b/java/org/apache/catalina/core/JasperListener.java
new file mode 100644 (file)
index 0000000..766ba11
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2002,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.catalina.core;
+
+
+import org.apache.catalina.Lifecycle;
+import org.apache.catalina.LifecycleEvent;
+import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.util.StringManager;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+/**
+ * This listener is designed to initialize Jasper before any web applications are
+ * started.
+ *
+ * @author Remy Maucherat
+ * @version $Revision: 374878 $ $Date: 2006-02-04 16:02:39 +0100 (sam., 04 févr. 2006) $
+ * @since 4.1
+ */
+
+public class JasperListener
+    implements LifecycleListener {
+
+    private static Log log = LogFactory.getLog(JasperListener.class);
+
+    /**
+     * The string manager for this package.
+     */
+    protected StringManager sm =
+        StringManager.getManager(Constants.Package);
+
+    
+    // ---------------------------------------------- LifecycleListener Methods
+
+
+    /**
+     * Primary entry point for startup and shutdown events.
+     *
+     * @param event The event that has occurred
+     */
+    public void lifecycleEvent(LifecycleEvent event) {
+
+        if (Lifecycle.INIT_EVENT.equals(event.getType())) {
+            try {
+                // Set JSP factory
+                this.getClass().getClassLoader().loadClass
+                    ("org.apache.jasper.compiler.JspRuntimeContext");
+            } catch (Throwable t) {
+                // Should not occur, obviously
+                log.warn("Couldn't initialize Jasper", t);
+            }
+            // Another possibility is to do directly:
+            // JspFactory.setDefaultFactory(new JspFactoryImpl());
+        }
+
+    }
+
+
+}