You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2009/04/09 19:47:06 UTC

svn commit: r763746 - /portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java

Author: woonsan
Date: Thu Apr  9 17:47:06 2009
New Revision: 763746

URL: http://svn.apache.org/viewvc?rev=763746&view=rev
Log:
JS2-482: Fixes the page node url generation.
Each path component in url should be encoded by ISO-8859-1.

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java?rev=763746&r1=763745&r2=763746&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/page/document/proxy/NodeProxy.java Thu Apr  9 17:47:06 2009
@@ -16,12 +16,14 @@
  */
 package org.apache.jetspeed.page.document.proxy;
 
+import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
+import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Collections;
 
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.folder.MenuDefinition;
@@ -59,8 +61,18 @@
      * path - view path
      */
     private String path;
+    
+    /**
+     * url - view url
+     */
+    private String url;
 
     /**
+     * urlEncoding - the name of a character encoding to be used in encoding path component name.
+     */
+    private String urlEncoding = "ISO-8859-1";;
+    
+    /**
      * hidden - hidden status of this or parent node
      */
     private boolean hidden;
@@ -103,23 +115,41 @@
     {
         super(view, locatorName);
         this.parent = parent;
+        
         if ((parent != null) && (name != null))
         {
             NodeProxy parentProxy = getNodeProxy(parent);
+            
             String parentPath = parentProxy.getPath();
+            String parentUrl = parentProxy.getUrl();
+            String urlEncodedName = name;
+            
+            try
+            {
+                urlEncodedName = URLEncoder.encode(name, urlEncoding);
+            }
+            catch (UnsupportedEncodingException e)
+            {
+                // do nothing. just use the plain name instead.
+            }
+
             if (parentPath.endsWith(Folder.PATH_SEPARATOR))
             {
                 this.path = parentPath + name;
+                this.url = parentUrl + urlEncodedName;
             }
             else
             {
                 this.path = parentPath + Folder.PATH_SEPARATOR + name;
+                this.url = parentUrl + Folder.PATH_SEPARATOR + urlEncodedName;
             }
+            
             this.hidden = (hidden || parentProxy.isHidden());
         }
         else
         {
             this.path = Folder.PATH_SEPARATOR;
+            this.url = Folder.PATH_SEPARATOR;
             this.hidden = hidden;
         }
     }
@@ -161,7 +191,7 @@
      */
     public String getUrl()
     {
-        return path;
+        return url;
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org