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 2010/06/28 15:40:39 UTC

svn commit: r958573 - in /myfaces/extensions/scripting/trunk/extscript-core-root: extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/ extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ extscr...

Author: werpu
Date: Mon Jun 28 13:40:38 2010
New Revision: 958573

URL: http://svn.apache.org/viewvc?rev=958573&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-139

renaming of the refresh meta data to something more useful also introduction of watched resources instead
to have a better meta data api

Added:
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshAttribute.java
      - copied, changed from r958564, myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ReloadingMetadata.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java
      - copied, changed from r958564, myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/FileChangedDaemon.java
Removed:
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/FileChangedDaemon.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ReloadingMetadata.java
Modified:
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/MyFacesBeanHandler.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ClassTaintedEvent.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryRenderer.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContext.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContextInitializer.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/JavaDependencyScanner.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ScannerClassloader.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ThrowawayClassloader.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshContext.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryTest.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/refreshContext/RefreshContextTest.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategyTest.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/TWeavingContext.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-myfaces2-extensions/src/main/java/org/apache/myfaces/extensions/scripting/jsf2/annotation/GenericAnnotationScanner.java

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/BaseWeaver.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/BaseWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/BaseWeaver.java Mon Jun 28 13:40:38 2010
@@ -24,8 +24,8 @@ import org.apache.myfaces.extensions.scr
 import org.apache.myfaces.extensions.scripting.core.util.FileUtils;
 import org.apache.myfaces.extensions.scripting.core.util.StringUtils;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
 import org.apache.myfaces.extensions.scripting.api.extensionevents.FullRecompileRecommended;
 import org.apache.myfaces.extensions.scripting.api.extensionevents.FullScanRecommended;
 
@@ -113,8 +113,8 @@ public abstract class BaseWeaver impleme
      * @param reloadMeta the metadata to be investigated for reload candidacy
      * @return true if it is a reload candidate
      */
-    public boolean isReloadCandidate(ReloadingMetadata reloadMeta) {
-        return reloadMeta != null && assertScriptingEngine(reloadMeta) && reloadMeta.isTaintedOnce();
+    public boolean isReloadCandidate(RefreshAttribute reloadMeta) {
+        return reloadMeta != null && assertScriptingEngine(reloadMeta) && reloadMeta.getRequestedRefreshDate() != 0l;
     }
 
     /**
@@ -122,7 +122,7 @@ public abstract class BaseWeaver impleme
      *
      * @return a map with the class name as key and the reloading meta data as value
      */
-    protected Map<String, ReloadingMetadata> getClassMap() {
+    protected Map<String, RefreshAttribute> getClassMap() {
         return WeavingContext.getFileChangedDaemon().getClassMap();
     }
 
@@ -134,12 +134,12 @@ public abstract class BaseWeaver impleme
      * @return the reloaded object with all properties transferred or the original object if no reloading was needed
      */
     public Object reloadScriptingInstance(Object scriptingInstance, int artifactType) {
-        Map<String, ReloadingMetadata> classMap = getClassMap();
+        Map<String, RefreshAttribute> classMap = getClassMap();
         if (classMap.size() == 0) {
             return scriptingInstance;
         }
 
-        ReloadingMetadata reloadMeta = classMap.get(scriptingInstance.getClass().getName());
+        RefreshAttribute reloadMeta = classMap.get(scriptingInstance.getClass().getName());
 
         //This gives a minor speedup because we jump out as soon as possible
         //files never changed do not even have to be considered
@@ -161,7 +161,7 @@ public abstract class BaseWeaver impleme
      * by reloading its file contents and then reweaving it
      */
     public Class reloadScriptingClass(Class aclass) {
-        ReloadingMetadata metadata = getClassMap().get(aclass.getName());
+        RefreshAttribute metadata = getClassMap().get(aclass.getName());
 
         if (metadata == null)
             return aclass;
@@ -170,14 +170,14 @@ public abstract class BaseWeaver impleme
             return null;
         }
         
-        if (!metadata.isTainted()) {
+        if (!metadata.requiresRefresh()) {
             //if not tainted then we can recycle the last class loaded
             return metadata.getAClass();
         }
         synchronized (RefreshContext.COMPILE_SYNC_MONITOR) {
             //another chance just in case someone has reloaded between
             //the last if and synchronized, that way we can reduce the number of waiting threads
-            if (!metadata.isTainted()) {
+            if (!metadata.requiresRefresh()) {
                 //if not tainted then we can recycle the last class loaded
                 return metadata.getAClass();
             }
@@ -193,8 +193,8 @@ public abstract class BaseWeaver impleme
      */
     public Class loadScriptingClassFromName(String className) {
 
-        Map<String, ReloadingMetadata> classMap = getClassMap();
-        ReloadingMetadata metadata = classMap.get(className);
+        Map<String, RefreshAttribute> classMap = getClassMap();
+        RefreshAttribute metadata = classMap.get(className);
         if (metadata == null) {
             String separator = FileUtils.getFileSeparatorForRegex();
             String fileName = className.replaceAll("\\.", separator) + getFileEnding();
@@ -223,7 +223,7 @@ public abstract class BaseWeaver impleme
         return null;
     }
 
-    protected boolean assertScriptingEngine(ReloadingMetadata reloadMeta) {
+    protected boolean assertScriptingEngine(RefreshAttribute reloadMeta) {
         return reloadMeta.getScriptingEngine() == getScriptingEngine();
     }
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/MyFacesBeanHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/MyFacesBeanHandler.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/MyFacesBeanHandler.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/MyFacesBeanHandler.java Mon Jun 28 13:40:38 2010
@@ -25,7 +25,7 @@ import org.apache.myfaces.config.element
 import org.apache.myfaces.extensions.scripting.core.util.ReflectUtil;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 
 import javax.faces.context.FacesContext;
 import java.lang.reflect.InvocationTargetException;
@@ -149,9 +149,9 @@ public class MyFacesBeanHandler implemen
             //one bean tainted we have to taint all dynamic beans otherwise we will get classcast
             //exceptions
             /*getLog().info("[EXT-SCRIPTING] Tainting ");
-            ReloadingMetadata metaData = WeavingContext.getFileChangedDaemon().getClassMap().get(managedBeanClass.getName());
+            RefreshAttribute metaData = WeavingContext.getFileChangedDaemon().getClassMap().get(managedBeanClass.getName());
             if (metaData != null) {
-                metaData.setTainted(true);
+                metaData.requestRefresh();
             }*/
         }
     }
@@ -183,8 +183,8 @@ public class MyFacesBeanHandler implemen
     private Set<String> getTaintedClasses() {
         Set<String> tainted = new HashSet<String>();
 
-        for (Map.Entry<String, ReloadingMetadata> it : WeavingContext.getFileChangedDaemon().getClassMap().entrySet()) {
-            if (it.getValue().getScriptingEngine() == getScriptingEngine() && it.getValue().isTainted()) {
+        for (Map.Entry<String, RefreshAttribute> it : WeavingContext.getFileChangedDaemon().getClassMap().entrySet()) {
+            if (it.getValue().getScriptingEngine() == getScriptingEngine() && it.getValue().requiresRefresh()) {
                 tainted.add(it.getKey());
             }
         }

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ClassTaintedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ClassTaintedEvent.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ClassTaintedEvent.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/api/extensionevents/ClassTaintedEvent.java Mon Jun 28 13:40:38 2010
@@ -19,7 +19,7 @@
 
 package org.apache.myfaces.extensions.scripting.api.extensionevents;
 
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -27,17 +27,17 @@ import org.apache.myfaces.extensions.scr
  */
 
 public class ClassTaintedEvent extends ExtensionEvent{
-    ReloadingMetadata metaData;
+    RefreshAttribute _metaData;
 
-    public ClassTaintedEvent( ReloadingMetadata metaData) {
-        this.metaData = metaData;
+    public ClassTaintedEvent( RefreshAttribute metaData) {
+        this._metaData = metaData;
     }
 
-    public ReloadingMetadata getMetaData() {
-        return metaData;
+    public RefreshAttribute getMetaData() {
+        return _metaData;
     }
 
-    public void setMetaData(ReloadingMetadata metaData) {
-        this.metaData = metaData;
+    public void setMetaData(RefreshAttribute metaData) {
+        this._metaData = metaData;
     }
 }

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryRenderer.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryRenderer.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryRenderer.java Mon Jun 28 13:40:38 2010
@@ -20,7 +20,7 @@
 package org.apache.myfaces.extensions.scripting.components;
 
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -50,7 +50,7 @@ public class TaintHistoryRenderer extend
         startDiv(component, responseWriter, "historyBox");
         int lastTainted = ((TaintHistory) component).getNoEntries();
 
-        Collection<ReloadingMetadata> result = WeavingContext.getRefreshContext().getLastTainted(lastTainted);
+        Collection<RefreshAttribute> result = WeavingContext.getRefreshContext().getLastTainted(lastTainted);
         if (result == null || result.isEmpty()) {
             responseWriter.write(RendererConst.NO_TAINT_HISTORY_FOUND);
         } else {
@@ -62,9 +62,9 @@ public class TaintHistoryRenderer extend
 
     }
 
-    private void writeHistory(UIComponent component, ResponseWriter responseWriter, Collection<ReloadingMetadata> result) throws IOException {
+    private void writeHistory(UIComponent component, ResponseWriter responseWriter, Collection<RefreshAttribute> result) throws IOException {
         startDiv(component, responseWriter, "history");
-        for (ReloadingMetadata entry : result) {
+        for (RefreshAttribute entry : result) {
             startDiv(component, responseWriter, RendererConst.LINE);
             writeDiv(component, responseWriter, RendererConst.TIMESTAMP, DateFormat.getInstance().format(new Date(entry.getTimestamp())));
             writeDiv(component, responseWriter, RendererConst.CHANGED_FILE, entry.getFileName());

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContext.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContext.java Mon Jun 28 13:40:38 2010
@@ -21,7 +21,7 @@ package org.apache.myfaces.extensions.sc
 import org.apache.myfaces.extensions.scripting.api.*;
 import org.apache.myfaces.extensions.scripting.core.DummyWeaver;
 import org.apache.myfaces.extensions.scripting.core.MethodLevelReloadingHandler;
-import org.apache.myfaces.extensions.scripting.monitor.FileChangedDaemon;
+import org.apache.myfaces.extensions.scripting.monitor.ResourceMonitor;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
 import org.apache.myfaces.extensions.scripting.api.CompilationResult;
 import org.apache.myfaces.extensions.scripting.api.extensionevents.ExtensionEventRegistry;
@@ -267,8 +267,8 @@ public class WeavingContext {
                 new MethodLevelReloadingHandler(o, artifactType));
     }
 
-    public static FileChangedDaemon getFileChangedDaemon() {
-        FileChangedDaemon daemon = getRefreshContext().getDaemon();
+    public static ResourceMonitor getFileChangedDaemon() {
+        ResourceMonitor daemon = getRefreshContext().getDaemon();
         if (daemon.getWeavers() == null) {
             daemon.setWeavers(getWeaver());
         }

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContextInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContextInitializer.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContextInitializer.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/util/WeavingContextInitializer.java Mon Jun 28 13:40:38 2010
@@ -27,7 +27,7 @@ import org.apache.myfaces.extensions.scr
 import org.apache.myfaces.extensions.scripting.loaders.groovy.GroovyScriptingWeaver;
 import org.apache.myfaces.extensions.scripting.loaders.java.JavaScriptingWeaver;
 import org.apache.myfaces.extensions.scripting.loaders.java.RecompiledClassLoader;
-import org.apache.myfaces.extensions.scripting.monitor.FileChangedDaemon;
+import org.apache.myfaces.extensions.scripting.monitor.ResourceMonitor;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
 import org.apache.myfaces.extensions.scripting.api.extensionevents.ExtensionEventRegistry;
 import org.apache.myfaces.extensions.scripting.servlet.ScriptingServletFilter;
@@ -128,13 +128,14 @@ public class WeavingContextInitializer {
 
     private static void initFileChangeDaemon(ServletContext servletContext) {
 
-        org.apache.myfaces.extensions.scripting.monitor.FileChangedDaemon.startup(servletContext);
-        WeavingContext.getRefreshContext().setDaemon(FileChangedDaemon.getInstance());
+        ResourceMonitor.startup(servletContext);
+        WeavingContext.getRefreshContext().setDaemon(ResourceMonitor.getInstance());
     }
 
     private static void initExtensionEventSystem(ServletContext servletContext) {
         ExtensionEventRegistry registry = new ExtensionEventRegistry();
         servletContext.setAttribute(ScriptingConst.CTX_ATTR_EXTENSION_EVENT_SYSTEM, registry);
+        WeavingContext.setExtensionEventRegistry(registry);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/JavaDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/JavaDependencyScanner.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/JavaDependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/JavaDependencyScanner.java Mon Jun 28 13:40:38 2010
@@ -28,7 +28,7 @@ import org.apache.myfaces.extensions.scr
 import org.apache.myfaces.extensions.scripting.core.dependencyScan.registry.DependencyRegistryImpl;
 import org.apache.myfaces.extensions.scripting.core.dependencyScan.registry.ExternalFilterDependencyRegistry;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
@@ -136,7 +136,7 @@ public class JavaDependencyScanner imple
 
         final Set<String> possibleDynamicClasses = new HashSet<String>(_weaver.loadPossibleDynamicClasses());
         Map<Integer, Boolean> recompileMap = WeavingContext.getRefreshContext().getDaemon().getSystemRecompileMap();
-        Map<String, ReloadingMetadata> classMap = WeavingContext.getRefreshContext().getDaemon().getClassMap();
+        Map<String, RefreshAttribute> classMap = WeavingContext.getRefreshContext().getDaemon().getClassMap();
         Boolean alreadyTainted = recompileMap.get(getEngineType());
         if (alreadyTainted != null && alreadyTainted) {
             return;

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ScannerClassloader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ScannerClassloader.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ScannerClassloader.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ScannerClassloader.java Mon Jun 28 13:40:38 2010
@@ -20,8 +20,8 @@ package org.apache.myfaces.extensions.sc
 
 import org.apache.myfaces.extensions.scripting.core.util.ClassUtils;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
 
 import java.io.*;
 import java.util.HashMap;
@@ -78,8 +78,8 @@ public class ScannerClassloader extends 
             return super.loadClass(className);
         }
 
-        ReloadingMetadata data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
-        if (data != null && !data.isTainted()) {
+        RefreshAttribute data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
+        if (data != null && !data.requiresRefresh()) {
             return data.getAClass();
         }
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ThrowawayClassloader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ThrowawayClassloader.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ThrowawayClassloader.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/loaders/java/ThrowawayClassloader.java Mon Jun 28 13:40:38 2010
@@ -21,8 +21,8 @@ package org.apache.myfaces.extensions.sc
 import org.apache.myfaces.extensions.scripting.core.util.ClassUtils;
 import org.apache.myfaces.extensions.scripting.core.util.FileUtils;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
 
 import java.io.*;
 import java.util.Collection;
@@ -93,8 +93,8 @@ public class ThrowawayClassloader extend
         if (target.exists()) {
             _logger.log(Level.FINE,"[EXT-SCRIPTING] target {0} exists", className);
 
-            ReloadingMetadata data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
-            if (data != null && !data.isTainted()) {
+            RefreshAttribute data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
+            if (data != null && !data.requiresRefresh()) {
                 _logger.log(Level.INFO,"[EXT-SCRIPTING] data from target {0} found but not tainted yet", className);
 
                 return data.getAClass();
@@ -121,7 +121,7 @@ public class ThrowawayClassloader extend
                 //we have to do it here because just in case
                 //a dependent class is loaded as well we run into classcast exceptions
                 if (data != null) {
-                    data.setTainted(false);
+                    data.executedRefresh();
 
                     retVal = super.defineClass(className, fileContent, 0, fileLength);
 
@@ -155,7 +155,7 @@ public class ThrowawayClassloader extend
     private Class<?> storeReloadableDefinitions(String className, int fileLength, byte[] fileContent) {
         Class retVal;
         retVal = super.defineClass(className, fileContent, 0, fileLength);
-        ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
+        RefreshAttribute reloadingMetaData = new RefreshAttribute();
         reloadingMetaData.setAClass(retVal);
         //find the source for the given class and then
         //store the filename
@@ -182,8 +182,7 @@ public class ThrowawayClassloader extend
         reloadingMetaData.setFileName(fileName);
         reloadingMetaData.setSourcePath(rootDir);
         reloadingMetaData.setTimestamp(sourceFile.lastModified());
-        reloadingMetaData.setTainted(false);
-        reloadingMetaData.setTaintedOnce(true);
+        reloadingMetaData.executedRefresh();
         reloadingMetaData.setScriptingEngine(_scriptingEngine);
 
         WeavingContext.getFileChangedDaemon().getClassMap().put(className, reloadingMetaData);

Copied: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshAttribute.java (from r958564, myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ReloadingMetadata.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshAttribute.java?p2=myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshAttribute.java&p1=myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ReloadingMetadata.java&r1=958564&r2=958573&rev=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ReloadingMetadata.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshAttribute.java Mon Jun 28 13:40:38 2010
@@ -29,37 +29,92 @@ import java.util.logging.Logger;
  *
  * @author Werner Punz
  */
-public class ReloadingMetadata implements Cloneable {
+public class RefreshAttribute implements Cloneable {
 
-    /*
-     * volatile due to the ram concurrency behavior
-     * of the instance vars jdk 5+
+    /**
+     * <p>The timestamp in milliseconds of the last time that the bean
+     * definition that this attribute belongs to has been requested to
+     * refresh itself.</p>
+     */
+    private long refreshRequested;
+
+    /**
+     * <p>The timestamp in milliseconds of the last time that the bean
+     * definition that this attribute belongs to has been actually
+     * refreshed.</p>
      */
-    volatile boolean _tainted = false;
-    volatile boolean _annotated = false;
-    volatile boolean _taintedOnce = false;
+    private long refreshExecuted;
+
+
+    //Resource facility which has to be watched over
+    //TODO this will be moved into a separate resource facility
+    
+    /*
+    * volatile due to the ram concurrency behavior
+    * of the instance vars jdk 5+
+    */
     volatile String _fileName = "";
     volatile String _sourcePath = "";
     volatile Class _aClass = null;
     volatile long _timestamp = 0l;
     volatile int _scriptingEngine = ScriptingConst.ENGINE_TYPE_JSF_NO_ENGINE;
 
-    public boolean isTainted() {
-        return _tainted;
+
+
+    /**
+     * <p>By calling this method the user is able to request another refresh. Note that
+     * this doesn't cause the bean factory to refresh the bean definition immediately,
+     * but rather it just signals a request. The bean definition will be refreshed once
+     * the bean factory has to deal with the next bean request (i.e. a call to
+     * getBean()).</p>
+     */
+    public void requestRefresh() {
+        refreshRequested = System.currentTimeMillis();
     }
 
-    public void setTainted(boolean tainted) {
-        this._tainted = tainted;
+    /**
+     * <p>Returns the timestamp in milliseconds of the last time that a refresh operation
+     * has been requested.</p>
+     *
+     * @return the timestamp in milliseconds of the last refresh request
+     */
+    public long getRequestedRefreshDate() {
+        return refreshRequested;
     }
 
-    public boolean isTaintedOnce() {
-        return _taintedOnce;
+    /**
+     * <p>By calling this method the user indicates that the according bean definition
+     * has just been refreshed, which means that the method #{@link #requiresRefresh()}
+     * will return <code>false</code> until the user requests the next refresh.</p>
+     */
+    public void executedRefresh() {
+        refreshExecuted = System.currentTimeMillis();
     }
 
-    public void setTaintedOnce(boolean taintedOnce) {
-        this._taintedOnce = taintedOnce;
+    /**
+     * <p>Returns the timestamp in milliseconds of the last time that a refresh operation
+     * has been executed.</p>
+     *
+     * @return the timestamp in milliseconds of the last executed refresh operation
+     */
+    public long getExecutedRefreshDate() {
+        return refreshExecuted;
     }
 
+    /**
+     * <p>Determines whether a refresh is required, i.e. whether the user has requested
+     * another refresh operation by calling {@link #requestRefresh()} recently. Note that
+     * a call to this method only determines whether the bean definition on its own has
+     * to be refreshed (i.e. it doesn't even consider a particular bean instance).</p>
+     *
+     * @return whether a refresh call is required
+     */
+    public boolean requiresRefresh() {
+        return getExecutedRefreshDate() < getRequestedRefreshDate();
+    }
+
+   //--- todo move this into a separate resource handling facility
+
     public String getFileName() {
         return _fileName;
     }
@@ -100,20 +155,12 @@ public class ReloadingMetadata implement
 
         this._sourcePath = sourcePath;
     }
-
-    public boolean isAnnotated() {
-        return _annotated;
-    }
-
-    public void setAnnotated(boolean annotated) {
-        this._annotated = annotated;
-    }
-
-    public ReloadingMetadata getClone() {
+   
+    public RefreshAttribute getClone() {
         try {
-            return (ReloadingMetadata) clone();
+            return (RefreshAttribute) clone();
         } catch (CloneNotSupportedException e) {
-            Logger logger = Logger.getLogger(ReloadingMetadata.class.getName());
+            Logger logger = Logger.getLogger(RefreshAttribute.class.getName());
             logger.log(Level.SEVERE, "", e);
             //cannot happen
         }

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshContext.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshContext.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/RefreshContext.java Mon Jun 28 13:40:38 2010
@@ -95,16 +95,16 @@ public class RefreshContext {
      * depending on the state, changed => tainted == true, not changed
      * tainted == false!
      */
-    volatile FileChangedDaemon _daemon = null;
+    volatile ResourceMonitor _daemon = null;
 
     /**
      * internal class used by our own history log
      */
     static class TaintingHistoryEntry {
         long _timestamp;
-        ReloadingMetadata _data;
+        RefreshAttribute _data;
 
-        public TaintingHistoryEntry(ReloadingMetadata data) {
+        public TaintingHistoryEntry(RefreshAttribute data) {
             _data = data.getClone();
             _timestamp = System.currentTimeMillis();
         }
@@ -113,7 +113,7 @@ public class RefreshContext {
             return _timestamp;
         }
 
-        public ReloadingMetadata getData() {
+        public RefreshAttribute getData() {
             return _data;
         }
     }
@@ -125,7 +125,7 @@ public class RefreshContext {
      *
      * @param data the tainting data to be added
      */
-    public void addTaintLogEntry(ReloadingMetadata data) {
+    public void addTaintLogEntry(RefreshAttribute data) {
         _taintLog.add(new TaintingHistoryEntry(data));
     }
 
@@ -155,9 +155,9 @@ public class RefreshContext {
      * @param noOfEntries the number of entries to be delivered
      * @return a collection of the last &lt;noOfEntries&gt; entries
      */
-    public Collection<ReloadingMetadata> getLastTainted(int noOfEntries) {
+    public Collection<RefreshAttribute> getLastTainted(int noOfEntries) {
         Iterator<TaintingHistoryEntry> it = _taintLog.subList(Math.max(_taintLog.size() - noOfEntries, 0), _taintLog.size()).iterator();
-        List<ReloadingMetadata> retVal = new LinkedList<ReloadingMetadata>();
+        List<RefreshAttribute> retVal = new LinkedList<RefreshAttribute>();
         while (it.hasNext()) {
             TaintingHistoryEntry entry = it.next();
             retVal.add(entry.getData());
@@ -171,8 +171,8 @@ public class RefreshContext {
      * @param timestamp the point in time from which the tainting data has to be derived from
      * @return a set of entries which are a union of all points in time beginning from timestamp
      */
-    public Collection<ReloadingMetadata> getTaintHistory(long timestamp) {
-        List<ReloadingMetadata> retVal = new LinkedList<ReloadingMetadata>();
+    public Collection<RefreshAttribute> getTaintHistory(long timestamp) {
+        List<RefreshAttribute> retVal = new LinkedList<RefreshAttribute>();
         Iterator<TaintingHistoryEntry> it = _taintLog.iterator();
 
         while (it.hasNext()) {
@@ -273,11 +273,11 @@ public class RefreshContext {
         }
     }
 
-    public FileChangedDaemon getDaemon() {
+    public ResourceMonitor getDaemon() {
         return _daemon;
     }
 
-    public void setDaemon(FileChangedDaemon daemon) {
+    public void setDaemon(ResourceMonitor daemon) {
         this._daemon = daemon;
     }
 

Copied: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java (from r958564, myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/FileChangedDaemon.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java?p2=myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java&p1=myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/FileChangedDaemon.java&r1=958564&r2=958573&rev=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/FileChangedDaemon.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/monitor/ResourceMonitor.java Mon Jun 28 13:40:38 2010
@@ -46,13 +46,13 @@ import java.util.logging.Logger;
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class FileChangedDaemon extends Thread {
+public class ResourceMonitor extends Thread {
 
     private static final String CONTEXT_KEY = "extscriptDaemon";
 
-    static FileChangedDaemon _instance = null;
+    static ResourceMonitor _instance = null;
 
-    Map<String, ReloadingMetadata> _classMap = new ConcurrentHashMap<String, ReloadingMetadata>(8, 0.75f, 1);
+    Map<String, RefreshAttribute> _classMap = new ConcurrentHashMap<String, RefreshAttribute>(8, 0.75f, 1);
     ClassDependencies _dependencyMap = new ClassDependencies();
 
     /**
@@ -69,7 +69,7 @@ public class FileChangedDaemon extends T
 
     boolean _running = false;
     boolean _contextInitialized = false;
-    Logger _log = Logger.getLogger(FileChangedDaemon.class.getName());
+    Logger _log = Logger.getLogger(ResourceMonitor.class.getName());
     ScriptingWeaver _weavers = null;
     static WeakReference<ServletContext> _externalContext;
 
@@ -80,7 +80,7 @@ public class FileChangedDaemon extends T
         //we currently keep it as singleton but in the long run we will move it into the context
         //like everything else singleton-wise
         if (WeavingContext.isScriptingEnabled() && _instance == null) {
-            _instance = new FileChangedDaemon();
+            _instance = new ResourceMonitor();
             externalContext.setAttribute(CONTEXT_KEY, _instance);
             /**
              * daemon thread to allow forced
@@ -98,15 +98,14 @@ public class FileChangedDaemon extends T
 
     }
 
-    public static synchronized FileChangedDaemon getInstance() {
+    public static synchronized ResourceMonitor getInstance() {
         //we do it in this complicated manner because of find bugs
         //practically this cannot really happen except for shutdown were it is not important anymore
         ServletContext context = _externalContext.get();
         if (context != null) {
-           return (FileChangedDaemon) context.getAttribute(CONTEXT_KEY);
+           return (ResourceMonitor) context.getAttribute(CONTEXT_KEY);
         }
         return null;
-        //return (FileChangedDaemon) ((ServletContext) _externalContext.get()).getAttribute(CONTEXT_KEY);
     }
 
     /**
@@ -152,15 +151,14 @@ public class FileChangedDaemon extends T
         if (weaver == null) return;
         weaver.scanForAddedClasses();
 
-        for (Map.Entry<String, ReloadingMetadata> it : this._classMap.entrySet()) {
+        for (Map.Entry<String, RefreshAttribute> it : this._classMap.entrySet()) {
 
             File proxyFile = new File(it.getValue().getSourcePath() + File.separator + it.getValue().getFileName());
             if (isModified(it, proxyFile)) {
 
                 _systemRecompileMap.put(it.getValue().getScriptingEngine(), Boolean.TRUE);
-                ReloadingMetadata meta = it.getValue();
-                meta.setTainted(true);
-                meta.setTaintedOnce(true);
+                RefreshAttribute meta = it.getValue();
+                meta.requestRefresh();
                 printInfo(it, proxyFile);
                 meta.setTimestamp(proxyFile.lastModified());
                 dependencyTainted(meta.getAClass().getName());
@@ -187,30 +185,30 @@ public class FileChangedDaemon extends T
         Set<String> referrers = _dependencyMap.getReferringClasses(className);
         if (referrers == null) return;
         for (String referrer : referrers) {
-            ReloadingMetadata metaData = _classMap.get(referrer);
+            RefreshAttribute metaData = _classMap.get(referrer);
             if (metaData == null) continue;
-            if (metaData.isTainted()) continue;
+            if (metaData.requiresRefresh()) continue;
             printInfo(metaData);
 
-            metaData.setTainted(true);
-            metaData.setTaintedOnce(true);
+            metaData.requestRefresh();
+            
             dependencyTainted(metaData.getAClass().getName());
             WeavingContext.getRefreshContext().addTaintLogEntry(metaData);
             WeavingContext.getExtensionEventRegistry().sendEvent(new ClassTaintedEvent(metaData));
         }
     }
 
-    private final boolean isModified(Map.Entry<String, ReloadingMetadata> it, File proxyFile) {
+    private final boolean isModified(Map.Entry<String, RefreshAttribute> it, File proxyFile) {
         return proxyFile.lastModified() != it.getValue().getTimestamp();
     }
 
-    private void printInfo(ReloadingMetadata it) {
+    private void printInfo(RefreshAttribute it) {
         if (_log.isLoggable(Level.INFO)) {
             _log.log(Level.INFO, "[EXT-SCRIPTING] Tainting Dependency: {0}", it.getFileName());
         }
     }
 
-    private void printInfo(Map.Entry<String, ReloadingMetadata> it, File proxyFile) {
+    private void printInfo(Map.Entry<String, RefreshAttribute> 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().getTimestamp())});
             _log.log(Level.INFO, "[EXT-SCRIPTING] Tainting: {0}", it.getValue().getFileName());
@@ -233,11 +231,11 @@ public class FileChangedDaemon extends T
         this._systemRecompileMap = systemRecompileMap;
     }
 
-    public Map<String, ReloadingMetadata> getClassMap() {
+    public Map<String, RefreshAttribute> getClassMap() {
         return _classMap;
     }
 
-    public void setClassMap(Map<String, ReloadingMetadata> classMap) {
+    public void setClassMap(Map<String, RefreshAttribute> classMap) {
         this._classMap = classMap;
     }
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryTest.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryTest.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/components/TaintHistoryTest.java Mon Jun 28 13:40:38 2010
@@ -19,11 +19,11 @@
 
 package org.apache.myfaces.extensions.scripting.components;
 
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.apache.myfaces.renderkit.html.HtmlFormRenderer;
 import org.apache.myfaces.extensions.scripting.api.ScriptingConst;
 import org.apache.myfaces.extensions.scripting.core.support.ContextUtils;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
 import org.apache.myfaces.test.base.AbstractJsfTestCase;
 import org.apache.myfaces.test.mock.MockRenderKitFactory;
 import org.apache.myfaces.test.mock.MockResponseWriter;
@@ -90,13 +90,13 @@ public class TaintHistoryTest extends Ab
     }
 
     public void testTaintHistory() throws Exception {
-        ReloadingMetadata historyEntry = new ReloadingMetadata();
+        RefreshAttribute historyEntry = new RefreshAttribute();
         historyEntry.setAClass(this.getClass());
         historyEntry.setTimestamp(System.currentTimeMillis());
         historyEntry.setScriptingEngine(ScriptingConst.ENGINE_TYPE_JSF_JAVA);
         historyEntry.setFileName(BOOGA_JAVA);
-        historyEntry.setTainted(true);
-        historyEntry.setTaintedOnce(true);
+        historyEntry.requestRefresh();
+        //historyEntry.setTaintedOnce(true);
         WeavingContext.getRefreshContext().addTaintLogEntry(historyEntry);
 
         _taintHistory.encodeAll(facesContext);
@@ -123,7 +123,7 @@ public class TaintHistoryTest extends Ab
     public void testNoEntries() throws Exception {
         int noEntries = 10;
         for (int cnt = 0; cnt < 100; cnt++) {
-            ReloadingMetadata historyEntry = new ReloadingMetadata();
+            RefreshAttribute historyEntry = new RefreshAttribute();
             historyEntry.setAClass(this.getClass());
             historyEntry.setTimestamp(System.currentTimeMillis());
             historyEntry.setScriptingEngine(ScriptingConst.ENGINE_TYPE_JSF_JAVA);
@@ -131,8 +131,8 @@ public class TaintHistoryTest extends Ab
                 historyEntry.setFileName("0"+cnt + "_"+BOOGA_JAVA);
             else
                 historyEntry.setFileName(cnt + "_"+BOOGA_JAVA);
-            historyEntry.setTainted(true);
-            historyEntry.setTaintedOnce(true);
+            historyEntry.requestRefresh();
+            //historyEntry.setTaintedOnce(true);
             WeavingContext.getRefreshContext().addTaintLogEntry(historyEntry);
         }
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/refreshContext/RefreshContextTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/refreshContext/RefreshContextTest.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/refreshContext/RefreshContextTest.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/refreshContext/RefreshContextTest.java Mon Jun 28 13:40:38 2010
@@ -23,8 +23,8 @@ import org.apache.commons.io.FilenameUti
 import org.apache.myfaces.extensions.scripting.api.Configuration;
 import org.apache.myfaces.extensions.scripting.api.ScriptingConst;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.apache.myfaces.extensions.scripting.monitor.RefreshContext;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
 import org.junit.Test;
 
 import java.io.File;
@@ -82,9 +82,9 @@ public class RefreshContextTest {
         RefreshContext ctx = WeavingContext.getRefreshContext();
         ctx.setTaintLogTimeout(0);
 
-        ReloadingMetadata data = new ReloadingMetadata();
+        RefreshAttribute data = new RefreshAttribute();
         data.setAClass(this.getClass());
-        data.setTainted(true);
+        data.requestRefresh();
         data.setTimestamp(System.currentTimeMillis());
 
         ctx.addTaintLogEntry(data);
@@ -114,9 +114,9 @@ public class RefreshContextTest {
         RefreshContext ctx = WeavingContext.getRefreshContext();
         ctx.setTaintLogTimeout(3);
 
-        ReloadingMetadata data = new ReloadingMetadata();
+        RefreshAttribute data = new RefreshAttribute();
         data.setAClass(this.getClass());
-        data.setTainted(true);
+        data.requestRefresh();
         data.setTimestamp(System.currentTimeMillis());
 
         ctx.addTaintLogEntry(data);
@@ -134,16 +134,16 @@ public class RefreshContextTest {
         RefreshContext ctx = WeavingContext.getRefreshContext();
         ctx.setTaintLogTimeout(3);
 
-        ReloadingMetadata data = new ReloadingMetadata();
+        RefreshAttribute data = new RefreshAttribute();
         data.setAClass(this.getClass());
-        data.setTainted(true);
+        data.requestRefresh();
         data.setTimestamp(System.currentTimeMillis());
 
         ctx.addTaintLogEntry(data);
         ctx.addTaintLogEntry(data);
         ctx.addTaintLogEntry(data);
 
-        Collection<ReloadingMetadata> result = ctx.getLastTainted(100);
+        Collection<RefreshAttribute> result = ctx.getLastTainted(100);
         assertTrue(TAINT_HISTORY_SIZE, result.size() == 3);
         result = ctx.getLastTainted(2);
         assertTrue(TAINT_HISTORY_SIZE, result.size() == 2);

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategyTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategyTest.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategyTest.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategyTest.java Mon Jun 28 13:40:38 2010
@@ -29,7 +29,7 @@ import org.apache.myfaces.extensions.scr
 import org.apache.myfaces.extensions.scripting.core.util.ReflectUtil;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
 import org.apache.myfaces.extensions.scripting.loaders.java.RecompiledClassLoader;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -85,7 +85,7 @@ public class SimpleReloadingStrategyTest
     public void testReload() throws Exception {
         synchronized (ContextUtils.COMPILE_LOAD_MONITOR) {
             Object probe = _loader.loadClass("compiler.TestProbe1").newInstance();
-            ReloadingMetadata metaData = getMetadata(probe);
+            RefreshAttribute metaData = getMetadata(probe);
             WeavingContext.getRefreshContext().getDaemon().getClassMap().put("compiler.TestProbe1", metaData);
 
             ReflectUtil.executeMethod(probe, "setTestAttr", "hello");
@@ -100,15 +100,13 @@ public class SimpleReloadingStrategyTest
         }
     }
 
-    private ReloadingMetadata getMetadata(Object probe) {
-        ReloadingMetadata metaData = new ReloadingMetadata();
+    private RefreshAttribute getMetadata(Object probe) {
+        RefreshAttribute metaData = new RefreshAttribute();
         metaData.setAClass(probe.getClass());
-        metaData.setAnnotated(false);
         metaData.setSourcePath(RESOURCES);
         metaData.setFileName("compiler/TestProbe1.java");
         metaData.setScriptingEngine(ScriptingConst.ENGINE_TYPE_JSF_JAVA);
-        metaData.setTaintedOnce(true);
-        metaData.setTainted(true);
+        metaData.requestRefresh();
         metaData.setTimestamp(System.currentTimeMillis());
         return metaData;
     }

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/TWeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/TWeavingContext.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/TWeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/test/java/org/apache/myfaces/extensions/scripting/core/support/TWeavingContext.java Mon Jun 28 13:40:38 2010
@@ -30,8 +30,8 @@ import org.apache.myfaces.extensions.scr
 public class TWeavingContext extends WeavingContext {
     public static void setWeaverForTesting(Object weaver) {
         _weaverHolder.set(weaver);
-        //if (FileChangedDaemon.getInstance().getWeavers() == null) {
-        //    FileChangedDaemon.getInstance().setWeavers((ScriptingWeaver) weaver);
+        //if (ResourceMonitor.getInstance().getWeavers() == null) {
+        //    ResourceMonitor.getInstance().setWeavers((ScriptingWeaver) weaver);
         //}
     }
 

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-myfaces2-extensions/src/main/java/org/apache/myfaces/extensions/scripting/jsf2/annotation/GenericAnnotationScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-myfaces2-extensions/src/main/java/org/apache/myfaces/extensions/scripting/jsf2/annotation/GenericAnnotationScanner.java?rev=958573&r1=958572&r2=958573&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-myfaces2-extensions/src/main/java/org/apache/myfaces/extensions/scripting/jsf2/annotation/GenericAnnotationScanner.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-myfaces2-extensions/src/main/java/org/apache/myfaces/extensions/scripting/jsf2/annotation/GenericAnnotationScanner.java Mon Jun 28 13:40:38 2010
@@ -21,7 +21,7 @@ package org.apache.myfaces.extensions.sc
 import org.apache.myfaces.extensions.scripting.api.*;
 import org.apache.myfaces.extensions.scripting.core.util.WeavingContext;
 import org.apache.myfaces.extensions.scripting.loaders.java.ScannerClassloader;
-import org.apache.myfaces.extensions.scripting.monitor.ReloadingMetadata;
+import org.apache.myfaces.extensions.scripting.monitor.RefreshAttribute;
 
 import javax.faces.context.FacesContext;
 import java.util.*;
@@ -155,10 +155,8 @@ public class GenericAnnotationScanner ex
 
                     _registeredAnnotations.put(clazz.getName(), ann.annotationType().getName());
 
-                    ReloadingMetadata metaData = WeavingContext.getFileChangedDaemon().getClassMap().get(clazz.getName());
-                    if (metaData != null) {
-                        metaData.setAnnotated(true);
-                    }
+                    RefreshAttribute metaData = WeavingContext.getFileChangedDaemon().getClassMap().get(clazz.getName());
+                    
                 }
             }
         }