You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2012/03/06 15:13:33 UTC

svn commit: r1297489 - in /myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting: monitor/ResourceMonitor.java startup/StartupServletContextPluginChainLoader.java

Author: werpu
Date: Tue Mar  6 14:13:33 2012
New Revision: 1297489

URL: http://svn.apache.org/viewvc?rev=1297489&view=rev
Log:
http://issues.apache.org/jira/browse/EXTSCRIPT-154 remove duplicated calls in the startup process adding the missing links in the startup and shutdown, ready for testing now

Modified:
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/startup/StartupServletContextPluginChainLoader.java

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java?rev=1297489&r1=1297488&r2=1297489&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java Tue Mar  6 14:13:33 2012
@@ -73,6 +73,7 @@ public class ResourceMonitor extends Thr
     static WeakReference<ServletContext> _externalContext;
 
     public static synchronized void startup(ServletContext externalContext) {
+
         if (_externalContext == null) return;
         _externalContext = new WeakReference<ServletContext>(externalContext);
         if(getInstance() != null) return;
@@ -113,26 +114,32 @@ public class ResourceMonitor extends Thr
      * which performs the entire scanning process
      */
     public void run() {
-        WeavingContext context = WeavingContext.getInstance();
+
         while(_running) {
-            sleep();
+            if(!_running) break;
             //we run the full scan on the classes to bring our data structures up to the task
-            context.initialFullScan();
-            //we compile wherever needed, taints are now in place due to our scan already being performed
-            if(context.compile()) {
-                //we now have to perform a full dependency scan to bring our dependency map to the latest state
-                context.scanDependencies();
-                context.markTaintedDependends();
-                //we next retaint all classes according to our dependency graph
-            }
-
-
+            performMonitoringTask();
+            sleep();
         }
+
         if (_log.isLoggable(Level.INFO)) {
             _log.info("[EXT-SCRIPTING] Dynamic reloading watch daemon is shutting down");
         }
     }
 
+    public void performMonitoringTask()
+    {
+        WeavingContext context = WeavingContext.getInstance();
+        context.initialFullScan();
+        //we compile wherever needed, taints are now in place due to our scan already being performed
+        if(context.compile()) {
+            //we now have to perform a full dependency scan to bring our dependency map to the latest state
+            context.scanDependencies();
+            //we next retaint all classes according to our dependency graph
+            context.markTaintedDependends();
+        }
+    }
+
     private void sleep()
     {
         try {
@@ -150,30 +157,7 @@ public class ResourceMonitor extends Thr
      * as marks the engine as having to do a full recompile
      */
     private final void checkForChanges() {
-    /*    ScriptingWeaver weaver = WeavingContext.getWeaver();
-        if (weaver == null) return;
-        weaver.scanForAddedClasses();
-
-        for (Map.Entry<String, ClassResource> it : this._classMap.entrySet()) {
-
-            File proxyFile = it.getValue().getFile();
-            if (isModified(it, proxyFile)) {
-
-                _systemRecompileMap.put(it.getValue().getScriptingEngine(), Boolean.TRUE);
-                ClassResource meta = it.getValue();
-                meta.getRefreshAttribute().requestRefresh();
-                printInfo(it, proxyFile);
-
-                dependencyTainted(meta.getAClass().getName());
-
-                //we add our log entry for further reference
-                WeavingContext.getRefreshContext().addTaintLogEntry(meta);
-                WeavingContext.getExtensionEventRegistry().sendEvent(new ClassTaintedEvent(meta));
-            }
-            //}
-        }
-        //we clean up the taint log
-        WeavingContext.getRefreshContext().gcTaintLog();*/
+   
     }
 
     /**
@@ -185,51 +169,9 @@ public class ResourceMonitor extends Thr
      * @param className the origin classname which needs to be walked recursively
      */
     private void dependencyTainted(String className) {
-        /*Set<String> referrers = _dependencyMap.getReferringClasses(className);
-        if (referrers == null) return;
-        for (String referrer : referrers) {
-            ClassResource metaData = _classMap.get(referrer);
-            if (metaData == null) continue;
-            if (metaData.getRefreshAttribute().requiresRefresh()) continue;
-            printInfo(metaData);
-
-            metaData.getRefreshAttribute().requestRefresh();
-            
-            dependencyTainted(metaData.getAClass().getName());
-            WeavingContext.getRefreshContext().addTaintLogEntry(metaData);
-            WeavingContext.getExtensionEventRegistry().sendEvent(new ClassTaintedEvent(metaData));
-        } */
-    }
-
-    /*private final boolean isModified(Map.Entry<String, ClassResource> it, File proxyFile) {
-        return proxyFile.lastModified() > it.getValue().getRefreshAttribute().getRequestedRefreshDate() ;
-    }
-
-    private void printInfo(ClassResource it) {
-        if (_log.isLoggable(Level.INFO)) {
-            _log.log(Level.INFO, "[EXT-SCRIPTING] Tainting Dependency: {0}", it.getFile().getAbsolutePath());
-        }
-    }
-
-    private void printInfo(Map.Entry<String, ClassResource> it, File proxyFile) {
-        if (_log.isLoggable(Level.INFO)) {
-            _log.log(Level.INFO, "[EXT-SCRIPTING] comparing {0} Dates: {1} {2} ", new String[]{it.getKey(), Long.toString(proxyFile.lastModified()), Long.toString(it.getValue().getRefreshAttribute().getExecutedRefreshDate())});
-            _log.log(Level.INFO, "[EXT-SCRIPTING] Tainting: {0}", it.getValue().getFile().getAbsolutePath());
-        }
-    }
-
-    public boolean isRunning() {
-        return _running;
-    }
-
-
-    public Map<Integer, Boolean> getSystemRecompileMap() {
-        return _systemRecompileMap;
+    
     }
 
-    public void setSystemRecompileMap(Map<Integer, Boolean> systemRecompileMap) {
-        this._systemRecompileMap = systemRecompileMap;
-    } */
 
 
     public void setRunning(boolean running) {

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/startup/StartupServletContextPluginChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/startup/StartupServletContextPluginChainLoader.java?rev=1297489&r1=1297488&r2=1297489&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/startup/StartupServletContextPluginChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/startup/StartupServletContextPluginChainLoader.java Tue Mar  6 14:13:33 2012
@@ -25,6 +25,7 @@ import rewrite.org.apache.myfaces.extens
 import rewrite.org.apache.myfaces.extensions.scripting.common.util.ReflectUtil;
 import rewrite.org.apache.myfaces.extensions.scripting.context.WeavingContext;
 import rewrite.org.apache.myfaces.extensions.scripting.engine.FactoryEngines;
+import rewrite.org.apache.myfaces.extensions.scripting.monitor.ResourceMonitor;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
@@ -57,16 +58,13 @@ public class StartupServletContextPlugin
             context.getConfiguration().init(servletContext);
             _log.info("[EXT-SCRIPTING] Loading Scripting end");
 
-            _log.info("[EXT-SCRIPTING] Initial Scan");
-            context.initialFullScan();
-            _log.info("[EXT-SCRIPTING] Initial Compile");
-            //we can rely on the compiler picking the files
-            context.compile();
-            _log.info("[EXT-SCRIPTING] init the chain loader");
-            initChainLoader(servletContext);
+            _log.info("[EXT-SCRIPTING] Initial Scan and compile");
+            ResourceMonitor.getInstance().performMonitoringTask();
             _log.info("[EXT-SCRIPTING] Starting Change Monitor");
-            //TODO code the initial watchdog daemon start here
+            ResourceMonitor.getInstance().start();
             _log.info("[EXT-SCRIPTING] Startup done");
+            _log.info("[EXT-SCRIPTING] init the chain loader for class loading");
+            initChainLoader(servletContext);
 
         }
         catch (IOException e)
@@ -111,11 +109,6 @@ public class StartupServletContextPlugin
     {
         //context is destroyed we have to shut down our daemon as well, by giving it
         //a hint to shutdown
-
-        //TODO this is probably not needed because we run in a daemon thread anyway
-        //so the servlet should not have a problem to shut it down externally
-        /*  RefreshContext rContext = (RefreshContext) evt.getServletContext().getAttribute("RefreshContext");
-        rContext.getDaemon().setRunning(false);
-        */
+        ResourceMonitor.getInstance().setRunning(false);
     }
 }