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 <noOfEntries> 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());
+
}
}
}