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/12/25 15:32:53 UTC
svn commit: r893862 - in
/myfaces/extensions/scripting/trunk/core/core/src/main:
groovy/org/apache/myfaces/groovyloader/core/
java/org/apache/myfaces/scripting/api/
java/org/apache/myfaces/scripting/loaders/groovy/
java/org/apache/myfaces/scripting/loa...
Author: werpu
Date: Fri Dec 25 14:32:52 2009
New Revision: 893862
URL: http://svn.apache.org/viewvc?rev=893862&view=rev
Log:
ongoing works to add the extended dependency scan also to groovy
Added:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java (with props)
Modified:
myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=893862&r1=893861&r2=893862&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy Fri Dec 25 14:32:52 2009
@@ -29,6 +29,7 @@
import org.apache.myfaces.scripting.api.ClassScanner
import org.apache.myfaces.scripting.core.util.ClassUtils
+import org.apache.myfaces.scripting.refresh.ReloadingMetadata
/**
* Weaver which does dynamic class reloading
@@ -130,6 +131,25 @@
}
+ private void refreshReloadingMetaData(String sourceRoot, String file, File currentClassFile, Class retVal, int engineType) {
+ if(sourceRoot.endsWith(".java")) {
+ System.out.println("Debugpoint found");
+ }
+ ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
+ reloadingMetaData.setAClass(retVal);
+
+ reloadingMetaData.setFileName(file);
+ reloadingMetaData.setSourcePath(sourceRoot);
+ reloadingMetaData.setTimestamp(currentClassFile.lastModified());
+ reloadingMetaData.setTainted(false);
+ reloadingMetaData.setScriptingEngine(engineType);
+ //ReloadingMetadata oldMetadata = getClassMap().get(retVal.getName());
+ reloadingMetaData.setTaintedOnce(getClassMap().containsKey(retVal.getName()));
+
+ getClassMap().put(retVal.getName(), reloadingMetaData);
+ }
+
+
/**
* creates a proxy specify object reloading proxy
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=893862&r1=893861&r2=893862&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java Fri Dec 25 14:32:52 2009
@@ -188,25 +188,7 @@
return null;
}
- //TODO move this into the classloader to cover dependend classes as well
-
- protected void refreshReloadingMetaData(String sourceRoot, String file, File currentClassFile, Class retVal, int engineType) {
- if(sourceRoot.endsWith(".java")) {
- System.out.println("Debugpoint found");
- }
- ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
- reloadingMetaData.setAClass(retVal);
-
- reloadingMetaData.setFileName(file);
- reloadingMetaData.setSourcePath(sourceRoot);
- reloadingMetaData.setTimestamp(currentClassFile.lastModified());
- reloadingMetaData.setTainted(false);
- reloadingMetaData.setScriptingEngine(engineType);
- //ReloadingMetadata oldMetadata = getClassMap().get(retVal.getName());
- reloadingMetaData.setTaintedOnce(getClassMap().containsKey(retVal.getName()));
-
- getClassMap().put(retVal.getName(), reloadingMetaData);
- }
+
protected Log getLog() {
return LogFactory.getLog(this.getClass());
Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java?rev=893862&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java Fri Dec 25 14:32:52 2009
@@ -0,0 +1,11 @@
+package org.apache.myfaces.scripting.loaders.groovy;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: werpu2
+ * Date: 24.12.2009
+ * Time: 22:00:10
+ * To change this template use File | Settings | File Templates.
+ */
+public class GroovyDependencyScanner {
+}
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java?rev=893862&r1=893861&r2=893862&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java Fri Dec 25 14:32:52 2009
@@ -69,60 +69,59 @@
//TODO we have to probably set the context classloader upfront
//otherwise the classes are not found
//final ClassLoader loader = new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- if (!(loader instanceof RecompiledClassLoader)) {
- Thread.currentThread().setContextClassLoader(new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA));
- }
- try {
+ ClassLoader loader = getClassLoader();
+
- String[] dynamicClassArr = new String[3];
- for (String dynamicClass : possibleDynamicClasses) {
- final String dynaClass = dynamicClass;
-
- //TODO parallize this
- //we have to shift the threadlocal data of the weaving context into
- //every thread there is and push it into the threadlocals there
- //I will leave this for now open for the next performance round
-
- //prefill an array which keeps the in params
- //try {
- // threadCtrl.acquire();
- //problem with the thread locals set we have to shift all the needed constats
- //in and pass them into the thread
-
- // (new Thread() {
- // public void run()
- // {
-
- DependencyScanner depScanner = dependencyScanner.pop();
- try {
- Set<String> referrers = depScanner.fetchDependencies(Thread.currentThread().getContextClassLoader(), dynaClass, possibleDynamicClasses);
- //we make it in two ops because if we do the self dependency
- //removal in the scanner itself the code should not break
- referrers.remove(dynaClass);
- if (!referrers.isEmpty()) {
- WeavingContext.getFileChangedDaemon().getDependencyMap().addDependencies(dynaClass, referrers);
- }
- } finally {
- dependencyScanner.push(depScanner);
- //threadCtrl.release();
+ String[] dynamicClassArr = new String[3];
+ for (String dynamicClass : possibleDynamicClasses) {
+ final String dynaClass = dynamicClass;
+
+ //TODO parallize this
+ //we have to shift the threadlocal data of the weaving context into
+ //every thread there is and push it into the threadlocals there
+ //I will leave this for now open for the next performance round
+
+ //prefill an array which keeps the in params
+ //try {
+ // threadCtrl.acquire();
+ //problem with the thread locals set we have to shift all the needed constats
+ //in and pass them into the thread
+
+ // (new Thread() {
+ // public void run()
+ // {
+
+ DependencyScanner depScanner = dependencyScanner.pop();
+ try {
+ Set<String> referrers = depScanner.fetchDependencies(loader, dynaClass, possibleDynamicClasses);
+ //we make it in two ops because if we do the self dependency
+ //removal in the scanner itself the code should not break
+ referrers.remove(dynaClass);
+ if (!referrers.isEmpty()) {
+ WeavingContext.getFileChangedDaemon().getDependencyMap().addDependencies(dynaClass, referrers);
}
+ } finally {
+ dependencyScanner.push(depScanner);
+ //threadCtrl.release();
+ }
- // }
- // }).start();
- //} catch (InterruptedException e) {
- // e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- //}
+ // }
+ // }).start();
+ //} catch (InterruptedException e) {
+ // e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ //}
- }
- long end = System.currentTimeMillis();
- if (log.isInfoEnabled()) {
- log.info("[EXT-SCRITPING] class dependency scan finished, duration: " + (end - start) + " ms");
- }
- } finally {
- Thread.currentThread().setContextClassLoader(loader);
}
+ long end = System.currentTimeMillis();
+ if (log.isInfoEnabled()) {
+ log.info("[EXT-SCRITPING] class dependency scan finished, duration: " + (end - start) + " ms");
+ }
+
+
+ }
+ private RecompiledClassLoader getClassLoader() {
+ return new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=893862&r1=893861&r2=893862&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java Fri Dec 25 14:32:52 2009
@@ -140,9 +140,12 @@
//can be safely ignored
}
- if (retVal != null) {
- refreshReloadingMetaData(sourceRoot, file, currentClassFile, retVal, ScriptingConst.ENGINE_TYPE_JAVA);
- }
+
+ //no refresh needed because this is done in the case of java already by
+ //the classloader
+ // if (retVal != null) {
+ // refreshReloadingMetaData(sourceRoot, file, currentClassFile, retVal, ScriptingConst.ENGINE_TYPE_JAVA);
+ // }
/**
* we now scan the return value and update its configuration parameters if needed