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