You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/03/11 08:49:13 UTC

svn commit: r635835 - in /cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet: CocoonReloadingListener.java ReloadingServlet.java ReloadingServletFilter.java

Author: reinhard
Date: Tue Mar 11 00:49:12 2008
New Revision: 635835

URL: http://svn.apache.org/viewvc?rev=635835&view=rev
Log:
the previous solution only wrote to the console after the first 'update' event had arrived. In practice this will mostly be good enough but if your first change is a 'create' event, it doesn't appear. 

this fix turns on console output when the first servlet or filter is called.

Modified:
    cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/CocoonReloadingListener.java
    cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServlet.java
    cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServletFilter.java

Modified: cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/CocoonReloadingListener.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/CocoonReloadingListener.java?rev=635835&r1=635834&r2=635835&view=diff
==============================================================================
--- cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/CocoonReloadingListener.java (original)
+++ cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/CocoonReloadingListener.java Tue Mar 11 00:49:12 2008
@@ -28,7 +28,7 @@
 
     private static boolean reload = false;
 
-    private boolean consoleOutput = false;
+    private static boolean consoleOutput = false;
 
     public CocoonReloadingListener() {
         super();
@@ -37,14 +37,12 @@
     public void onFileChange(File file) {
         super.onFileChange(file);
         // after the first change/deletion of a file is detected, log to the console
-        this.consoleOutput = true;
         changeDetected(file, "update");
     }
 
     public void onFileDelete(File file) {
         super.onFileDelete(file);
         // after the first change/deletion of a file is detected, log to the console
-        this.consoleOutput = true;
         changeDetected(file, "delete");
     }
 
@@ -65,13 +63,17 @@
                 changedFileParentPath.endsWith("config/spring")                     // local Spring bean configurations
            ) {
             log.debug("Configuration or .class file change detected [" + operation + "]: " + changedFile);
-            if (this.consoleOutput) {
+            if (CocoonReloadingListener.consoleOutput) {
                 System.out.println("RCL [" + operation + "]: " + changedFile);
             }
             reload = true;
         } else {
             log.debug("Other file change detected, no reload [" + operation + "]: " + changedFile);  // any other file change
         }
+    }
+
+    public static void enableConsoleOutput() {
+        CocoonReloadingListener.consoleOutput = true;
     }
 
     public static synchronized boolean isReload() {

Modified: cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServlet.java?rev=635835&r1=635834&r2=635835&view=diff
==============================================================================
--- cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServlet.java (original)
+++ cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServlet.java Tue Mar 11 00:49:12 2008
@@ -28,7 +28,7 @@
 /**
  * This servlet builds a classloading sandbox and runs another servlet inside
  * that sandbox. The purpose is to use the reloading classloader to load the
- * 
+ *
  * <p>
  * This servlet propagates all initialisation parameters to the sandboxed
  * servlet, and requires the parameter <code>servlet-class</code>.
@@ -49,7 +49,7 @@
     public void init(ServletConfig config) throws ServletException {
         super.init(config);
         this.config = config;
-        
+
         String servletName = config.getInitParameter("servlet-class");
         if (servletName == null) {
             throw new ServletException("ReloadingServlet: Init-Parameter 'servlet-class' is missing.");
@@ -86,6 +86,8 @@
         final ClassLoader old = Thread.currentThread().getContextClassLoader();
         try {
             Thread.currentThread().setContextClassLoader(ReloadingClassloaderManager.getClassLoader(this.config.getServletContext()));
+
+            CocoonReloadingListener.enableConsoleOutput();
             this.servlet.service(request, response);
         } catch(Throwable t) {
             t.printStackTrace();

Modified: cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServletFilter.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServletFilter.java?rev=635835&r1=635834&r2=635835&view=diff
==============================================================================
--- cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServletFilter.java (original)
+++ cocoon/trunk/tools/cocoon-rcl/cocoon-rcl-webapp-wrapper/src/main/java/org/apache/cocoon/tools/rcl/wrapper/servlet/ReloadingServletFilter.java Tue Mar 11 00:49:12 2008
@@ -47,10 +47,11 @@
             try {
                 Thread.currentThread().setContextClassLoader(ReloadingClassloaderManager.getClassLoader(this.context));
 
+                CocoonReloadingListener.enableConsoleOutput();
                 this.filter.doFilter(request, response, chain);
             } finally {
                 Thread.currentThread().setContextClassLoader(old);
-            }            
+            }
         }
     }