[cvs] expresso commit by mtraum: fix bugs with cactus integration
JCorporate Ltd
jcorp at jcorp2.servlets.net
Wed Oct 20 22:07:17 PDT 2004
Log Message:
-----------
fix bugs with cactus integration
Modified Files:
--------------
expresso/expresso-web/expresso/doc:
ChangeLog.xml
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test:
ActionTestServlet.java
ControllerTestCase.java
Revision Data
-------------
Index: ChangeLog.xml
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/expresso/doc/ChangeLog.xml,v
retrieving revision 1.259
retrieving revision 1.260
diff -Lexpresso-web/expresso/doc/ChangeLog.xml -Lexpresso-web/expresso/doc/ChangeLog.xml -u -r1.259 -r1.260
--- expresso-web/expresso/doc/ChangeLog.xml
+++ expresso-web/expresso/doc/ChangeLog.xml
@@ -5,6 +5,13 @@
<project name="Expresso">
<version name="5.6" releaseDate="Not Yet Released">
<comment>Continued Updates</comment>
+ <package-changes>
+ <package-update package-name="Cactus" version-number="1.6.1" />
+ </package-changes>
+ <bug-fix title="Cactus integration bug fixes">
+ <explanation>Since struts 1.1 integration, cactus integration has not functionioned. This has been fixed.</explanation>
+ <contributor>Mike Traum</contributor>
+ </bug-fix>
<misc-change title="Removed @deprecated Functions">
<explanation>Continued removal of depreciated classes and methods that were @deprecated since 5.3</explanation>
<contributor>Mike Traum</contributor>
Index: ActionTestServlet.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ActionTestServlet.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ActionTestServlet.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ActionTestServlet.java -u -r1.8 -r1.9
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ActionTestServlet.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ActionTestServlet.java
@@ -82,6 +82,7 @@
* for testing purposes.
* @author Michael Rimov
* @version $Revision$ $Date$
+ * @deprecated since v5.6, no longer compatible with Struts 1.1
*/
public class ActionTestServlet
extends ExpressoActionServlet {
Index: ControllerTestCase.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ControllerTestCase.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ControllerTestCase.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ControllerTestCase.java -u -r1.14 -r1.15
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ControllerTestCase.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/test/ControllerTestCase.java
@@ -68,21 +68,25 @@
import java.net.HttpURLConnection;
import javax.servlet.ServletException;
+import javax.servlet.http.HttpSession;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import org.apache.cactus.WebResponse;
import org.apache.log4j.Category;
import org.apache.log4j.Logger;
-import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionServlet;
+import org.apache.struts.config.ActionConfig;
+import org.apache.struts.util.RequestUtils;
import org.apache.xpath.XPathAPI;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import com.jcorporate.expresso.core.ExpressoConstants;
+import com.jcorporate.expresso.core.controller.Controller;
import com.jcorporate.expresso.core.controller.ControllerException;
import com.jcorporate.expresso.core.controller.ControllerResponse;
import com.jcorporate.expresso.core.db.DBConnectionPool;
@@ -264,16 +268,22 @@
throws ServletException, IOException,
Exception {
try {
- ActionTestServlet servlet = ActionTestServlet.getInstance(config);
+ ActionServlet servlet = new ActionServlet();
+ servlet.init(config);
- ActionMapping mapping = ConfigManager.getMapping(theClass,
- theState);
- assertTrue("Got a null action mapping. Possibly incorrect struts-config.xml setup?",
- mapping != null);
-
- ActionForm form = servlet.processActionForm(mapping, this.request);
-
- Action controller = null;
+ ActionConfig actionConfig = ConfigManager.getActionConfig(theClass, theState);
+ ActionForm form = RequestUtils.createActionForm(request, (ActionMapping) actionConfig, actionConfig.getModuleConfig(), servlet);
+ if (form != null) {
+ if ("request".equals(actionConfig.getScope())) {
+ request.setAttribute(actionConfig.getAttribute(), form);
+ }
+ else {
+ HttpSession session = request.getSession();
+ session.setAttribute(actionConfig.getAttribute(), form);
+ }
+ }
+
+ Controller controller = null;
try {
controller = ConfigManager.getControllerFactory().getController(
@@ -288,7 +298,7 @@
controller.getClass().getName());
}
- ActionForward forward = controller.perform(mapping, form,
+ ActionForward forward = controller.execute((ActionMapping) actionConfig, form,
request, response);
//null forward may be desired if a custom response had been set
More information about the cvs
mailing list