EXTSCRIPT-154: Code Rewrite/Refactoring, save state of affairs, we now have to work on the refresh code, we have a phase listener working and recompiling, but the reloading yet fails on proxy level.



git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1298824 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/common/util/ClassUtils.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/common/util/ClassUtils.java
index 1dae081..66109f8 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/common/util/ClassUtils.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/common/util/ClassUtils.java
@@ -76,6 +76,9 @@
     {
         String className = relativeFileName.replaceAll("\\\\", ".").replaceAll("\\/", ".");
         className = className.substring(0, className.lastIndexOf("."));
+        if(className.startsWith(".")) {
+            className = className.substring(1);
+        }
         return className;
     }
 
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/context/WeavingContext.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/context/WeavingContext.java
index 0b9b098..1197a1e 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/context/WeavingContext.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/context/WeavingContext.java
@@ -201,7 +201,7 @@
     /**
      * reload the class dynamically
      */
-    public Class reloadClass(Class clazz)
+    public Class reload(Class clazz)
     {
         if (!isDynamic(clazz)) return clazz;
         ClassResource resource = (ClassResource) getResource(clazz.getName());
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java
index e1f847d..84a8d45 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java
@@ -80,6 +80,7 @@
             return super.loadClass(className);
         }
 
+
         //ClassResource data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
         //if (data != null && !data.getRefreshAttribute().requiresRefresh()) {
         //    return data.getAClass();
@@ -98,10 +99,13 @@
                 iStream = new FileInputStream(target);
                 int len = iStream.read(fileContent);
                 if (_logger.isLoggable(Level.FINER)) {
-                    _logger.log(Level.FINER, "class read {0}� bytes read", String.valueOf(len));
+                    _logger.log(Level.FINER, "class read {0} bytes read", String.valueOf(len));
                 }
             }
 
+            if(className.contains("TestResourceHandler")){
+                System.out.println("debugpoint found");
+            }
             //we have to do it here because just in case
             //a dependent class is loaded as well we run into classcast exceptions
             Class retVal = super.defineClass(className, fileContent, 0, fileLength);
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
index 2926788..2fe7dfa 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
@@ -140,6 +140,7 @@
     {
         String targetDir = WeavingContext.getInstance().getConfiguration().getCompileTarget().getAbsolutePath();
         String className = ClassUtils.relativeFileToClassName(getSourceFile());
+
         return className;
     }
 
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/MethodLevelReloadingHandler.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/MethodLevelReloadingHandler.java
index 34ab404..c5e26e7 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/MethodLevelReloadingHandler.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/MethodLevelReloadingHandler.java
@@ -85,7 +85,7 @@
 
         if (_delegate == null) {
             //stateless or lost state due to a lifecycle iteration we trigger anew
-            _delegate = (WeavingContext.getInstance().reloadClass(_loadedClass)).newInstance();
+            _delegate = (WeavingContext.getInstance().reload(_loadedClass)).newInstance();
         } else {
             //if we are stateful only a tainted artifact is reloaded
             _delegate = WeavingContext.getInstance().reload(_delegate, _artifactType);
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategy.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategy.java
index 9f8b1eb..aa30a35 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategy.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/reloading/SimpleReloadingStrategy.java
@@ -61,7 +61,7 @@
     public Object reload(Object scriptingInstance, int artifactType) {
 
         //reload the class to get new static content if needed
-        Class aclass = WeavingContext.getInstance().reloadClass(scriptingInstance.getClass());
+        Class aclass = WeavingContext.getInstance().reload(scriptingInstance.getClass());
         if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
             //class of this object has not changed although
             // reload is enabled we can skip the rest now
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/jsf/dynamicDecorators/implementations/ELResolverProxy.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/jsf/dynamicDecorators/implementations/ELResolverProxy.java
index ab0f903..498d3e6 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/jsf/dynamicDecorators/implementations/ELResolverProxy.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/jsf/dynamicDecorators/implementations/ELResolverProxy.java
@@ -77,7 +77,7 @@
     public Class<?> getType(ELContext elContext, Object o, Object o1) throws NullPointerException, ELException {
         Class<?> retVal = _delegate.getType(elContext, o, o1);
         if (retVal != null && WeavingContext.getInstance().isDynamic(retVal)) {
-            return WeavingContext.getInstance().reloadClass(retVal);
+            return WeavingContext.getInstance().reload(retVal);
         }
         return retVal;
     }