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;
}