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:29:04 UTC

svn commit: r893858 - in /myfaces/extensions/scripting/trunk: core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scripting/api/ core/core/src/main/java/org/apache/myfaces/scripting/core/dependency...

Author: werpu
Date: Fri Dec 25 14:29:03 2009
New Revision: 893858

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

java dependency scan in, but we introduced classloader issues by our changes in the last week

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java   (with props)
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java   (contents, props changed)
      - copied, changed from r893857, myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
Removed:
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
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/api/ScriptingConst.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassDependencies.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.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
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/ReloadingMetadata.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.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=893858&r1=893857&r2=893858&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:29:03 2009
@@ -107,7 +107,7 @@
             //we have to add the script path so that groovy can work out the kinks of other source files added
             _groovyClassLoaderHolder.set(gcl)
 
-            getScriptPaths().each {
+            WeavingContext.getConfiguration().getSourceDirs(ScriptingConst.ENGINE_TYPE_GROOVY).each {
                 gcl.addClasspath(it)
             }
         }

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=893858&r1=893857&r2=893858&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:29:03 2009
@@ -45,7 +45,7 @@
      * only be set from the
      * initialisation code so no thread safety needed
      */
-    protected List<String> scriptPaths = new LinkedList<String>();
+
 
     protected ReloadingStrategy _reloadingStrategy = null;
     private static final String SCOPE_SESSION = "session";
@@ -73,7 +73,7 @@
             scriptPath = scriptPath.substring(0, scriptPath.length() - 1);
         }
 
-        getScriptPaths().add(scriptPath);
+        WeavingContext.getConfiguration().addSourceDir(getScriptingEngine(), scriptPath);
     }
 
 
@@ -164,7 +164,7 @@
             String separator = FileUtils.getFileSeparatorForRegex();
             String fileName = className.replaceAll("\\.", separator) + getFileEnding();
 
-            for (String pathEntry : getScriptPaths()) {
+            for (String pathEntry : WeavingContext.getConfiguration().getSourceDirs(getScriptingEngine())) {
 
                 /**
                  * the reload has to be performed synchronized
@@ -189,7 +189,11 @@
     }
 
     //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);
 
@@ -221,7 +225,7 @@
         this.fileEnding = fileEnding;
     }
 
-    public int getScriptingEngine() {
+    public final int getScriptingEngine() {
         return scriptingEngine;
     }
 
@@ -234,9 +238,7 @@
 
     public abstract boolean isDynamic(Class clazz);
 
-    public List<String> getScriptPaths() {
-        return scriptPaths;
-    }
+   
 
     public ScriptingWeaver getWeaverInstance(Class weaverClass) {
         if (getClass().equals(weaverClass)) return this;
@@ -277,7 +279,7 @@
 
     private void recompileRefresh() {
         fullRecompile();
-        
+
         refreshAllManagedBeans();
     }
 
@@ -426,7 +428,7 @@
      * @param bean
      */
     private void removeBeanReferences(ManagedBean bean) {
-        if(getLog().isInfoEnabled()) {
+        if (getLog().isInfoEnabled()) {
             getLog().info("[EXT-SCRIPTING] JavaScriptingWeaver.removeBeanReferences(" + bean.getManagedBeanName() + ")");
         }
 
@@ -465,7 +467,7 @@
      */
     public Collection<String> loadPossibleDynamicClasses() {
 
-        List<String> scriptPaths = getScriptPaths();
+        Collection<String> scriptPaths = WeavingContext.getConfiguration().getSourceDirs(getScriptingEngine());
         List<String> retVal = new LinkedList<String>();
 
         for (String scriptPath : scriptPaths) {

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java?rev=893858&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java Fri Dec 25 14:29:03 2009
@@ -0,0 +1,41 @@
+package org.apache.myfaces.scripting.api;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.Map;
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * Configuration class keeping all the core elements of the configuration
+ * this class has to be thread save in its internal data structures!
+ * <p />
+ * since the end goal is that a single thread has to preinit the config
+ * we don«t have to synchronize its access!
+ * <p />
+ */
+public class Configuration {
+
+    Map<Integer, CopyOnWriteArrayList<String>> _sourceDirs = new ConcurrentHashMap<Integer, CopyOnWriteArrayList<String>>();
+    Map<Integer, String> _compileTarget = new ConcurrentHashMap<Integer, String>();
+
+    public Collection<String> getSourceDirs(int scriptingEngine) {
+        return _sourceDirs.get(scriptingEngine);
+    }
+
+    public void addSourceDir(int scriptingEngine, String sourceDir) {
+        CopyOnWriteArrayList dirs = _sourceDirs.get(scriptingEngine);
+        if (dirs == null) {
+            dirs = new CopyOnWriteArrayList();
+            _sourceDirs.put(scriptingEngine, dirs);
+        }
+        dirs.add(sourceDir);
+    }
+
+    public void addCompileTarget(int scriptingEngine, String target) {
+        _compileTarget.put(scriptingEngine, target);
+    }
+
+    public String getCompileTarget(int scriptingEngine) {
+        return _compileTarget.get(scriptingEngine);
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Configuration.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java Fri Dec 25 14:29:03 2009
@@ -29,6 +29,7 @@
     public static final String SCRIPTING_GROOVFACTORY = "org.apache.myfaces.SCRIPTING_GROOVYFACTORY";
     public static final String SCRIPTING_REQUSINGLETON = "org.apache.myfaces.SCRIPTING_REQUSINGLETON";
 
+
     public static final String RELOAD_MAP = "reloadMap";
     public static final String SESS_BEAN_REFRESH_TIMER = "sessbeanrefrsh";
 
@@ -62,4 +63,5 @@
     public static final int ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER = 20;
 
     public static final String CTX_REQUEST_CNT = "RequestCnt";
+    public static final String CTX_CONFIGURATION = "ExtScriptingConfig";
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java Fri Dec 25 14:29:03 2009
@@ -38,6 +38,7 @@
      * appends a custom script search path to the original one
      *
      * @param scriptPaths
+     * @deprecates
      */
     public void appendCustomScriptPath(String scriptPaths);
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassDependencies.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassDependencies.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassDependencies.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassDependencies.java Fri Dec 25 14:29:03 2009
@@ -54,7 +54,7 @@
      *
      * @param clazz the referencing class to delete
      */
-    public void removeReferencing(String clazz) {
+    public void removeReferrer(String clazz) {
         List<String> emptyReferences = new ArrayList<String>(reverseIndex.size());
         for (Map.Entry<String, Set<String>> entry : reverseIndex.entrySet()) {
             Set<String> entrySet = entry.getValue();
@@ -69,8 +69,8 @@
     }
 
 
-    public Set<String> getReferencedClasses(String referencingClass) {
-        return reverseIndex.get(referencingClass);
+    public Set<String> getReferringClasses(String referencedClass) {
+        return reverseIndex.get(referencedClass);
     }
 
     private final Set<String> getReverseDependencies(String dependency) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/DefaultDependencyScanner.java Fri Dec 25 14:29:03 2009
@@ -43,6 +43,8 @@
     final ClassScanVisitor cp = new ClassScanVisitor();
     Log log = LogFactory.getLog(this.getClass().getName());
 
+    public DefaultDependencyScanner() {
+    }
 
     /**
      * @param className

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java Fri Dec 25 14:29:03 2009
@@ -20,6 +20,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.scripting.api.Configuration;
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
 import org.apache.myfaces.scripting.core.DummyWeaver;
@@ -35,7 +36,7 @@
 /**
  * A set of weaving context class called
  * by the various subsystems
- *
+ * <p/>
  * TODO move this away from static methods into a singleton which is kept
  * in the application context, to keep the context pattern.
  *
@@ -59,21 +60,16 @@
      * </p>
      */
     static protected ThreadLocal _weaverHolder = new ThreadLocal();
-
-    static protected ThreadLocal _eventProcessorHolder = new ThreadLocal();
-
-    static protected ThreadLocal _externalContextHolder = new ThreadLocal();
-
     static protected ThreadLocal _refreshContextHolder = new ThreadLocal();
+    static protected ThreadLocal _configuration = new ThreadLocal();
+    private static final String WARN_WEAVER_NOT_SET = "Scripting Weaver is not set. Disabling script reloading subsystem. Make sure you have the scripting servlet filter enabled in your web.xml";
 
-    
 
     public static void init() {
 
     }
 
 
-
     /**
      * general shutdown clean
      */
@@ -89,19 +85,13 @@
         return (RefreshContext) _refreshContextHolder.get();
     }
 
-    /**
-     * fetches the generic request map if available
-     *
-     * @return the request map if available, null otherwise
-     */
-    public static Map<String, Object> getRequestAttributesMap() {
-        FacesContext ctx = FacesContext.getCurrentInstance();
-        if (ctx == null) return null;
-        return ctx.getExternalContext().getRequestMap();
+    public static Configuration getConfiguration() {
+        return (Configuration) _configuration.get();
     }
 
-
-    
+    public static void setConfiguration(Configuration configuration) {
+        _configuration.set(configuration);
+    }
 
 
     /**
@@ -143,7 +133,7 @@
         ScriptingWeaver weaver = (ScriptingWeaver) _weaverHolder.get();
         if (weaver == null) {
             Log log = LogFactory.getLog(WeavingContext.class);
-            log.warn("Scripting Weaver is not set. Disabling script reloading subsystem. Make sure you have the scripting servlet filter enabled in your web.xml");
+            log.warn(WARN_WEAVER_NOT_SET);
             _weaverHolder.set(new DummyWeaver());
         }
         return (ScriptingWeaver) _weaverHolder.get();
@@ -165,8 +155,8 @@
      */
     public static Object createMethodReloadingProxyFromObject(Object o, Class theInterface, int artefactType) {
         return Proxy.newProxyInstance(o.getClass().getClassLoader(),
-                                      new Class[]{theInterface},
-                                      new MethodLevelReloadingHandler(o, artefactType));
+                new Class[]{theInterface},
+                new MethodLevelReloadingHandler(o, artefactType));
     }
 
     /**
@@ -180,8 +170,8 @@
      */
     public static Object createConstructorReloadingProxyFromObject(Object o, Class theInterface, int artefactType) {
         return Proxy.newProxyInstance(o.getClass().getClassLoader(),
-                                      new Class[]{theInterface},
-                                      new MethodLevelReloadingHandler(o, artefactType));
+                new Class[]{theInterface},
+                new MethodLevelReloadingHandler(o, artefactType));
     }
 
     public static FileChangedDaemon getFileChangedDaemon() {

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=893858&r1=893857&r2=893858&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:29:03 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.loaders.java;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.ClassScanListener;
 import org.apache.myfaces.scripting.api.ClassScanner;
 import org.apache.myfaces.scripting.api.ScriptingConst;
@@ -26,10 +28,8 @@
 import org.apache.myfaces.scripting.core.dependencyScan.DependencyScanner;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.concurrent.Semaphore;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -41,30 +41,77 @@
 public class JavaDependencyScanner implements ClassScanner {
 
     List<String> _scanPaths = new LinkedList<String>();
-    DependencyScanner dependencyScanner = new DefaultDependencyScanner();
+    static final int MAX_PARALLEL_SCANS = 1;
+    //Semaphore threadCtrl = new Semaphore(MAX_PARALLEL_SCANS);
+
+    //we stack this to get an easier handling in a multithreaded environment
+    final Stack<DependencyScanner> dependencyScanner = new Stack<DependencyScanner>();
+
 
     ScriptingWeaver _weaver;
+    Log log = LogFactory.getLog(JavaDependencyScanner.class.getName());
 
 
     public JavaDependencyScanner(ScriptingWeaver weaver) {
         this._weaver = weaver;
+        for (int cnt = 0; cnt < MAX_PARALLEL_SCANS; cnt++) {
+            dependencyScanner.push(new DefaultDependencyScanner());
+        }
     }
 
     public synchronized void scanPaths() {
-        Set<String> possibleDynamicClasses = new HashSet<String>(_weaver.loadPossibleDynamicClasses());
+
+        if (log.isInfoEnabled()) {
+            log.info("[EXT-SCRITPING] starting class dependency scan");
+        }
+        long start = System.currentTimeMillis();
+        final Set<String> possibleDynamicClasses = new HashSet<String>(_weaver.loadPossibleDynamicClasses());
         //TODO we have to probably set the context classloader upfront
         //otherwise the classes are not found
-        ClassLoader loader = new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
-
+        final ClassLoader loader = new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
 
+        String[] dynamicClassArr = new String[3];
         for (String dynamicClass : possibleDynamicClasses) {
-            Set<String> referrers = dependencyScanner.fetchDependencies(loader, dynamicClass, 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(dynamicClass);
-            if (!referrers.isEmpty()) {
-                WeavingContext.getFileChangedDaemon().getDependencyMap().addDependencies(dynamicClass, referrers);
+            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.
+            //}
+
+        }
+        long end = System.currentTimeMillis();
+        if (log.isInfoEnabled()) {
+            log.info("[EXT-SCRITPING] class dependency scan finished, duration: " + (end - start) + " ms");
         }
 
     }

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=893858&r1=893857&r2=893858&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:29:03 2009
@@ -103,6 +103,8 @@
      * note this method does not have to be thread safe
      * it is called in a thread safe manner by the base class
      *
+     * //TODO eliminate the source root we have the roots now somewhere else
+     *
      * @param sourceRoot the source search lookup path
      * @param file       the filename to be compiled and loaded
      * @return a valid class if it could be found, null if none was found
@@ -120,7 +122,7 @@
             log.info("[EXT-SCRIPTING] Loading Java file:" + file);
         }
 
-        Iterator<String> it = scriptPaths.iterator();
+        Iterator<String> it = WeavingContext.getConfiguration().getSourceDirs(getScriptingEngine()).iterator();
         Class retVal = null;
 
         try {
@@ -203,7 +205,7 @@
             compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass());//new ReflectCompilerFacade();
         }
 
-        for (String scriptPath : getScriptPaths()) {
+        for (String scriptPath : WeavingContext.getConfiguration().getSourceDirs(getScriptingEngine())) {
             //compile via javac dynamically, also after this block dynamic compilation
             //for the entire length of the request,
             try {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java Fri Dec 25 14:29:03 2009
@@ -18,6 +18,9 @@
  */
 package org.apache.myfaces.scripting.loaders.java;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.FileUtils;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
@@ -27,6 +30,7 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
+import java.util.Collection;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -81,7 +85,7 @@
                 return super.getResourceAsStream(name);
             }
         }
-        return super.getResourceAsStream(name);    
+        return super.getResourceAsStream(name);
     }
 
     @Override
@@ -141,9 +145,25 @@
         //store the filename
         String separator = FileUtils.getFileSeparatorForRegex();
         String fileName = className.replaceAll("\\.", separator) + ".java";
+        Collection<String> sourceDirs = WeavingContext.getConfiguration().getSourceDirs(ScriptingConst.ENGINE_TYPE_JAVA);
+        String rootDir = null;
+        for (String sourceDir : sourceDirs) {
+            String fullPath = sourceDir + File.separator + fileName;
+            if ((new File(fullPath)).exists()) {
+                rootDir = sourceDir;
+                break;
+            }
+        }
+
+        if (rootDir == null) {
+            Log log = LogFactory.getLog(this.getClass().getName());
+            log.warn("Warning source for class:" + className + " could not be found");
+            return retVal;
+        }
+
 
-        reloadingMetaData.setFileName(sourceRoot + File.separator + fileName);
-        reloadingMetaData.setSourcePath("");
+        reloadingMetaData.setFileName(fileName);
+        reloadingMetaData.setSourcePath(rootDir);
         reloadingMetaData.setTimestamp(target.lastModified());
         reloadingMetaData.setTainted(false);
         reloadingMetaData.setTaintedOnce(true);

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java Fri Dec 25 14:29:03 2009
@@ -125,6 +125,7 @@
         try {
             CompilationResult result = compiler.compile(new File(sourceRoot), fileManager.getTempDir(), fileManager.getClassPath());
             fileManager.refreshClassloader();
+            ((RecompiledClassLoader)fileManager.getClassLoader()).setSourceRoot(sourceRoot);
             displayMessages(result);
             return fileManager.getTempDir();
         } catch (CompilationException e) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java Fri Dec 25 14:29:03 2009
@@ -112,21 +112,54 @@
 
                 File proxyFile = new File(it.getValue().getSourcePath() + File.separator + it.getValue().getFileName());
                 if (!it.getValue().isTainted() && isModified(it, proxyFile)) {
-                    it.getValue().setTainted(true);
+
 
                     systemRecompileMap.put(it.getValue().getScriptingEngine(), Boolean.TRUE);
+                    it.getValue().setTainted(true);
                     it.getValue().setTaintedOnce(true);
                     printInfo(it, proxyFile);
                     it.getValue().setTimestamp(proxyFile.lastModified());
+                    dependencyTainted(it.getValue().getAClass().getName());
                 }
             }
         }
     }
 
+    /**
+     * recursive walk over our meta data to taint also the classes
+     * which refer to our refreshing class so that those
+     * are reloaded as well, this helps to avoid classcast
+     * exceptions caused by imports and casts on long running artefacts
+     *
+     * @param className the origin classname which needs to be walked recursively
+     */
+    private void dependencyTainted(String className) {
+        Set<String> referrers = dependencyMap.getReferringClasses(className);
+        if(referrers == null) return;
+        for (String referrer : referrers) {
+            ReloadingMetadata metaData = classMap.get(referrer);
+            if (metaData == null) continue;
+            if (metaData.isTainted()) continue;
+            printInfo(metaData);
+
+            metaData.setTainted(true);
+            metaData.setTaintedOnce(true);
+            dependencyTainted(metaData.getAClass().getName());
+            
+        }
+    }
+
+
     private final boolean isModified(Map.Entry<String, ReloadingMetadata> it, File proxyFile) {
         return proxyFile.lastModified() != it.getValue().getTimestamp();
     }
 
+    private void printInfo(ReloadingMetadata it) {
+        if (log.isInfoEnabled()) {
+            log.info("[EXT-SCRIPTING] Tainting Dependency:" + it.getFileName());
+        }
+    }
+
     private void printInfo(Map.Entry<String, ReloadingMetadata> it, File proxyFile) {
         if (log.isInfoEnabled()) {
             log.info("[EXT-SCRIPTING] comparing" + it.getKey() + "Dates:" + proxyFile.lastModified() + "-" + it.getValue().getTimestamp());

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/ReloadingMetadata.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/ReloadingMetadata.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/ReloadingMetadata.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/ReloadingMetadata.java Fri Dec 25 14:29:03 2009
@@ -95,6 +95,9 @@
     }
 
     public void setSourcePath(String sourcePath) {
+        if(sourcePath.endsWith(".java")) {
+            System.out.println("Debugpoint found");
+        }
         this.sourcePath = sourcePath;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java Fri Dec 25 14:29:03 2009
@@ -95,6 +95,9 @@
     }
 
     public Class forName(String name) {
+        if(name.endsWith(";")) {
+            name = name.substring(1, name.length() - 1);
+        }
         if(name == null) {
             return null;
         }
@@ -106,7 +109,12 @@
             return null;
         else if (name.startsWith("sun.")) /*internal java specific namespace*/
             return null;
-
+        else if (name.startsWith("org.apache") && !name.startsWith("org.apache.myfaces")) {
+            return null;
+        }
+        if(name.contains("Blog")) {
+            System.out.println("Debugpoint found");
+        }
         return scriptingWeaver.loadScriptingClassFromName(name);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java Fri Dec 25 14:29:03 2009
@@ -18,6 +18,7 @@
  */
 package org.apache.myfaces.scripting.servlet;
 
+import org.apache.myfaces.scripting.api.Configuration;
 import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.refresh.RefreshContext;
@@ -46,6 +47,7 @@
 
         WeavingContext.setWeaver(context.getAttribute("ScriptingWeaver"));
         WeavingContext.setRefreshContext((RefreshContext) context.getAttribute("RefreshContext"));
+        WeavingContext.setConfiguration((Configuration) context.getAttribute(ScriptingConst.CTX_CONFIGURATION));
 
         filterChain.doFilter(servletRequest, servletResponse);
     }
@@ -56,8 +58,8 @@
     }
 
 
-
     //we mark the request beginning and end for further synchronisation issues
+
     private final AtomicInteger getRequestCnt() {
         return (AtomicInteger) context.getAttribute(ScriptingConst.CTX_REQUEST_CNT);
     }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java Fri Dec 25 14:29:03 2009
@@ -22,6 +22,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import org.apache.myfaces.scripting.api.Configuration;
 import org.apache.myfaces.webapp.StartupListener;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
@@ -36,12 +37,18 @@
 /**
  * @author werpu
  * @date: 14.08.2009
+ * <p/>
+ * Startup context plugin chainloader
+ * for myfaces 1.2.x,
+ * we hook ourselfs into the startup event
+ * system we have for myfaces 1.2.x+ to do the initial
+ * configuration before the myfaces init itself starts!
  */
 public class StartupServletContextPluginChainLoader implements StartupListener {
+    final Log log = LogFactory.getLog(this.getClass());
 
 
     public void preInit(ServletContextEvent servletContextEvent) {
-        Log log = LogFactory.getLog(this.getClass());
 
         log.info("[EXT-SCRIPTING] Instantiating StartupServletContextPluginChainLoader");
 
@@ -50,18 +57,77 @@
 
         servletContext.setAttribute(ScriptingConst.CTX_REQUEST_CNT, new AtomicInteger(0));
 
-        CustomChainLoader loader = new CustomChainLoader(servletContext);
-        ClassUtils.addClassLoadingExtension(loader, true);
-        ScriptingWeaver weaver = loader.getScriptingWeaver();
+        initConfig(servletContext);
+        CustomChainLoader loader = initChainLoader(servletContext);
+        ScriptingWeaver weaver = initScriptingWeaver(servletContext, loader);
+        initRefreshContext(servletContext);
 
-        servletContext.setAttribute("ScriptingWeaver", weaver);
-        RefreshContext rContext = new RefreshContext();
-        servletContext.setAttribute("RefreshContext", rContext);
-        WeavingContext.setRefreshContext(rContext);
+        initInitialCompileAndScan(weaver);
+    }
+
+
+    /**
+     * initiates the first compile and scan in the subsystem
+     *
+     * @param weaver our weaver which reveices the trigger calls
+     */
+    private final void initInitialCompileAndScan(ScriptingWeaver weaver) {
         log.info("[EXT-SCRIPTING] Compiling all sources for the first time");
         weaver.requestRefresh();
         weaver.fullClassScan();
-        //TODO do a first full recompile here at startup time before the bean etc... instantiation can kick in
+    }
+
+    /**
+     * initialisation of the refresh context object
+     * the refresh context, is a context object which keeps
+     * the refresh information (refresh time, needs refresh) etc...
+     *
+     * @param servletContext the servlet context singleton which keeps
+     *                       the context for distribution
+     */
+    private final void initRefreshContext(ServletContext servletContext) {
+        RefreshContext rContext = new RefreshContext();
+        servletContext.setAttribute("RefreshContext", rContext);
+        WeavingContext.setRefreshContext(rContext);
+    }
+
+    /**
+     * The initialisation of our global weaver chain
+     * which triggers the various subweavers depending
+     * on the scripting engine plugged in.
+     *
+     * @param servletContext the application scoped holder for our weaver
+     * @param loader         the chain loader which serves the weavers
+     * @return the weaver instance wich is generated and stored
+     */
+    private final ScriptingWeaver initScriptingWeaver(ServletContext servletContext, CustomChainLoader loader) {
+        ScriptingWeaver weaver = loader.getScriptingWeaver();
+        servletContext.setAttribute("ScriptingWeaver", weaver);
+        return weaver;
+    }
+
+    /**
+     * initializes our custom chain loader which gets plugged into
+     * the myfaces loading part for classes!
+     *
+     * @param servletContext
+     * @return
+     */
+    private final CustomChainLoader initChainLoader(ServletContext servletContext) {
+        CustomChainLoader loader = new CustomChainLoader(servletContext);
+        ClassUtils.addClassLoadingExtension(loader, true);
+        return loader;
+    }
+
+    /**
+     * initializes the central config storage!
+     *
+     * @param servletContext
+     */
+    private final void initConfig(ServletContext servletContext) {
+        Configuration conf = new Configuration();
+        servletContext.setAttribute(ScriptingConst.CTX_CONFIGURATION, conf);
+        WeavingContext.setConfiguration(conf);
     }
 
     public void postInit(ServletContextEvent evt) {
@@ -72,7 +138,8 @@
     }
 
     public void postDestroy(ServletContextEvent evt) {
-        //context is destroyed we have to shut down our daemon as well
+        //context is destroyed we have to shut down our daemon as well, by giving it
+        //a hint to shutdown
         RefreshContext rContext = (RefreshContext) evt.getServletContext().getAttribute("RefreshContext");
         rContext.getDaemon().setRunning(false);
     }

Modified: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/extensions/scripting/dependencyScan/DependencyScannerTest.java Fri Dec 25 14:29:03 2009
@@ -81,10 +81,10 @@
 
         dependencyMap.addDependencies(PROBE1, retVal);
 
-        assertTrue("Dependency Test1", dependencyMap.getReferencedClasses(PROBE2).contains(PROBE1));
-        assertTrue("Dependency Test2", dependencyMap.getReferencedClasses(PROBE3).contains(PROBE1));
-        assertTrue("Dependency Test3", dependencyMap.getReferencedClasses(PROBE4).contains(PROBE1));
-        assertTrue("Dependency Test4", dependencyMap.getReferencedClasses(PROBE_PAR).contains(PROBE1));
+        assertTrue("Dependency Test1", dependencyMap.getReferringClasses(PROBE2).contains(PROBE1));
+        assertTrue("Dependency Test2", dependencyMap.getReferringClasses(PROBE3).contains(PROBE1));
+        assertTrue("Dependency Test3", dependencyMap.getReferringClasses(PROBE4).contains(PROBE1));
+        assertTrue("Dependency Test4", dependencyMap.getReferringClasses(PROBE_PAR).contains(PROBE1));
 
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Fri Dec 25 14:29:03 2009
@@ -79,8 +79,8 @@
         //we might get 2 of our proxies in the delegate stack
 
         //the same goes for the rest of the factory stuff
-        if (!(elResolver instanceof ELResolverProxy))
-            elResolver = new ELResolverProxy(elResolver);
+        if (!(elResolver instanceof ELResolverProxy_))
+            elResolver = new ELResolverProxy_(elResolver);
         _delegate.addELResolver(elResolver);
     }
 
@@ -93,8 +93,8 @@
     public ELResolver getELResolver() {
         weaveDelegate();
         ELResolver retVal = _delegate.getELResolver();
-        if (!(retVal instanceof ELResolverProxy)) {
-            retVal = new ELResolverProxy(retVal);
+        if (!(retVal instanceof ELResolverProxy_)) {
+            retVal = new ELResolverProxy_(retVal);
         }
         return retVal;
 

Copied: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java (from r893857, myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java?p2=myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java&p1=myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java&r1=893857&r2=893858&rev=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java Fri Dec 25 14:29:03 2009
@@ -36,9 +36,9 @@
  *
  * @author Werner Punz
  */
-public class ELResolverProxy extends ELResolver implements Decorated {
+public class ELResolverProxy_ extends ELResolver implements Decorated {
 
-    Log log = LogFactory.getLog(ELResolverProxy.class);
+    Log log = LogFactory.getLog(ELResolverProxy_.class);
     ELResolver _delegate = null;
 
     static ThreadLocal<Boolean> _getValue = new ThreadLocal<Boolean>();
@@ -124,7 +124,7 @@
     }
 
 
-    public ELResolverProxy(ELResolver delegate) {
+    public ELResolverProxy_(ELResolver delegate) {
         _delegate = delegate;
     }
 

Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java Fri Dec 25 14:29:03 2009
@@ -93,8 +93,8 @@
             * the same behavior you get from scripting engines!
             * 
             */
-            //service.addEntry(entry);
-            executeMethod(service, "addEntry",  entry);
+            service.addEntry(entry);
+            //executeMethod(service, "addEntry",  entry);
         }
 
         //we stay on the same page

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java?rev=893858&r1=893857&r2=893858&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java Fri Dec 25 14:29:03 2009
@@ -26,6 +26,7 @@
  */
 public class BlogEntry {
 
+    
     String firstName = "";
 
     String lastName = "";