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 2009/08/27 17:08:33 UTC
svn commit: r808448 - in /myfaces/extensions/scripting/trunk/core/src/main:
groovy/org/apache/myfaces/groovyloader/core/
java/org/apache/myfaces/javaloader/core/
java/org/apache/myfaces/scripting/refresh/
java/org/apache/myfaces/scripting/servlet/
Author: werpu
Date: Thu Aug 27 15:08:30 2009
New Revision: 808448
URL: http://svn.apache.org/viewvc?rev=808448&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-6
fix for this issue, another fix for multiple beans of the same class
only one was refreshed instead of all
Modified:
myfaces/extensions/scripting/trunk/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/javaloader/core/JavaScriptingWeaver.java
myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
Modified: myfaces/extensions/scripting/trunk/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=808448&r1=808447&r2=808448&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy Thu Aug 27 15:08:30 2009
@@ -196,11 +196,11 @@
//TODO this code can probably be replaced by the functionality
//already given in the Groovy classloader, this needs further testing
for (String pathEntry in scriptPath) {
- log.info("search for:" + pathEntry + groovyClass);
- File classFile = new File(pathEntry + groovyClass);
+ log.info("search for:" + pathEntry + File.separator + groovyClass);
+ File classFile = new File(pathEntry + File.separator + groovyClass);
if (classFile.exists()) /*we check the groovy subdir for our class*/
- return (Class) loadScriptingClassFromFile(pathEntry + groovyClass);
+ return (Class) loadScriptingClassFromFile(pathEntry + File.separator + groovyClass);
}
} else {
@@ -215,8 +215,8 @@
singlePath = singlePath.trim();
//TODO normalization here?
- if (!singlePath.endsWith("/") && !singlePath.endsWith("\\"))
- singlePath += "/";
+ if (singlePath.endsWith(File.separator) || singlePath.endsWith("/") || singlePath.endsWith("\\"))
+ singlePath = singlePath.substring(0, singlePath.length() - 1);
scriptPath << singlePath
}
@@ -246,6 +246,7 @@
reloadingMetaData.fileName = file;
reloadingMetaData.timestamp = currentClassFile.lastModified();
reloadingMetaData.tainted = false;
+ reloadingMetaData.taintedOnce = getClassMap().containsKey(newClass.name)
reloadingMetaData.scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
classMap.put(newClass.name, reloadingMetaData)
Modified: myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/javaloader/core/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/javaloader/core/JavaScriptingWeaver.java?rev=808448&r1=808447&r2=808448&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/javaloader/core/JavaScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/javaloader/core/JavaScriptingWeaver.java Thu Aug 27 15:08:30 2009
@@ -266,6 +266,7 @@
//can be safely ignored
}
//}
+
if (retVal != null) {
ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
reloadingMetaData.setAClass(retVal);
@@ -275,6 +276,9 @@
reloadingMetaData.setTimestamp(currentClassFile.lastModified());
reloadingMetaData.setTainted(false);
reloadingMetaData.setScriptingEngine(ScriptingConst.ENGINE_TYPE_JAVA);
+ //ReloadingMetadata oldMetadata = getClassMap().get(retVal.getName());
+ reloadingMetaData.setTaintedOnce(getClassMap().containsKey(retVal.getName()));
+
getClassMap().put(retVal.getName(), reloadingMetaData);
}
Modified: myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java?rev=808448&r1=808447&r2=808448&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java (original)
+++ myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java Thu Aug 27 15:08:30 2009
@@ -78,10 +78,11 @@
for (Map.Entry<String, ReloadingMetadata> it : this.classMap.entrySet()) {
if (!it.getValue().isTainted()) {
- File proxyFile = new File(it.getValue().getFileName());
- it.getValue().tainted = (proxyFile.lastModified() != it.getValue().getTimestamp());
+ File proxyFile = new File(it.getValue().getSourcePath()+File.separator+it.getValue().getFileName());
+ it.getValue().setTainted(proxyFile.lastModified() != it.getValue().getTimestamp());
if (it.getValue().isTainted()) {
it.getValue().setTaintedOnce(true);
+ log.info("comparing"+it.getKey()+"Dates:"+proxyFile.lastModified()+"-"+it.getValue().getTimestamp());
log.info("Tainting:"+it.getValue().getFileName());
}
it.getValue().setTimestamp(proxyFile.lastModified());
Modified: myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java?rev=808448&r1=808447&r2=808448&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java Thu Aug 27 15:08:30 2009
@@ -25,6 +25,8 @@
import org.apache.myfaces.shared_impl.util.ClassLoaderExtension;
import org.apache.myfaces.javaloader.core.JavaScriptingWeaver;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.servlet.ServletContext;
@@ -50,29 +52,15 @@
private static final String GROOVY_SOURCE_ROOT = "/WEB-INF/groovy/";
private static final String JAVA_SOURCE_ROOT = "/WEB-INF/java/";
+ Log log = LogFactory.getLog(CustomChainLoader.class);
+
+
public CustomChainLoader(ServletContext servletContext) {
ScriptingWeaver groovyWeaver = new GroovyWeaver();
ScriptingWeaver javaWeaver = new JavaScriptingWeaver(servletContext);
- //this.scriptingWeaver = new GroovyWeaver();
-
- String contextRoot = servletContext.getRealPath(GROOVY_SOURCE_ROOT);
-
- contextRoot = contextRoot.trim();
- //TODO still needed?
- if (!contextRoot.endsWith("/") && !contextRoot.endsWith("\\"))
- contextRoot += "/";
- //TODO end?
- scriptingRoot = contextRoot;
-
- setupScriptingPatsh(servletContext, groovyWeaver, CUSTOM_LOADER_PATHS);
-
- contextRoot = servletContext.getRealPath(JAVA_SOURCE_ROOT);
- contextRoot = contextRoot.trim();
-
- scriptingRoot = contextRoot;
- setupScriptingPatsh(servletContext, javaWeaver, CUSTOM_JAVA_LOADER_PATHS);
-
+ setupScriptingPaths(servletContext, groovyWeaver,GROOVY_SOURCE_ROOT, CUSTOM_LOADER_PATHS);
+ setupScriptingPaths(servletContext, javaWeaver, JAVA_SOURCE_ROOT, CUSTOM_JAVA_LOADER_PATHS);
this.scriptingWeaver = new ScriptingWeaverHolder(groovyWeaver, javaWeaver);
//we have to store it because our filter
@@ -80,8 +68,14 @@
ProxyUtils.setWeaver(this.scriptingWeaver);
}
- private void setupScriptingPatsh(ServletContext servletContext, ScriptingWeaver weaver, String initParams) {
+ private void setupScriptingPaths(ServletContext servletContext, ScriptingWeaver weaver, String contextRootKey, String initParams) {
String additionalLoaderPaths;
+
+ String contextRoot = servletContext.getRealPath(contextRootKey);
+ contextRoot = contextRoot.trim();
+ scriptingRoot = contextRoot;
+
+
additionalLoaderPaths = servletContext.getInitParameter(initParams);
appendAdditionalPaths(additionalLoaderPaths, weaver);
weaver.appendCustomScriptPath(scriptingRoot);
@@ -89,10 +83,10 @@
}
private void appendAdditionalPaths(String additionalLoaderPaths, ScriptingWeaver workWeaver) {
- if(!StringUtils.isBlank(additionalLoaderPaths)) {
- String [] additionalPaths = additionalLoaderPaths.split(",");
- for(String path: additionalPaths) {
- workWeaver.appendCustomScriptPath(path);
+ if (!StringUtils.isBlank(additionalLoaderPaths)) {
+ String[] additionalPaths = additionalLoaderPaths.split(",");
+ for (String path : additionalPaths) {
+ workWeaver.appendCustomScriptPath(path);
}
}
}