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