[Yanel-commits] rev 60640 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Mon Sep 12 13:49:35 CEST 2011


Author: michi
Date: 2011-09-12 13:49:34 +0200 (Mon, 12 Sep 2011)
New Revision: 60640

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
get view ID centralized

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-12 11:48:03 UTC (rev 60639)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-12 11:49:34 UTC (rev 60640)
@@ -513,7 +513,7 @@
                     viewElement.setAttributeNS(NAMESPACE, "version", "1");
                     appendViewDescriptors(doc, viewElement, ((ViewableV1) res).getViewDescriptors());
 
-                    String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
+                    String viewId = getViewID(request);
                     try {
                         view = ((ViewableV1) res).getView(request, viewId);
                     } catch (org.wyona.yarep.core.NoSuchNodeException e) {
@@ -548,8 +548,7 @@
                     sizeElement.appendChild(doc.createTextNode(String.valueOf(size)));
 
 
-
-                    String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
+                    String viewId = getViewID(request);
                     try {
                         String revisionName = request.getParameter(YANEL_RESOURCE_REVISION);
                         // NOTE: Check also if usecase is not roll-back, because roll-back is also using the yanel.resource.revision
@@ -1865,12 +1864,8 @@
      * @return true if generation of response was successful or return false otherwise
      */
     private boolean generateResponseFromResourceView(HttpServletRequest request, HttpServletResponse response, Resource resource) throws Exception {
-        String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
+        String viewId = getViewID(request);
 
-        if (request.getParameter("yanel.format") != null) { // backwards compatible
-            viewId = request.getParameter("yanel.format");
-            log.warn("For backwards compatibility reasons also consider parameter 'yanel.format', but which is deprecated. Please use '" + VIEW_ID_PARAM_NAME + "' instead.");
-        }
         View view = ((ViewableV2) resource).getView(viewId);
         if (view != null) {
             log.warn("TODO: Tracking not implemented yet: " + resource.getPath());
@@ -2338,7 +2333,7 @@
      */
     private void doAccessPolicyRequest(HttpServletRequest request, HttpServletResponse response, int version)  throws ServletException, IOException {
         try {
-            String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
+            String viewId = getViewID(request);
             
             Realm realm = map.getRealm(request.getServletPath());
 
@@ -2903,4 +2898,30 @@
             doc.getDocumentElement().appendChild(noTrackInfoElem);
         }
     }
+
+    /**
+     * Determine requested view ID
+     */
+    private String getViewID(HttpServletRequest request) {
+        String viewId = null;
+
+        String viewIdFromSession = (String) request.getSession(true).getAttribute(VIEW_ID_PARAM_NAME);
+        if (viewIdFromSession != null) {
+            log.warn("It seems like the view id is set inside session: " + viewIdFromSession);
+            viewId = viewIdFromSession;
+        }
+
+        if (request.getParameter(VIEW_ID_PARAM_NAME) != null) {
+            viewId = request.getParameter(VIEW_ID_PARAM_NAME);
+        }
+
+        if (request.getParameter("yanel.format") != null) { // backwards compatible
+            viewId = request.getParameter("yanel.format");
+            log.warn("For backwards compatibility reasons also consider parameter 'yanel.format', but which is deprecated. Please use '" + VIEW_ID_PARAM_NAME + "' instead.");
+        }
+
+        log.warn("DEBUG: Try to get view id from query string or session attribute: " + viewId);
+
+        return viewId;
+    }
 }



More information about the Yanel-commits mailing list