Author: gvanmatre
Date: Fri Jul 27 11:48:18 2007
New Revision: 560350
URL: http://svn.apache.org/viewvc?view=revrev=560350
Log:
Shale view library was not working with ajax4jsf. Request parameters were
being unnecessarily removed in order to ensure the destroy callback was invoked
on ViewControllers annotated using the tiger library. This logic was
repositioned so that only ViewControllers are removed from the request map
(SHALE-409).
Modified:
shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2.java
shale/framework/trunk/shale-tiger/src/test/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2TestCase.java
shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewControllerCallbacks.java
shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewPhaseListener.java
shale/framework/trunk/shale-view/src/test/java/org/apache/shale/view/faces/ViewControllerCallbacksTestCase.java
Modified:
shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2.java
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2.java?view=diffrev=560350r1=560349r2=560350
==
---
shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2.java
(original)
+++
shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2.java
Fri Jul 27 11:48:18 2007
@@ -21,7 +21,10 @@
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+
import javax.faces.context.FacesContext;
+
+import org.apache.shale.tiger.view.Destroy;
import org.apache.shale.tiger.view.Preprocess;
import org.apache.shale.tiger.view.Prerender;
import org.apache.shale.tiger.view.View;
@@ -116,6 +119,24 @@
}
+/**
+ * Checks the codeinstance/code to determine if it is a
+ * shale codeViewController/code, codeAbstractRequestBean/code,
+ * or has the codeDestory/code annotation.
+ *
+ * @param instance Bean instance on which to perform this callback
+ * @return codetrue/code if the instance implements has a
codedestroy/code callback
+ */
+
+public boolean isViewController(Object instance) {
+
+if (super.isViewController(instance)) {
+return true;
+}
+
+return (method(instance, Destroy.class) != null);
+}
+
// - Private
Methods
@@ -123,7 +144,7 @@
* pThe set of method annotations for callbacks of interest./p
*/
private static final Class[] annotations =
-{ Preprocess.class, Prerender.class };
+{ Preprocess.class, Prerender.class, Destroy.class };
Modified:
shale/framework/trunk/shale-tiger/src/test/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2TestCase.java
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-tiger/src/test/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2TestCase.java?view=diffrev=560350r1=560349r2=560350
==
---
shale/framework/trunk/shale-tiger/src/test/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2TestCase.java
(original)
+++
shale/framework/trunk/shale-tiger/src/test/java/org/apache/shale/tiger/view/faces/ViewControllerCallbacks2TestCase.java
Fri Jul 27 11:48:18 2007
@@ -90,6 +90,7 @@
assertEquals(preprocess/prerender/,
tvc.log());
+assertTrue(callbacks.isViewController(tvc));
}
Modified:
shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewControllerCallbacks.java
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewControllerCallbacks.java?view=diffrev=560350r1=560349r2=560350
==
---
shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewControllerCallbacks.java
(original)
+++
shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewControllerCallbacks.java
Fri Jul 27 11:48:18 2007
@@ -18,6 +18,8 @@
package org.apache.shale.view.faces;
import javax.faces.context.FacesContext;
+
+import org.apache.shale.view.AbstractRequestBean;
import org.apache.shale.view.Constants;
import org.apache.shale.view.ExceptionHandler;
import org.apache.shale.view.ViewController;
@@ -81,6 +83,19 @@
}
+/**
+ * Checks the codeinstance/code to determine if it is a
+ * shale codeViewController/code or codeAbstractRequestBean/code.
+ *
+ * @param instance Bean instance on which to perform this