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 2012/03/19 14:07:19 UTC
svn commit: r1302408 - in /myfaces/extensions/scripting/trunk:
extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/
extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/c...
Author: werpu
Date: Mon Mar 19 13:07:19 2012
New Revision: 1302408
URL: http://svn.apache.org/viewvc?rev=1302408&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-157 eliminating the scanner classloader
Modified:
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/loader/ThrowAwayClassloader.java
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java
myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy
myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter1.java
myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter2.java
myfaces/extensions/scripting/trunk/src/site/xdoc/installation.xml
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java Mon Mar 19 13:07:19 2012
@@ -25,7 +25,6 @@ import org.apache.myfaces.extensions.scr
import org.apache.myfaces.extensions.scripting.core.engine.api.ClassScanner;
import org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
import org.apache.myfaces.extensions.scripting.core.engine.api.ScriptingEngine;
-import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.loaders.ScannerClassloader;
import org.apache.myfaces.extensions.scripting.core.loader.ThrowAwayClassloader;
import org.apache.myfaces.extensions.scripting.core.monitor.ClassResource;
import org.apache.myfaces.extensions.scripting.core.monitor.WatchedResource;
@@ -351,8 +350,8 @@ public class WeavingContext
public boolean isDynamic(Class clazz)
{
- return ((clazz.getClassLoader() instanceof ThrowAwayClassloader) || (clazz.getClassLoader() instanceof
- ScannerClassloader));
+ return (clazz.getClassLoader() instanceof ThrowAwayClassloader)/*<> || (clazz.getClassLoader() instanceof
+ ScannerClassloader))*/;
}
/**
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java Mon Mar 19 13:07:19 2012
@@ -25,8 +25,8 @@ import org.apache.myfaces.extensions.scr
import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.StandardDependencyScanner;
import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.api.DependencyScanner;
import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.filter.WhitelistFilter;
-import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.loaders.ScannerClassloader;
import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.registry.ExternalFilterDependencyRegistry;
+import org.apache.myfaces.extensions.scripting.core.loader.ThrowAwayClassloader;
import java.security.AccessController;
import java.security.PrivilegedActionException;
@@ -106,13 +106,19 @@ public abstract class BaseScanner
{
try
{
- return AccessController.doPrivileged(new PrivilegedExceptionAction<ScannerClassloader>()
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<ThrowAwayClassloader>()
{
- public ScannerClassloader run()
+ /*<> public ScannerClassloader run()
{
return new ScannerClassloader(Thread.currentThread().getContextClassLoader(), getEngineType(),
getFileEnding(), WeavingContext.getInstance().getConfiguration().getCompileTarget());
+ }*/
+
+ public ThrowAwayClassloader run()
+ {
+ return new ThrowAwayClassloader(Thread.currentThread().getContextClassLoader(),false);
}
+
});
}
catch (PrivilegedActionException e)
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/loaders/ScannerClassloader.java Mon Mar 19 13:07:19 2012
@@ -30,8 +30,10 @@ import java.util.logging.Logger;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
+ *
+ * TODO replace it with the ThrowAwayLoader
*/
-
+@Deprecated
public class ScannerClassloader extends ClassLoader
{
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/loader/ThrowAwayClassloader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/loader/ThrowAwayClassloader.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/loader/ThrowAwayClassloader.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/loader/ThrowAwayClassloader.java Mon Mar 19 13:07:19 2012
@@ -38,7 +38,13 @@ public class ThrowAwayClassloader extend
{
static final Logger _logger = Logger.getLogger(ThrowAwayClassloader.class.getName());
-
+ boolean _untaint = true;
+ public ThrowAwayClassloader(ClassLoader classLoader, boolean untaint)
+ {
+ super(classLoader);
+ _untaint = untaint;
+ }
+
public ThrowAwayClassloader(ClassLoader classLoader)
{
super(classLoader);
@@ -105,9 +111,11 @@ public class ThrowAwayClassloader extend
//TODO we might run into issues here with inner classes
Class retVal;
if (res != null) {
- retVal = (new ThrowAwayClassloader(getParent())).defineClass(className, fileContent, 0, fileLength);
- res.setAClass(retVal);
- res.setTainted(false);
+ retVal = (new ThrowAwayClassloader(getParent(),_untaint)).defineClass(className, fileContent, 0, fileLength);
+ if(_untaint) {
+ res.setAClass(retVal);
+ res.setTainted(false);
+ }
} else {
retVal = super.defineClass(className, fileContent, 0, fileLength);
}
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java Mon Mar 19 13:07:19 2012
@@ -162,6 +162,10 @@ public class ClassResource extends Watch
tainted = value;
}
+ public void setTainted(boolean value, boolean noLog)
+ {
+ tainted = value;
+ }
/**
* @return true if the source file has been modified compared to its classfile
*/
Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java Mon Mar 19 13:07:19 2012
@@ -22,8 +22,9 @@ import org.apache.myfaces.extensions.scr
import org.apache.myfaces.extensions.scripting.core.api.ClassScanListener;
import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
import org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
+import org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
import org.apache.myfaces.extensions.scripting.core.engine.api.ClassScanner;
-import org.apache.myfaces.extensions.scripting.core.engine.dependencyScan.loaders.ScannerClassloader;
+import org.apache.myfaces.extensions.scripting.core.loader.ThrowAwayClassloader;
import javax.faces.context.FacesContext;
import java.util.*;
@@ -118,8 +119,12 @@ public class GenericAnnotationScanner ex
try {
if(!_weaver.isTainted(className)) continue;
- ScannerClassloader loader = new ScannerClassloader(Thread.currentThread().getContextClassLoader(),
- -1, null, _weaver.getConfiguration().getCompileTarget());
+ //TODO replace this with a direct call to our weavingContext
+ //<>ScannerClassloader loader = new ScannerClassloader(Thread.currentThread().getContextClassLoader(),
+ // -1, null, _weaver.getConfiguration().getCompileTarget());
+ ThrowAwayClassloader loader = new ThrowAwayClassloader(ClassUtils.getContextClassLoader(), false);
+
+
Class clazz;
//in case the class does not exist we have to load it from our weavingcontext
Modified: myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy (original)
+++ myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy Mon Mar 19 13:07:19 2012
@@ -22,7 +22,8 @@ import java.util.logging.Logger
import javax.faces.bean.ApplicationScoped
import javax.faces.bean.ManagedBean
-
+@ManagedBean(name = "blogService")
+@ApplicationScoped
public class BlogService {
List blogEntries = new ArrayList()
Modified: myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy (original)
+++ myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy Mon Mar 19 13:07:19 2012
@@ -24,8 +24,7 @@ import javax.faces.bean.ApplicationScope
-@ManagedBean(name = "blogService")
-@ApplicationScoped
+
public class BlogService2 {
List blogEntries = new ArrayList()
Modified: myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter1.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter1.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter1.java Mon Mar 19 13:07:19 2012
@@ -30,7 +30,6 @@ import javax.faces.component.UIComponent
*
* A simple test converter which can be changed on the fly
*/
-@FacesConverter(value = "at.irian.CustomConverter")
public class TestConverter1 implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
return value;
Modified: myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter2.java?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter2.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/validatorConverterTest/TestConverter2.java Mon Mar 19 13:07:19 2012
@@ -28,7 +28,7 @@ import javax.faces.convert.FacesConverte
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-
+@FacesConverter(value = "at.irian.CustomConverter")
public class TestConverter2 implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
return "hello from converter 2";
Modified: myfaces/extensions/scripting/trunk/src/site/xdoc/installation.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/src/site/xdoc/installation.xml?rev=1302408&r1=1302407&r2=1302408&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/src/site/xdoc/installation.xml (original)
+++ myfaces/extensions/scripting/trunk/src/site/xdoc/installation.xml Mon Mar 19 13:07:19 2012
@@ -192,8 +192,8 @@
</p>
<p>you can obtain both jars after the build from:
<ul>
- <li><yourbuilderoot>/extscript-bundles/xtscript-myfaces12-bundle/target/extscript-myfaces12-bundle-1.0-SNAPSHOT.jar</li>
- <li><yourbuilderoot>/extscript-bundles/xtscript-myfaces12-bundle/target/extscript-myfaces20-bundle-1.0-SNAPSHOT.jar</li>
+ <li><yourbuilderoot>/extscript-bundles/extscript-myfaces12-bundle/target/extscript-myfaces12-bundle-1.0-SNAPSHOT.jar</li>
+ <li><yourbuilderoot>/extscript-bundles/extscript-myfaces20-bundle/target/extscript-myfaces20-bundle-1.0-SNAPSHOT.jar</li>
</ul>
</p>
<p>After having done that you are ready to setup the rest of the Ext-Scripting configuration manually as