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:37:27 UTC
svn commit: r893864 - in /myfaces/extensions/scripting/trunk:
core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/
core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/
core/core/src/main/java/org/apache/myfaces/scripting...
Author: werpu
Date: Fri Dec 25 14:37:26 2009
New Revision: 893864
URL: http://svn.apache.org/viewvc?rev=893864&view=rev
Log:
dependency scanning now working refreshes again work in jsf1.2 and jsf2 annotation support working again!
Added:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java (contents, props changed)
- copied, changed from r893862, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassLogUtils.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java (with props)
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java (with props)
myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/servlet/
myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
- copied, changed from r893862, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
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 r893862, myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy_.java
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (contents, props changed)
- copied, changed from r893862, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
Removed:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassLogUtils.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
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/core/dependencyScan/ClassScanVisitor.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/dependencyScan/MethodScanVisitor.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/groovy/GroovyDependencyScanner.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/refresh/ReloadingMetadata.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
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
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/web.xml
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -30,6 +30,7 @@
import org.apache.myfaces.scripting.core.util.ClassUtils
import org.apache.myfaces.scripting.refresh.ReloadingMetadata
+import org.apache.myfaces.scripting.loaders.groovy.GroovyDependencyScanner
/**
* Weaver which does dynamic class reloading
@@ -48,145 +49,144 @@
*/
public class GroovyWeaver extends BaseWeaver implements Serializable, ScriptingWeaver {
- static ThreadLocal _groovyClassLoaderHolder = new ThreadLocal();
- DynamicClassIdentifier identifier = new DynamicClassIdentifier()
- ClassScanner _scanner = null;
+ static ThreadLocal _groovyClassLoaderHolder = new ThreadLocal();
+ DynamicClassIdentifier identifier = new DynamicClassIdentifier()
+ ClassScanner _scanner = null;
+ ClassScanner _dependencyScanner = new GroovyDependencyScanner(this)
+ public GroovyWeaver() {
+ super();
+ //super with params in java classes not superbly callable
+ //FIXME this is private in super class
+ scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
+ fileEnding = ".groovy"
- public GroovyWeaver() {
- super();
- //super with params in java classes not superbly callable
- //FIXME this is private in super class
- scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
- fileEnding = ".groovy"
+ //the super pass down between groovy and java is broken for the current
+ //version we work around that with setters
+ _reloadingStrategy = new GroovyGlobalReloadingStrategy()
+ _reloadingStrategy.setWeaver(this)
- //the super pass down between groovy and java is broken for the current
- //version we work around that with setters
- _reloadingStrategy = new GroovyGlobalReloadingStrategy()
- _reloadingStrategy.setWeaver(this)
-
- //init classpath removed we can resolve that over the
- //url classloader at the time myfaces is initialized
- try {
- Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.GenericAnnotationScanner");
- Class[] params = new Class[1];
- params[0] = ScriptingWeaver.class;
- this._scanner = scanner.getConstructor(params).newInstance(this);
- //this._scanner = (ClassScanner) ReflectUtil.instantiate(scanner, params);
-
- } catch (ClassNotFoundException e) {
- //we do nothing here
- }
+ //init classpath removed we can resolve that over the
+ //url classloader at the time myfaces is initialized
+ try {
+ Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.GenericAnnotationScanner");
+ Class[] params = new Class[1];
+ params[0] = ScriptingWeaver.class;
+ this._scanner = scanner.getConstructor(params).newInstance(this);
+ //this._scanner = (ClassScanner) ReflectUtil.instantiate(scanner, params);
+ } catch (ClassNotFoundException e) {
+ //we do nothing here
}
- /**
- * central point for the
- * loading, loads a class from a given sourceroot
- * and file
- */
- protected Class loadScriptingClassFromFile(String sourceRoot, String file) {
+ }
- File currentClassFile = new File(sourceRoot + File.separator + file)
+ /**
+ * central point for the
+ * loading, loads a class from a given sourceroot
+ * and file
+ */
+ protected Class loadScriptingClassFromFile(String sourceRoot, String file) {
- if (!currentClassFile.exists()) {
- return null;
- }
+ File currentClassFile = new File(sourceRoot + File.separator + file)
- if (log.isInfoEnabled()) {
- log.info("[EXT-SCRIPTING] Loading Groovy file:" + file);
- }
- //lazy instantiation to avoid threading problems
- //and locking related speed bumps
-
- //TODO replace the classloader detection with the one from the myfaces utils class
- GroovyClassLoader gcl = _groovyClassLoaderHolder.get()
+ if (!currentClassFile.exists()) {
+ return null;
+ }
- if (gcl == null) {
- gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
- //we have to add the script path so that groovy can work out the kinks of other source files added
- _groovyClassLoaderHolder.set(gcl)
+ if (log.isInfoEnabled()) {
+ log.info("[EXT-SCRIPTING] Loading Groovy file:" + file);
+ }
+ //lazy instantiation to avoid threading problems
+ //and locking related speed bumps
- WeavingContext.getConfiguration().getSourceDirs(ScriptingConst.ENGINE_TYPE_GROOVY).each {
- gcl.addClasspath(it)
- }
- }
+ //TODO replace the classloader detection with the one from the myfaces utils class
+ GroovyClassLoader gcl = _groovyClassLoaderHolder.get()
- Class retVal = gcl.parseClass(new FileInputStream(currentClassFile))
+ if (gcl == null) {
+ gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
+ //we have to add the script path so that groovy can work out the kinks of other source files added
+ _groovyClassLoaderHolder.set(gcl)
+ WeavingContext.getConfiguration().getSourceDirs(ScriptingConst.ENGINE_TYPE_GROOVY).each {
+ gcl.addClasspath(it)
+ }
+ }
- weaveGroovyReloadingCode(retVal)
+ Class retVal = gcl.parseClass(new FileInputStream(currentClassFile))
- if (retVal != null) {
- refreshReloadingMetaData(sourceRoot, file, currentClassFile, retVal, ScriptingConst.ENGINE_TYPE_GROOVY);
- }
- if (_scanner != null && retVal != null) {
- _scanner.scanClass(retVal);
- }
+ weaveGroovyReloadingCode(retVal)
- return retVal
+ if (retVal != null) {
+ refreshReloadingMetaData(sourceRoot, file, currentClassFile, retVal, ScriptingConst.ENGINE_TYPE_GROOVY);
+ }
+ if (_scanner != null && retVal != null) {
+ _scanner.scanClass(retVal);
}
+ return retVal
- 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);
- }
+ private void refreshReloadingMetaData(String sourceRoot, String file, File currentClassFile, Class retVal, int engineType) {
+ 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()));
- /**
- * creates a proxy specify object reloading proxy
- * this works very well in a groovy only specific
- * context, unfortunately as soon as the object
- * is pushed into java land the proxy is dropped
- * nevertheless we add this behavior for a groovy
- * only context, for now, in the long run we might
- * have to drop it entirely
- */
- private final void weaveGroovyReloadingCode(Class aclass) {
- //TODO this only works in a groovy 2 groovy specific
- //surrounding lets check if this is not obsolete
+ getClassMap().put(retVal.getName(), reloadingMetaData);
+ }
- def myMetaClass = new Groovy2GroovyObjectReloadingProxy(aclass)
- def invoker = InvokerHelper.instance
- invoker.metaRegistry.setMetaClass(aclass, myMetaClass)
- }
+ /**
+ * creates a proxy specify object reloading proxy
+ * this works very well in a groovy only specific
+ * context, unfortunately as soon as the object
+ * is pushed into java land the proxy is dropped
+ * nevertheless we add this behavior for a groovy
+ * only context, for now, in the long run we might
+ * have to drop it entirely
+ */
+ private final void weaveGroovyReloadingCode(Class aclass) {
+ //TODO this only works in a groovy 2 groovy specific
+ //surrounding lets check if this is not obsolete
- public boolean isDynamic(Class clazz) {
- return identifier.isDynamic(clazz)
- }
+ def myMetaClass = new Groovy2GroovyObjectReloadingProxy(aclass)
+ def invoker = InvokerHelper.instance
+ invoker.metaRegistry.setMetaClass(aclass, myMetaClass)
+ }
- public void fullRecompile() {
- // We do not have to do a full recompile here
- //the groovy classloader takes care of the issue
- //instead we just set the recompile recommended to false
+ public boolean isDynamic(Class clazz) {
+ return identifier.isDynamic(clazz)
+ }
- WeavingContext.getRefreshContext().setRecompileRecommended(ScriptingConst.ENGINE_TYPE_GROOVY, Boolean.FALSE);
- }
+ public void fullRecompile() {
+ // We do not have to do a full recompile here
+ //the groovy classloader takes care of the issue
+ //instead we just set the recompile recommended to false
+
+ WeavingContext.getRefreshContext().setRecompileRecommended(ScriptingConst.ENGINE_TYPE_GROOVY, Boolean.FALSE);
+ }
- public void fullClassScan() {
- if (_scanner == null) {
- return;
- }
- _scanner.scanPaths();
+ public void fullClassScan() {
+ //does not work yet due to the groovy classloader
+ //_dependencyScanner.scanPaths()
+ if (_scanner == null) {
+ return;
}
+ _scanner.scanPaths()
+ }
+
}
Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java (from r893862, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassLogUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java&p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassLogUtils.java&r1=893862&r2=893864&rev=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassLogUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java Fri Dec 25 14:37:26 2009
@@ -24,22 +24,30 @@
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
- * Utils which store the shared code
+ *
+ * Utils which store the shared code
+ *
+ *
*/
-class ClassLogUtils {
+class ClassScanUtils {
public static final String BINARY_PACKAGE = "\\/";
- private static final String DOMAIN_JAVA = "java.";
- private static final String DOMAIN_JAVAX = "javax.";
- private static final String DOMAIN_COM_SUN = "com.sun";
- private static final String DOMAIN_APACHE = "org.apache.";
- private static final String DOMAIN_MYFACES = "org.apache.myfaces";
- private static final String DOMAIN_JBOSS = "org.jboss";
- private static final String DOMAIN_SPRING = "org.springframework";
- private static final String DOMAIN_JUNIT = "org.junit";
- private static final String DOMAIN_ECLIPSE = "org.eclipse";
- private static final String DOMAIN_NETBEANS = "org.netbeans";
+ private static final String DOMAIN_JAVA = "java.";
+ private static final String DOMAIN_JAVAX = "javax.";
+ private static final String DOMAIN_COM_SUN = "com.sun";
+ private static final String DOMAIN_APACHE = "org.apache.";
+ private static final String DOMAIN_MYFACES = "org.apache.myfaces";
+ private static final String DOMAIN_JBOSS = "org.jboss";
+ private static final String DOMAIN_SPRING = "org.springframework";
+ private static final String DOMAIN_JUNIT = "org.junit";
+ private static final String DOMAIN_ECLIPSE = "org.eclipse";
+ private static final String DOMAIN_NETBEANS = "org.netbeans";
+ private static final String DOMAIN_GROOVY = "groovy.";
+ private static final String DOMAIN_SCALA = "scala.";
+ private static final String DOMAIN_JYTHON = "jython.";
+ private static final String DOMAIN_JRUBY = "jruby.";
+
/**
@@ -50,7 +58,7 @@
* @param in the page or fully qualified classname
* @return true if it belongs to one of the standard namespaces, false if not
*/
- public static final boolean isStandard(String in) {
+ public static final boolean isStandardNamespace(String in) {
//We dont use a regexp here, because an test has shown that direct startsWith is 5 times as fast as applying
//a precompiled regexp with match
@@ -60,11 +68,16 @@
return in.startsWith(DOMAIN_JAVA) ||
in.startsWith(DOMAIN_JAVAX) ||
in.startsWith(DOMAIN_COM_SUN) ||
+ in.startsWith(DOMAIN_GROOVY) ||
+ in.startsWith(DOMAIN_JYTHON) ||
+ in.startsWith(DOMAIN_JRUBY) ||
+ in.startsWith(DOMAIN_SCALA) ||
in.startsWith(DOMAIN_JBOSS) ||
in.startsWith(DOMAIN_SPRING) ||
- in.startsWith(DOMAIN_JUNIT) ||
+ in.startsWith(DOMAIN_JUNIT) ||
in.startsWith(DOMAIN_ECLIPSE) ||
in.startsWith(DOMAIN_NETBEANS) ||
+
//apache domain has to be treated specially myfaces can be referenced due to our tests and demos, otherwise this one
//is also treated as taboo zone
((in.startsWith(DOMAIN_APACHE) &&
@@ -103,7 +116,7 @@
//we strip the meta information which is not needed
//aka start mit ( alles strippen bis )
- //([A-Za-u]{0,1})
+ //()means usually beginning of a native type
if (parm.startsWith("(")) {
parm = parm.substring(parm.lastIndexOf(')') + 1);
}
@@ -137,12 +150,12 @@
* @param dependencies the target which has to recieve the dependency in source format
* @param parms the list of dependencies which have to be added
*/
- public static final void logParmList(Collection<String> dependencies,final Set<String> whiteList,final String... parms) {
+ public static final void logParmList(Collection<String> dependencies, final Set<String> whiteList, final String... parms) {
for (String parm : parms) {
if (parm == null) continue;
if (parm.equals("")) continue;
parm = internalClassDescriptorToSource(parm);
- if (parm == null || isStandard(parm)) continue;
+ if (parm == null || isStandardNamespace(parm)) continue;
String[] packages = parm.split("\\.");
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanUtils.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java Fri Dec 25 14:37:26 2009
@@ -21,8 +21,6 @@
import org.objectweb.asm.*;
import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
/**
* @author Werner Punz (latest modification by $Author$)
@@ -53,7 +51,7 @@
String signature, String superName, String[] interfaces) {
//log.log(Level.INFO, "{0} extends {1} ", new String[]{name, superName});
- ClassLogUtils.logParmList(dependencies, whiteList, superName);
+ ClassScanUtils.logParmList(dependencies, whiteList, superName);
}
public void visitSource(String source, String debug) {
@@ -83,7 +81,7 @@
public FieldVisitor visitField(int access, String name, String desc,
String signature, Object value) {
//log.log(Level.INFO, "Field:{0} {1} ", new Object[]{desc, name});
- ClassLogUtils.logParmList(dependencies, whiteList, desc);
+ ClassScanUtils.logParmList(dependencies, whiteList, desc);
return null;
}
@@ -94,7 +92,7 @@
//String subDesc = desc.substring(desc.indexOf('(') + 1, desc.lastIndexOf(")"));
//String[] parms = subDesc.split(";");
- //ClassLogUtils.logParmList(dependencies, parms);
+ //ClassScanUtils.logParmList(dependencies, parms);
//we now have to dig into the method to cover more, the parms are covered by our method scanner
return new MethodScanVisitor(dependencies, whiteList);
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -21,7 +21,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.tools.ant.taskdefs.Classloader;
import org.objectweb.asm.ClassReader;
import java.io.IOException;
@@ -74,7 +73,7 @@
scanCurrentClass(loader, retVal, className, whiteList);
Class parent = toCheck.getSuperclass();
- while (parent != null && !ClassLogUtils.isStandard(parent.getName())) {
+ while (parent != null && !ClassScanUtils.isStandardNamespace(parent.getName())) {
scanCurrentClass(loader, retVal, parent.getName(), whiteList);
parent = parent.getSuperclass();
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java Fri Dec 25 14:37:26 2009
@@ -23,8 +23,6 @@
import org.objectweb.asm.Attribute;
import org.objectweb.asm.Label;
-import java.util.logging.Logger;
-import java.util.logging.Level;
import java.util.Set;
/**
@@ -81,18 +79,18 @@
public void visitTypeInsn(int i, String castType) {
//cast
//log.log(Level.INFO, "TypeInsn: {0} ", new String[]{castType});
- ClassLogUtils.logParmList(dependencies, whiteList, castType);
+ ClassScanUtils.logParmList(dependencies, whiteList, castType);
}
public void visitFieldInsn(int i, String s, String s1, String s2) {
//log.log(Level.INFO, "visitFieldInsn {0} {1} {2}", new Object[]{s, s1, s2});
- //ClassLogUtils.logParmList(dependencies, castType);
- ClassLogUtils.logParmList(dependencies, whiteList, s2);
+ //ClassScanUtils.logParmList(dependencies, castType);
+ ClassScanUtils.logParmList(dependencies, whiteList, s2);
}
public void visitMethodInsn(int i, String s, String s1, String s2) {
//log.log(Level.INFO, "visitMethodIsn {0} {1} {2}", new Object[]{s, s1, s2});
- ClassLogUtils.logParmList(dependencies, whiteList, s2);
+ ClassScanUtils.logParmList(dependencies, whiteList, s2);
}
public void visitJumpInsn(int i, Label label) {
@@ -126,14 +124,14 @@
public void visitTryCatchBlock(Label label, Label label1, Label label2, String catchType) {
//try catch block type information in the last string
//log.log(Level.INFO, "visitTryCatchBlock: {0} {1} {2} {3}", new Object[]{label.toString(), label1.toString(), label2.toString(), catchType});
- ClassLogUtils.logParmList(dependencies, whiteList, catchType);
+ ClassScanUtils.logParmList(dependencies, whiteList, catchType);
}
public void visitLocalVariable(String s, String referenceType, String s2, Label label, Label label1, int i) {
//local variable on method level
//log.log(Level.INFO, "LocalVar: {0} {1} {2}", new String[]{s, referenceType, s2});
- ClassLogUtils.logParmList(dependencies, whiteList, referenceType);
+ ClassScanUtils.logParmList(dependencies, whiteList, referenceType);
}
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -29,6 +29,8 @@
import org.apache.myfaces.scripting.refresh.RefreshContext;
import javax.faces.context.FacesContext;
+import java.lang.ref.SoftReference;
+import java.lang.ref.WeakReference;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.util.Map;
@@ -44,6 +46,16 @@
*/
public class WeavingContext {
+ /**
+ * data we can pass for other threads
+ */
+ static class ThreadLocalData {
+ public Object _weaverHolder;
+ public Object _refreshContextHolder;
+ public Object _configurtion;
+ }
+
+ static ThreadLocalData _referenceThreadHolder = null;
/**
* <p>
@@ -208,4 +220,30 @@
return getWeaver().isDynamic(clazz);
}
+
+ /**
+ * we push the threading data into
+ * a shared queue
+ */
+ public static void pushThreadingData() {
+ ThreadLocalData data = new ThreadLocalData();
+ data._configurtion = getConfiguration();
+ data._refreshContextHolder = getRefreshContext();
+ data._weaverHolder = getWeaver();
+
+ _referenceThreadHolder = data;
+ }
+
+ public static void popThreadingData() {
+ ThreadLocalData data = _referenceThreadHolder;
+ setConfiguration((Configuration) data._configurtion);
+ setRefreshContext((RefreshContext) data._refreshContextHolder);
+ setWeaver((ScriptingWeaver) data._weaverHolder);
+ }
+
+ public static void cleanThreadingData() {
+ //we can enforce a prematurely cleanup that way
+ _referenceThreadHolder = null;
+ }
+
}
Modified: 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=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/groovy/GroovyDependencyScanner.java Fri Dec 25 14:37:26 2009
@@ -1,11 +1,30 @@
package org.apache.myfaces.scripting.loaders.groovy;
+import groovy.lang.GroovyClassLoader;
+import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.loaders.java.JavaDependencyScanner;
+import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
+
/**
- * 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 {
+public class GroovyDependencyScanner extends JavaDependencyScanner {
+
+ public GroovyDependencyScanner(ScriptingWeaver weaver) {
+ super(weaver);
+ }
+
+ @Override
+ protected ClassLoader getClassLoader() {
+ //TODO return the groovy classloader here
+ //which has to serve the groovy resources
+
+ GroovyClassLoader gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
+ for (String sourceDir : WeavingContext.getConfiguration().getSourceDirs(ScriptingConst.ENGINE_TYPE_GROOVY)) {
+ gcl.addClasspath(sourceDir);
+ }
+ return gcl;
+ }
}
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -27,6 +27,7 @@
import org.apache.myfaces.scripting.core.dependencyScan.DefaultDependencyScanner;
import org.apache.myfaces.scripting.core.dependencyScan.DependencyScanner;
import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.loaders.java.util.ExtendedLoopCnt;
import java.util.*;
import java.util.concurrent.Semaphore;
@@ -41,12 +42,9 @@
public class JavaDependencyScanner implements ClassScanner {
List<String> _scanPaths = new LinkedList<String>();
- 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>();
+ DependencyScanner _dependecyScanner = new DefaultDependencyScanner();
ScriptingWeaver _weaver;
Log log = LogFactory.getLog(JavaDependencyScanner.class.getName());
@@ -54,73 +52,44 @@
public JavaDependencyScanner(ScriptingWeaver weaver) {
this._weaver = weaver;
- for (int cnt = 0; cnt < MAX_PARALLEL_SCANS; cnt++) {
- dependencyScanner.push(new DefaultDependencyScanner());
- }
+
}
- public synchronized void scanPaths() {
+ public synchronized void scanPaths() {
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
- //final ClassLoader loader = new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
- ClassLoader loader = getClassLoader();
-
- String[] dynamicClassArr = new String[3];
+ final ClassLoader loader = getClassLoader();
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.
- //}
-
+ runScan(possibleDynamicClasses, loader, dynamicClass);
}
+
long end = System.currentTimeMillis();
if (log.isInfoEnabled()) {
log.info("[EXT-SCRITPING] class dependency scan finished, duration: " + (end - start) + " ms");
}
+ }
+
+
+ private final void runScan(final Set<String> possibleDynamicClasses, final ClassLoader loader, String dynamicClass) {
+
+ Set<String> referrers = _dependecyScanner.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);
+ }
}
- private RecompiledClassLoader getClassLoader() {
+
+ protected ClassLoader getClassLoader() {
return new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
}
Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java?rev=893864&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java Fri Dec 25 14:37:26 2009
@@ -0,0 +1,162 @@
+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;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
+import org.apache.myfaces.scripting.core.dependencyScan.DefaultDependencyScanner;
+import org.apache.myfaces.scripting.core.dependencyScan.DependencyScanner;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.loaders.java.util.ExtendedLoopCnt;
+
+import java.util.*;
+import java.util.concurrent.Semaphore;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ * <p/>
+ *
+ * A dependency scanner which utilizes the scan infrastructure
+ * from the core, multithreaded version
+ */
+public class JavaDependencyScannerMT implements ClassScanner{
+ private static final int VALUE_POOL_SIZE = 3;
+ static final int MAX_PARALLEL_SCANS = VALUE_POOL_SIZE;
+ Semaphore threadCtrl = new Semaphore(MAX_PARALLEL_SCANS);
+
+
+ List<String> _scanPaths = new LinkedList<String>();
+
+ //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(JavaDependencyScannerMT.class.getName());
+
+
+ public JavaDependencyScannerMT(ScriptingWeaver weaver) {
+ this._weaver = weaver;
+ for (int cnt = 0; cnt < MAX_PARALLEL_SCANS; cnt++) {
+ dependencyScanner.push(new DefaultDependencyScanner());
+ }
+ }
+
+
+
+ public synchronized void scanPaths() {
+
+ if (log.isInfoEnabled()) {
+ log.info("[EXT-SCRITPING] starting class dependency scan");
+ }
+ long start = System.currentTimeMillis();
+ final Set<String> possibleDynamicClasses = new HashSet<String>(_weaver.loadPossibleDynamicClasses());
+
+ final ClassLoader loader = getClassLoader();
+
+ WeavingContext.pushThreadingData();
+ try {
+ //we have not entirely achieved the performance numbers
+ //we have for the non threaded version hence we
+ //do not do it yet, we have to do a profiling
+ //on a high number of classes to get the
+ //correct values, and then we will take the version
+ //which is faster
+
+ String[] valuesArr = new String[VALUE_POOL_SIZE];
+ int len = valuesArr.length;
+ // int totalCnt = 0;
+
+ ExtendedLoopCnt cnt = new ExtendedLoopCnt(0,0, VALUE_POOL_SIZE);
+ for (String dynamicClass : possibleDynamicClasses) {
+
+ //if (threaded)
+ valuesArr[cnt.getCnt()] = dynamicClass;
+ if (cnt.getCnt() == (VALUE_POOL_SIZE - 1) || cnt.getTotalCnt() == (len-1)) {
+ runScanThreaded(possibleDynamicClasses, loader, valuesArr, cnt.getCnt() + 1);
+ }
+ cnt.incTotalCnt();
+ if (cnt.incCnt() == 0) {
+ valuesArr = new String[VALUE_POOL_SIZE];
+ }
+ }
+ while(threadCtrl.availablePermits() != MAX_PARALLEL_SCANS) {
+ try {
+ Thread.sleep(7);
+ } 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 {
+ WeavingContext.cleanThreadingData();
+ }
+ }
+
+ private final void runScanThreaded(final Set<String> possibleDynamicClasses, final ClassLoader loader, final String[] dynaClasses, final int noClasses) {
+
+ 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() {
+
+ WeavingContext.popThreadingData();
+
+ DependencyScanner depScanner = dependencyScanner.pop();
+ try {
+ for (int cnt = 0; cnt < noClasses; cnt++) {
+ String dynaClass = dynaClasses[cnt];
+ 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.
+ }
+ }
+
+
+ protected ClassLoader getClassLoader() {
+ return new RecompiledClassLoader(Thread.currentThread().getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
+ }
+
+
+ public void clearListeners() {
+ }
+
+ public void addListener(ClassScanListener listener) {
+
+ }
+
+ public void addScanPath(String scanPath) {
+ _scanPaths.add(scanPath);
+ }
+
+ public synchronized void scanClass(Class clazz) {
+ //not needed anymore since we only rely on full scans and full recompile now
+ }
+
+
+}
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScannerMT.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -190,11 +190,11 @@
*/
public void fullClassScan() {
_dependencyScanner.scanPaths();
+
- if (_annotationScanner == null) {
+ if (_annotationScanner == null || FacesContext.getCurrentInstance() == null) {
return;
}
-
_annotationScanner.scanPaths();
}
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -91,9 +91,7 @@
@Override
public Class<?> loadClass(String className) throws ClassNotFoundException {
//check if our class exists in the tempDir
- if(className.contains("Blog")) {
- System.out.println("Debugpoint found");
- }
+
File target = getClassFile(className);
if (target.exists()) {
ReloadingMetadata data = WeavingContext.getFileChangedDaemon().getClassMap().get(className);
Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java?rev=893864&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java Fri Dec 25 14:37:26 2009
@@ -0,0 +1,36 @@
+package org.apache.myfaces.scripting.loaders.java.util;
+
+/**
+ * helper class which allows to deal with loops which have to keep track
+ * of two running loop variables one being the total counter
+ * oune being a counter which is modulated
+ */
+public class ExtendedLoopCnt {
+ int _cnt = 0;
+ int _totalCnt = 0;
+ int _delimiter = 0;
+
+ public ExtendedLoopCnt(int cnt, int totalCnt, int cntDelimiter) {
+ _cnt = cnt;
+ _totalCnt = totalCnt;
+ _delimiter = cntDelimiter;
+ }
+
+ public final int getCnt() {
+ return _cnt;
+ }
+
+ public final int getTotalCnt() {
+ return _totalCnt;
+ }
+
+ public final int incCnt() {
+ _cnt = (_cnt + 1) % _delimiter;
+ return _cnt;
+ }
+
+ public final int incTotalCnt() {
+ _totalCnt++;
+ return _totalCnt;
+ }
+}
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/ExtendedLoopCnt.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -95,9 +95,7 @@
}
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -112,9 +112,7 @@
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/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Fri Dec 25 14:37:26 2009
@@ -34,10 +34,8 @@
import javax.faces.el.*;
import javax.faces.event.ActionListener;
import javax.faces.validator.Validator;
-import javax.servlet.ServletRequest;
import java.lang.reflect.Proxy;
import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
/**
* our decorating applicstion
Copied: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (from r893862, 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/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?p2=myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java&p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java&r1=893862&r2=893864&rev=893864&view=diff
==============================================================================
(empty)
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=893864&r1=893863&r2=893864&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:37:26 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 r893862, 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=893862&r2=893864&rev=893864&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:37:26 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/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java Fri Dec 25 14:37:26 2009
@@ -39,6 +39,10 @@
protected RuntimeConfig getRuntimeConfig() {
final FacesContext facesContext = FacesContext.getCurrentInstance();
+ //runtime config not started
+ if(facesContext == null) {
+ return null;
+ }
return RuntimeConfig.getCurrentInstance(facesContext.getExternalContext());
}
Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java Fri Dec 25 14:37:26 2009
@@ -18,13 +18,18 @@
*/
package org.apache.myfaces.scripting.jsf2.annotation;
+import org.apache.commons.logging.Log;
+import org.apache.myfaces.config.impl.digester.elements.FacesConfig;
+import org.apache.myfaces.groovyloader.core.GroovyWeaver;
import org.apache.myfaces.scripting.api.AnnotationScanListener;
import org.apache.myfaces.scripting.api.ClassScanListener;
import org.apache.myfaces.scripting.api.ClassScanner;
import org.apache.myfaces.scripting.api.ScriptingWeaver;
import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.loaders.java.JavaScriptingWeaver;
import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
+import javax.faces.context.FacesContext;
import java.util.*;
/**
@@ -101,19 +106,37 @@
* on the found data
*/
public void scanPaths() {
- //TODO move this over to a binary scan system
//https://issues.apache.org/jira/browse/EXTSCRIPT-33
+
+ //check if the faces config is already available otherwise we cannot scan yet
+ final FacesContext facesContext = FacesContext.getCurrentInstance();
+ //runtime config not started
+ //for now we only can reache the runtime config in the referenced BaseAnnotatonScanListener
+ //if we have a facesContext reachable.
+ if(facesContext == null) {
+ //TODO decouple the scan in the BaseAnnotationScanListener from the facesConfig
+ //to get the runtime config
+ return;
+ }
+
for (String className : _weaver.loadPossibleDynamicClasses()) {
Class clazz = _weaver.loadScriptingClassFromName(className);
//called already by loadScriptingClassFromName
- /*if(clazz != null) {
+
+
+ //TODO unify this, problem is due to the initial class dependency scan
+ //we already have the classes but unlike in groovy they are not tainted
+ //hence we do not have the annotations yet scanned
+ //in groovy we have the initial scan not done hence
+ //the annotations are scanned on the fly!
+ if(clazz != null && !(_weaver instanceof GroovyWeaver)) {
java.lang.annotation.Annotation[] anns = clazz.getAnnotations();
if (anns != null && anns.length > 0) {
addOrMoveAnnotations(clazz);
} else {
removeAnnotations(clazz);
}
- }*/
+ }
}
}
Copied: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (from r893862, 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/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?p2=myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java&p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java&r1=893862&r2=893864&rev=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java Fri Dec 25 14:37:26 2009
@@ -21,17 +21,16 @@
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.api.ScriptingConst;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
import org.apache.myfaces.scripting.core.util.ClassUtils;
import org.apache.myfaces.scripting.core.util.WeavingContext;
-import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.api.ScriptingConst;
import org.apache.myfaces.scripting.refresh.RefreshContext;
+import org.apache.myfaces.webapp.StartupListener;
-import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -72,9 +71,9 @@
* @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");
+ //log.info("[EXT-SCRIPTING] Compiling all sources for the first time");
weaver.requestRefresh();
- weaver.fullClassScan();
+ //weaver.fullClassScan();
}
/**
Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy Fri Dec 25 14:37:26 2009
@@ -29,7 +29,7 @@
Log log = LogFactory.getLog(Blog.class)
- String title = "Hello to the myfaces dynamic blogging"
+ String title = "Hello to the myfaces dynamic blogging "
String title1 = "You can alter the code for this small blogging application on the fly, you even can add new classes on the fly and Grooy will pick it up"
String firstName = ""
@@ -41,7 +41,6 @@
public String addEntry() {
log.info("adding entry");
-
def service = JSFUtil.resolveVariable("blogService")
if (service == null) {
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy Fri Dec 25 14:37:26 2009
@@ -28,4 +28,5 @@
String topic = ""
String content = ""
+
}
\ No newline at end of file
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy Fri Dec 25 14:37:26 2009
@@ -31,7 +31,7 @@
public void addEntry(def entry) {
Log log = LogFactory.getLog(BlogService.class)
- log.info("Adding entry reloaded 3")
+ log.info("Adding entry")
blogEntries << entry
}
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -20,10 +20,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.scripting.loaders.java.ScriptingClass;
import static org.apache.myfaces.javaloader.blog.JSFUtil.*;
-import static org.apache.myfaces.scripting.core.util.ReflectUtil.*;
/**
* @author werpu2
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=893864&r1=893863&r2=893864&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:37:26 2009
@@ -26,17 +26,10 @@
*/
public class BlogEntry {
-
-
-
-
-
- String firstName = "";
-
- String lastName = "";
- String topic = "";
-
- String content = "";
+ String firstName = "";
+ String lastName = "";
+ String topic = "";
+ String content = "";
public String getFirstName() {
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.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/BlogService.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java Fri Dec 25 14:37:26 2009
@@ -18,8 +18,6 @@
*/
package org.apache.myfaces.javaloader.blog;
-import org.apache.myfaces.scripting.loaders.java.ScriptingClass;
-
import java.util.List;
import java.util.LinkedList;
import java.util.Collections;
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.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/JSFUtil.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java Fri Dec 25 14:37:26 2009
@@ -23,10 +23,7 @@
import javax.faces.context.FacesContext;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-import static org.apache.myfaces.scripting.core.util.ClassUtils.*;
import static org.apache.myfaces.scripting.core.util.ReflectUtil.*;
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java Fri Dec 25 14:37:26 2009
@@ -1,7 +1,5 @@
package org.apache.myfaces.javaloader.test;
-import org.apache.myfaces.scripting.loaders.java.ScriptingClass;
-
public class TestBean2 {
String sayHello = "hello worldgggg";
Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/web.xml?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/web.xml Fri Dec 25 14:37:26 2009
@@ -45,7 +45,7 @@
<param-value>org.apache.myfaces.scripting.servlet.StartupServletContextPluginChainLoader</param-value>
</context-param>
-
+ <!--
<context-param>
<description>Additional comma separated loader paths to allow direct editing on the sources directory instead
of the deployment dir
@@ -65,7 +65,8 @@
/Users/werpu2/development/workspace/extensions-scripting3/examples/myfaces12-example/src/main/webapp/WEB-INF/java
</param-value>
</context-param>
-
+ -->
+
<!--
<context-param>
<description>Additional comma separated loader paths to allow direct editing on the sources directory instead
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-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/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java Fri Dec 25 14:37:26 2009
@@ -60,6 +60,7 @@
return content;
}
+
public void setContent(String content) {
this.content = content;
}
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java Fri Dec 25 14:37:26 2009
@@ -49,6 +49,7 @@
public void addEntry(BlogEntry entry) {
if (entry != null) {
blogEntries.add(entry);
+
}
}
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java Fri Dec 25 14:37:26 2009
@@ -42,13 +42,13 @@
* the annotation is dynamic you can change it on the fly or move it from one
* class to the other
*/
- @FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
+@FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
public class JavaTestRenderer1 extends HtmlTextRendererBase {
static Log log = LogFactory.getLog(JavaTestRenderer1.class);
- private static final String MSG2 = " Hello world from Renderer 1 ";
+ private static final String MSG2 = "Hello world from Renderer 1 ";
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
super.encodeBegin(context, component);
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml?rev=893864&r1=893863&r2=893864&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml Fri Dec 25 14:37:26 2009
@@ -54,6 +54,7 @@
</param-value>
</context-param>
-->
+
<!--
<context-param>
<description>Additional comma separated loader paths to allow direct editing on the sources directory instead