Author: hlship
Date: Thu May 17 20:02:49 2007
New Revision: 539229

URL: http://svn.apache.org/viewvc?view=rev&rev=539229
Log:
TAPESTRY-1464: Cannot Subclass TapestryFilter to add custom init() and 
destroy() logic

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/TapestryFilter.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/TapestryFilter.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/TapestryFilter.java?view=diff&rev=539229&r1=539228&r2=539229
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/TapestryFilter.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/TapestryFilter.java
 Thu May 17 20:02:49 2007
@@ -90,12 +90,33 @@
                 "HttpServletRequestHandler",
                 HttpServletRequestHandler.class);
 
+        init(_registry);
+
         long toFinish = System.currentTimeMillis();
 
         _log.info(format("Startup time: %,d ms to build IoC Registry, %,d ms 
overall.", toRegistry
                 - start, toFinish - start));
     }
 
+    protected final FilterConfig getFilterConfig()
+    {
+        return _config;
+    }
+
+    /**
+     * Invoked from [EMAIL PROTECTED] #init(FilterConfig)} after the Registry 
has been created, to allow any
+     * additional initialization to occur. This implementation does nothing, 
and my be overriden in
+     * subclasses.
+     * 
+     * @param registry
+     *            from which services may be extracted
+     * @throws ServletException
+     */
+    protected void init(Registry registry) throws ServletException
+    {
+
+    }
+
     /**
      * Overridden in subclasses to provide additional module definitions 
beyond those normally
      * located. This implementation returns an empty array.
@@ -124,13 +145,24 @@
 
     /** Shuts down and discards the registry. */
     public final void destroy()
-
     {
         _registry.shutdown();
 
         _registry = null;
         _config = null;
         _handler = null;
+    }
+
+    /**
+     * Invoked from [EMAIL PROTECTED] #destroy()} to allow subclasses to add 
additional shutdown logic to the
+     * filter. The Registry will be shutdown after this call. This 
implementation does nothing, and
+     * may be overridden in subclasses.
+     * 
+     * @param registry
+     */
+    protected void destroy(Registry registry)
+    {
+
     }
 
 }


Reply via email to