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/09 00:56:00 UTC

svn commit: r888641 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scr...

Author: werpu
Date: Tue Dec  8 23:55:59 2009
New Revision: 888641

URL: http://svn.apache.org/viewvc?rev=888641&view=rev
Log:
ongoing works on the reloading strategies,
we now have better reload handling on the flyweight and stateless
or light artefacts (the ones which can drop states and expect them in case
of a reload, or which get the states injected instead)

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java   (contents, props changed)
      - copied, changed from r888639, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
Removed:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
    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

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java?rev=888641&r1=888640&r2=888641&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java Tue Dec  8 23:55:59 2009
@@ -19,9 +19,10 @@
 package org.apache.myfaces.scripting.loaders.java.jsr199;
 
 
-
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
+import org.apache.myfaces.scripting.loaders.java.ScriptingClass;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import javax.tools.FileObject;
 import javax.tools.ForwardingJavaFileManager;
@@ -48,10 +49,9 @@
     public ContainerFileManager(StandardJavaFileManager standardJavaFileManager) {
         super(standardJavaFileManager);
         _delegate = standardJavaFileManager;
-        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader());
+        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
     }
 
-
     @Override
     public JavaFileObject getJavaFileForOutput(Location location, String s, JavaFileObject.Kind kind, FileObject fileObject) throws IOException {
         return super.getJavaFileForOutput(location, s, kind, fileObject);
@@ -61,7 +61,8 @@
     public ClassLoader getClassLoader(Location location) {
         return classLoader;
     }
-     public ClassLoader getClassLoader() {
+
+    public ClassLoader getClassLoader() {
         return classLoader;
     }
 
@@ -86,10 +87,10 @@
 
         StringBuilder retVal = new StringBuilder(500);
         while (cls != null) {
-            if(cls instanceof URLClassLoader ) {
+            if (cls instanceof URLClassLoader) {
                 URL[] urls = ((URLClassLoader) cls).getURLs();
                 int len = urls.length;
-                
+
                 for (int cnt = 0; cnt < len; cnt++) {
 
                     retVal.append(urls[cnt].getFile());
@@ -103,7 +104,7 @@
         }
 
         String retStr = retVal.toString();
-        if(retStr.length()>1) {
+        if (retStr.length() > 1) {
             retStr = retStr.substring(0, retStr.length() - 1);
         }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy?rev=888641&r1=888640&r2=888641&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy Tue Dec  8 23:55:59 2009
@@ -3,7 +3,7 @@
 import org.apache.myfaces.scripting.api.ReloadingStrategy
 import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy
 import org.apache.myfaces.scripting.api.BaseWeaver
-import org.apache.myfaces.scripting.core.reloading.RendererReloadingStrategy;
+import org.apache.myfaces.scripting.core.reloading.NoMappingReloadingStrategy;
 
 /**
  * Reloading strategy for the groovy
@@ -14,30 +14,17 @@
  * some introspection ones which under no circumstances
  * should be overwritten
  *
+ * so er have to set the all others instance var to a specialized reloading strategy
+ * and cope with the rest the standard java way by not doing anything
+ *
  */
-public class GlobalReloadingStrategy  implements ReloadingStrategy {
+public class GlobalReloadingStrategy extends org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy {
 
     private BaseWeaver _weaver = null;
 
-    private ReloadingStrategy _rendererStrategy;
-    private ReloadingStrategy _allOthers;
-
-
     public GlobalReloadingStrategy(weaver) {
-        _weaver = weaver;
-        _rendererStrategy = new RendererReloadingStrategy();
+        super(weaver);
         _allOthers = new StandardGroovyReloadingStrategy();
 
     }
-
-    public Object reload(Object toReload, int artefactType) {
-
-
-        switch (artefactType) {
-            case ScriptingConst.ARTEFACT_TYPE_RENDERER:
-                return _rendererStrategy.reload(toReload, artefactType);
-            //TODO Add other artefact loading strategies on demand here
-            default:
-                return _allOthers.reload(toReload, artefactType);
-        }    }
 }
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888641&r1=888640&r2=888641&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java Tue Dec  8 23:55:59 2009
@@ -33,19 +33,23 @@
 
 public class GlobalReloadingStrategy implements ReloadingStrategy {
 
-    private BaseWeaver _weaver = null;
+    protected BaseWeaver _weaver = null;
 
-    private ReloadingStrategy _beanStrategy;
-    private ReloadingStrategy _rendererStrategy;
-    private ReloadingStrategy _allOthers;
+    protected ReloadingStrategy _beanStrategy;
+    protected ReloadingStrategy _noMappingStrategy;
+    protected ReloadingStrategy _allOthers;
 
     public GlobalReloadingStrategy(BaseWeaver weaver) {
         _weaver = weaver;
         _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
-        _rendererStrategy = new RendererReloadingStrategy();
+        _noMappingStrategy = new NoMappingReloadingStrategy();
         _allOthers = new SimpleReloadingStrategy(weaver);
     }
 
+    public GlobalReloadingStrategy() {
+        
+    }
+
     /**
      * the strategy callback which switches between various strategies
      * we have in our system
@@ -60,7 +64,16 @@
             case ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN:
                 return _beanStrategy.reload(toReload, artefactType);
             case ScriptingConst.ARTEFACT_TYPE_RENDERER:
-                return _rendererStrategy.reload(toReload, artefactType);
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_BEHAVIOR:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_COMPONENT:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_VALIDATOR:
+                return _noMappingStrategy.reload(toReload, artefactType);
+
             //TODO Add other artefact loading strategies on demand here
             default:
                 return _allOthers.reload(toReload, artefactType);

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java (from r888639, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java&p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java&r1=888639&r2=888641&rev=888641&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java Tue Dec  8 23:55:59 2009
@@ -24,10 +24,24 @@
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  *
+ * <p />
  * The renderer is a stateless flyweight pattern the reloading strategy is
  * to do nothing, this should give optimal results
+ *
+ * <p />
+ * The components are a similar case they are not flyweight
+ * but the properties usually are preserved by the lifecycle if possible
+ * or assigned by the tag handlers
+ *
+ * <p />
+ * The same also applies to other flyweight patterned classes
+ * like converters or validators
+ * 
+ * <p />
+ * The only ones which need to keep some state are the ones
+ * which keep delegates, like the NavHandler
  */
-public class RendererReloadingStrategy extends SimpleReloadingStrategy {
+public class NoMappingReloadingStrategy extends SimpleReloadingStrategy {
     @Override
     protected void mapProperties(Object target, Object src) {
         return;

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

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

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888641&r1=888640&r2=888641&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 Tue Dec  8 23:55:59 2009
@@ -30,7 +30,6 @@
  * @date: 01.09.2009
  */
 
-
 public class Blog {
 
     String title        =   "Hello to the myfaces dynamic blogging example";
@@ -50,7 +49,6 @@
 
     String content      = "";
 
-    
 
     private Log getLog() {
         return LogFactory.getLog(this.getClass());
@@ -79,6 +77,8 @@
         entry.setTopic(topic);
         entry.setContent(content);
 
+
+
         if (service != null) {
             /*convenience method to call a method on an object dynamically
             * executeMethod and cast are static imports which encapsule the

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=888641&r1=888640&r2=888641&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 Tue Dec  8 23:55:59 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.javaloader.blog;
 
+
+
 /**
  * @author werpu2
  * @date: 01.09.2009

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=888641&r1=888640&r2=888641&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 Tue Dec  8 23:55:59 2009
@@ -24,6 +24,8 @@
 import java.util.LinkedList;
 import java.util.Collections;
 
+
+
 /**
  * @author werpu2
  * @date: 01.09.2009

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=888641&r1=888640&r2=888641&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 Tue Dec  8 23:55:59 2009
@@ -60,7 +60,6 @@
              org.apache.myfaces.scripting.java.JAR_PATHS
              pointing towards the lingering jars
              The compiler cannot pick up the implicit containers classpaths
-
             */
             //we use the introspection calls here to achieve our goal that way
             //we can shift the dependency resolution from compile time to runtime