You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2012/05/18 10:20:49 UTC

svn commit: r1340026 - /incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java

Author: kevin
Date: Fri May 18 08:20:49 2012
New Revision: 1340026

URL: http://svn.apache.org/viewvc?rev=1340026&view=rev
Log:
ISIS-226: Exposed "getWebController" so that users can provide their own controller and install their own HTML UI components.

Modified:
    incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java?rev=1340026&r1=1340025&r2=1340026&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/ControllerServlet.java Fri May 18 08:20:49 2012
@@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRes
 import org.apache.log4j.Logger;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.viewer.html.PathBuilder;
 import org.apache.isis.viewer.html.component.Page;
 import org.apache.isis.viewer.html.context.Context;
 import org.apache.isis.viewer.html.request.Request;
@@ -51,32 +52,44 @@ public class ControllerServlet extends A
     @Override
     public void init(final ServletConfig servletConfig) throws ServletException {
         super.init(servletConfig);
-        encoding = getConfiguration().getString(HtmlServletConstants.ENCODING_KEY, HtmlServletConstants.ENCODING_DEFAULT);
+        encoding =
+            getConfiguration().getString(HtmlServletConstants.ENCODING_KEY, HtmlServletConstants.ENCODING_DEFAULT);
+
+        controller = getWebController(getPathBuilder());
 
-        controller = new WebController(getPathBuilder());
-        
         final boolean debugEnabled = getConfiguration().getBoolean(HtmlServletConstants.DEBUG_KEY);
         controller.setDebug(debugEnabled);
-        
+
         controller.init();
     }
 
+    // Don't remove this - It allows other implementations of HtmlViewer to replace the WebController
+    protected WebController getWebController(PathBuilder pathBuilder) {
+        if (controller == null) {
+            controller = new WebController(getPathBuilder());
+        }
+        return controller;
+    }
+
     // //////////////////////////////////////////////////////////////////
     // doGet, doPost
     // //////////////////////////////////////////////////////////////////
 
     @Override
-    protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
+    protected void doPost(final HttpServletRequest request, final HttpServletResponse response)
+        throws ServletException, IOException {
         request.setCharacterEncoding(encoding);
         processRequest(request, response);
     }
 
     @Override
-    protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
+    protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException,
+        IOException {
         processRequest(request, response);
     }
 
-    private void processRequest(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
+    private void processRequest(final HttpServletRequest request, final HttpServletResponse response)
+        throws ServletException, IOException {
         LOG.info("request: " + request.getServletPath() + "?" + request.getQueryString());
 
         final Request req = new ServletRequest(request);
@@ -106,7 +119,8 @@ public class ControllerServlet extends A
         return context;
     }
 
-    private void processRequest(final HttpServletRequest request, final HttpServletResponse response, final Request req, final Context context) throws IOException, ServletException {
+    private void processRequest(final HttpServletRequest request, final HttpServletResponse response,
+        final Request req, final Context context) throws IOException, ServletException {
         response.setContentType("text/html");
 
         // no need to check if logged in; the IsisSessionFilter would