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/16 10:39:35 UTC

svn commit: r891168 - in /myfaces/extensions/scripting/trunk: core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scripting/api/ core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/...

Author: werpu
Date: Wed Dec 16 09:39:34 2009
New Revision: 891168

URL: http://svn.apache.org/viewvc?rev=891168&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-38
The problem was partially a bug in groovy which prevented the super(variable) to be called
I have worked around that one (again), this bug has been worked around in other parts of the system as well.

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyGlobalReloadingStrategy.groovy
      - copied, changed from r890931, myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
Removed:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
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/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/faces-config.xml
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestBean.groovy
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestNavigationHandler.groovy

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyGlobalReloadingStrategy.groovy (from r890931, 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/GroovyGlobalReloadingStrategy.groovy?p2=myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyGlobalReloadingStrategy.groovy&p1=myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy&r1=890931&r2=891168&rev=891168&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/GroovyGlobalReloadingStrategy.groovy Wed Dec 16 09:39:34 2009
@@ -3,7 +3,8 @@
 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.NoMappingReloadingStrategy;
+import org.apache.myfaces.scripting.core.reloading.NoMappingReloadingStrategy
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 /**
  * Reloading strategy for the groovy
@@ -18,13 +19,18 @@
  * and cope with the rest the standard java way by not doing anything
  *
  */
-public class GlobalReloadingStrategy extends org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy {
+public class GroovyGlobalReloadingStrategy extends org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy {
 
-    private BaseWeaver _weaver = null;
-
-    public GlobalReloadingStrategy(weaver) {
-        super(weaver);
-        _allOthers = new StandardGroovyReloadingStrategy();
+    //we cannot use a constructor here to bypass a groovy bug
+    //we use an explicit call to setWeaver instead
+    public GroovyGlobalReloadingStrategy() {
+        super();
+        _allOthers = new StandardGroovyReloadingStrategy()
+    }
 
+    public void setWeaver(ScriptingWeaver weaver) {
+        super.setWeaver( weaver )
+        _allOthers.setWeaver( weaver )
     }
+
 }
\ No newline at end of file

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=891168&r1=891167&r2=891168&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 Wed Dec 16 09:39:34 2009
@@ -27,6 +27,7 @@
 import org.apache.myfaces.scripting.api.BaseWeaver
 import org.apache.myfaces.scripting.refresh.FileChangedDaemon
 import org.apache.myfaces.scripting.core.util.WeavingContext
+import org.apache.myfaces.groovyloader.core.GroovyGlobalReloadingStrategy
 
 /**
  * Weaver  which does dynamic class reloading
@@ -55,7 +56,11 @@
         //FIXME this is private in super class
         scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
         fileEnding = ".groovy"
-        _reloadingStrategy = new GlobalReloadingStrategy(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.weaver = this
     }
 
     /**

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy Wed Dec 16 09:39:34 2009
@@ -29,6 +29,7 @@
         super(weaver);
     }
 
+    
     /**
      * central algorithm which determines which property values are overwritten and which are not
      */

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java Wed Dec 16 09:39:34 2009
@@ -13,4 +13,8 @@
  */
 public interface ReloadingStrategy {
     public Object reload(Object toReload, int artefactType);
+
+    public ScriptingWeaver getWeaver();
+    public void setWeaver(ScriptingWeaver weaver);
+
 }

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=891168&r1=891167&r2=891168&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 Wed Dec 16 09:39:34 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.scripting.api.BaseWeaver;
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
 import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -33,19 +34,17 @@
 
 public class GlobalReloadingStrategy implements ReloadingStrategy {
 
-    protected BaseWeaver _weaver = null;
+    protected ScriptingWeaver _weaver = null;
 
     protected ReloadingStrategy _beanStrategy;
     protected ReloadingStrategy _noMappingStrategy;
     protected ReloadingStrategy _allOthers;
 
-    public GlobalReloadingStrategy(BaseWeaver weaver) {
-        _weaver = weaver;
-        _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
-        _noMappingStrategy = new NoMappingReloadingStrategy(weaver);
-        _allOthers = new SimpleReloadingStrategy(weaver);
+    public GlobalReloadingStrategy(ScriptingWeaver weaver) {
+        setWeaver(weaver);
     }
 
+
     public GlobalReloadingStrategy() {
         
     }
@@ -73,10 +72,21 @@
                 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);
         }
     }
+
+    public void setWeaver(ScriptingWeaver weaver) {
+        _weaver = weaver;
+        _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
+        _noMappingStrategy = new NoMappingReloadingStrategy(weaver);
+        _allOthers = new SimpleReloadingStrategy(weaver);
+    }
+
+    public ScriptingWeaver getWeaver() {
+        return _weaver;
+    }
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java Wed Dec 16 09:39:34 2009
@@ -27,6 +27,7 @@
 import org.apache.myfaces.config.element.ManagedBean;
 import org.apache.myfaces.scripting.api.BaseWeaver;
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 import org.apache.myfaces.scripting.core.util.ReflectUtil;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
@@ -49,16 +50,19 @@
 
 public class ManagedBeanReloadingStrategy implements ReloadingStrategy {
 
-    BaseWeaver _weaver;
+    ScriptingWeaver _weaver;
     Map<String, List<ManagedBean>> _managedBeanIdx = null;
 
     static final String RELOAD_PERFORMED = "beanReloadPerformed";
 
 
-    public ManagedBeanReloadingStrategy(BaseWeaver weaver) {
+    public ManagedBeanReloadingStrategy(ScriptingWeaver weaver) {
         _weaver = weaver;
     }
 
+    public ManagedBeanReloadingStrategy() {
+    }
+
     /**
      * In our case the dropping already has happend at request time
      * no need for another reloading here
@@ -71,4 +75,12 @@
         return scriptingInstance;
     }
 
+    public ScriptingWeaver getWeaver() {
+        return _weaver;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void setWeaver(ScriptingWeaver weaver) {
+        _weaver = weaver;
+    }
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java Wed Dec 16 09:39:34 2009
@@ -20,6 +20,7 @@
 
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
 import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -44,10 +45,12 @@
  */
 public class NoMappingReloadingStrategy extends SimpleReloadingStrategy {
 
-    public NoMappingReloadingStrategy(BaseWeaver weaver) {
+    public NoMappingReloadingStrategy(ScriptingWeaver weaver) {
         super(weaver);
     }
 
+
+
     @Override
     protected void mapProperties(Object target, Object src) {
         return;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java Wed Dec 16 09:39:34 2009
@@ -20,6 +20,7 @@
 
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
 import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -41,15 +42,17 @@
 
 public class SimpleReloadingStrategy implements ReloadingStrategy {
 
-    BaseWeaver _weaver;
+    protected ScriptingWeaver _weaver;
 
-    public SimpleReloadingStrategy(BaseWeaver weaver) {
+    public SimpleReloadingStrategy(ScriptingWeaver weaver) {
         _weaver = weaver;
     }
 
     public SimpleReloadingStrategy() {
+
     }
 
+
     /**
      * <p>
      * the central callback for our strategy here
@@ -64,8 +67,8 @@
     public Object reload(Object scriptingInstance, int artefactType) {
 
         //reload the class to get new static content if needed
-        if(scriptingInstance == null || _weaver == null) {
-            getLog().debug("debugpoint found");    
+        if (scriptingInstance == null || _weaver == null) {
+            getLog().debug("debugpoint found");
         }
         Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
         if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
@@ -119,4 +122,13 @@
         return LogFactory.getLog(this.getClass());
     }
 
+
+    public ScriptingWeaver getWeaver() {
+        return _weaver;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void setWeaver(ScriptingWeaver weaver) {
+        _weaver =  weaver;
+    }
+
 }

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/faces-config.xml?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/faces-config.xml Wed Dec 16 09:39:34 2009
@@ -82,19 +82,19 @@
 
     <!-- navigation rules for helloWorld.jsp -->
     <navigation-rule>
-        <from-view-id>/helloWorld.jsp</from-view-id>
+        <from-view-id>/helloWorld.*</from-view-id>
         <navigation-case>
             <from-outcome>success</from-outcome>
-            <to-view-id>/page2.jsp</to-view-id>
+            <to-view-id>/page2.jsf</to-view-id>
         </navigation-case>
     </navigation-rule>
 
     <!-- navigation rules for page2.jsp -->
     <navigation-rule>
-        <from-view-id>/page2.jsp</from-view-id>
+        <from-view-id>/page2.*</from-view-id>
         <navigation-case>
             <from-outcome>back</from-outcome>
-            <to-view-id>/helloWorld.jsp</to-view-id>
+            <to-view-id>/helloWorld.jsf</to-view-id>
         </navigation-case>
     </navigation-rule>
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestBean.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestBean.groovy?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestBean.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestBean.groovy Wed Dec 16 09:39:34 2009
@@ -38,8 +38,10 @@
 
 
     public String doit() {
-        print "doit called"
-        return null
+        System.out.println("doit called")
+
+        return "success"
+        
     }
 
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestNavigationHandler.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestNavigationHandler.groovy?rev=891168&r1=891167&r2=891168&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestNavigationHandler.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestNavigationHandler.groovy Wed Dec 16 09:39:34 2009
@@ -32,17 +32,20 @@
 
     }
 
+    
     public TestNavigationHandler(NavigationHandler delegate) {
         super();
         _delegate = delegate
+        
     }
 
 
 
     public void handleNavigation(FacesContext facesContext, String s, String s1) {
         // if(delegate != null)
+        System.out.println("handle navigation")
+      
         _delegate.handleNavigation(facesContext, s, s1)
-        print " handle navigation"
     }
 
 }
\ No newline at end of file