You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mf...@apache.org on 2011/02/18 01:29:56 UTC
svn commit: r1071846 [4/4] - in
/myfaces/portlet-bridge/core/branches/2.0.0-branch: ./ api/
api/src/main/resources/META-INF/ assembly/
assembly/src/main/resources/META-INF/ examples/ examples/assembly/
examples/blank/ examples/carstore/ examples/facele...
Modified: myfaces/portlet-bridge/core/branches/2.0.0-branch/impl/src/main/java/org/apache/myfaces/portlet/faces/util/URLUtils.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/branches/2.0.0-branch/impl/src/main/java/org/apache/myfaces/portlet/faces/util/URLUtils.java?rev=1071846&r1=1071845&r2=1071846&view=diff
==============================================================================
--- myfaces/portlet-bridge/core/branches/2.0.0-branch/impl/src/main/java/org/apache/myfaces/portlet/faces/util/URLUtils.java (original)
+++ myfaces/portlet-bridge/core/branches/2.0.0-branch/impl/src/main/java/org/apache/myfaces/portlet/faces/util/URLUtils.java Fri Feb 18 00:29:55 2011
@@ -1,146 +1,215 @@
-/* Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.myfaces.portlet.faces.util;
-
-public class URLUtils
-{
-
- /**
- * Borrowed from package oracle.adfinternal.view.faces.share.url.EncoderUtils
- */
- public static String appendURLArguments(StringBuilder buffer, String baseURL,
- String[] keysAndValues)
- {
-
- // Bug 1814825: the anchor has to stay on the end.
- int anchorIndex = baseURL.indexOf('#');
-
- if (anchorIndex >= 0)
- {
- buffer.append(baseURL.substring(0, anchorIndex));
- }
- else
- {
- buffer.append(baseURL);
- }
-
- boolean queryAppended = baseURL.indexOf('?') >= 0;
-
- for (int i = 0; i < keysAndValues.length; i += 2)
- {
- String value = keysAndValues[i + 1];
- if (value != null)
- {
- // only append '?' at start if the URL doesn't already contain
- // arguments
- if (!queryAppended)
- {
- queryAppended = true;
- buffer.append('?');
- }
- else
- {
- buffer.append('&');
- }
-
- buffer.append(keysAndValues[i]);
- buffer.append('=');
- buffer.append(value);
- }
- }
-
- String beforeEncode = buffer.toString();
- return beforeEncode;
- }
-
- /**
- * Borrowed from package oracle.adfinternal.view.faces.share.url.EncoderUtils
- */
- public static String appendURLArguments(String baseURL, String[] keysAndValues)
- {
- // buffer length = base + separators + keys + values
- int bufferLength = baseURL.length() + keysAndValues.length;
- for (int i = 0; i < keysAndValues.length; i += 2)
- {
- String value = keysAndValues[i + 1];
- if (value != null)
- {
- bufferLength += keysAndValues[i].length() + value.length();
- }
- }
-
- StringBuilder buffer = new StringBuilder(bufferLength);
-
- return appendURLArguments(buffer, baseURL, keysAndValues);
- }
-
- public static String convertFromRelative(String currentPath, String relativeLoc)
- throws IllegalArgumentException
- {
- // determine if and how many levels we must walk up the currentPath
- int levels = 0;
- int i = 0, length = relativeLoc.length();
- while (i + 1 < length)
- {
- if (relativeLoc.charAt(i) != '.')
- {
- break;
- }
- else if (relativeLoc.charAt(i) == '.' && relativeLoc.charAt(i + 1) == '/')
- {
- // no new level but prune the ./
- i += 2;
- }
- else if (i + 2 < length && relativeLoc.charAt(i) == '.' && relativeLoc.charAt(i + 1) == '.'
- && relativeLoc.charAt(i + 2) == '/')
- {
- levels += 1;
- i += 3;
- }
- }
-
- StringBuilder sb = new StringBuilder(currentPath);
- if (currentPath.endsWith("/"))
- {
- sb = sb.deleteCharAt(currentPath.length() - 1);
- }
- for (int j = 0; j < levels; j++)
- {
- int loc = sb.lastIndexOf("/");
- if (loc < 0)
- {
- throw new IllegalArgumentException("Location: " + relativeLoc
- + "Can't be made relative to: " + currentPath);
- }
- sb = sb.delete(loc, sb.length());
- }
-
- // now sb should contain root path without trailing / so add one
- sb = sb.append("/");
-
- // now add the portion of the relativeLoc that doesn't contain
- // the relative references
- sb = sb.append(relativeLoc.substring(i));
-
- return sb.toString();
-
- }
-
-}
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.util;
+
+import java.util.List;
+import java.util.Map;
+
+public class URLUtils
+{
+
+ /**
+ * Borrowed from package oracle.adfinternal.view.faces.share.url.EncoderUtils
+ */
+ public static String appendURLArguments(StringBuilder buffer, String baseURL,
+ String[] keysAndValues)
+ {
+
+ // Bug 1814825: the anchor has to stay on the end.
+ int anchorIndex = baseURL.indexOf('#');
+
+ if (anchorIndex >= 0)
+ {
+ buffer.append(baseURL.substring(0, anchorIndex));
+ }
+ else
+ {
+ buffer.append(baseURL);
+ }
+
+ boolean queryAppended = baseURL.indexOf('?') >= 0;
+
+ for (int i = 0; i < keysAndValues.length; i += 2)
+ {
+ String value = keysAndValues[i + 1];
+ if (value != null)
+ {
+ // only append '?' at start if the URL doesn't already contain
+ // arguments
+ if (!queryAppended)
+ {
+ queryAppended = true;
+ buffer.append('?');
+ }
+ else
+ {
+ buffer.append('&');
+ }
+
+ buffer.append(keysAndValues[i]);
+ buffer.append('=');
+ buffer.append(value);
+ }
+ }
+
+ String beforeEncode = buffer.toString();
+ return beforeEncode;
+ }
+
+ /**
+ * Borrowed from package oracle.adfinternal.view.faces.share.url.EncoderUtils
+ */
+ public static String appendURLArguments(String baseURL, String[] keysAndValues)
+ {
+ // buffer length = base + separators + keys + values
+ int bufferLength = baseURL.length() + keysAndValues.length;
+ for (int i = 0; i < keysAndValues.length; i += 2)
+ {
+ String value = keysAndValues[i + 1];
+ if (value != null)
+ {
+ bufferLength += keysAndValues[i].length() + value.length();
+ }
+ }
+
+ StringBuilder buffer = new StringBuilder(bufferLength);
+
+ return appendURLArguments(buffer, baseURL, keysAndValues);
+ }
+
+
+ public static String appendURLArguments(StringBuilder buffer, String baseURL,
+ Map<String, List<String>> keysAndValues)
+ {
+
+ // Bug 1814825: the anchor has to stay on the end.
+ int anchorIndex = baseURL.indexOf('#');
+
+ if (anchorIndex >= 0)
+ {
+ buffer.append(baseURL.substring(0, anchorIndex));
+ }
+ else
+ {
+ buffer.append(baseURL);
+ }
+
+ boolean queryAppended = baseURL.indexOf('?') >= 0;
+
+ for (Map.Entry<String, List<String>> entry : keysAndValues.entrySet())
+ {
+ String key = entry.getKey();
+ List<String> values = entry.getValue();
+
+ if (values == null) continue;
+
+ for (String value : values)
+ {
+ if (value != null)
+ {
+ // only append '?' at start if the URL doesn't already contain
+ // arguments
+ if (!queryAppended)
+ {
+ queryAppended = true;
+ buffer.append('?');
+ }
+ else
+ {
+ buffer.append('&');
+ }
+
+ buffer.append(key);
+ buffer.append('=');
+ buffer.append(value);
+ }
+ }
+ }
+
+
+ String beforeEncode = buffer.toString();
+ return beforeEncode;
+ }
+
+ public static String appendURLArguments(String baseURL, Map<String, List<String>> keysAndValues)
+ {
+ if (keysAndValues != null)
+ {
+ return appendURLArguments(new StringBuilder(baseURL.length()), baseURL, keysAndValues);
+ }
+ else
+ {
+ return baseURL;
+ }
+ }
+
+ public static String convertFromRelative(String currentPath, String relativeLoc)
+ throws IllegalArgumentException
+ {
+ // determine if and how many levels we must walk up the currentPath
+ int levels = 0;
+ int i = 0, length = relativeLoc.length();
+ while (i + 1 < length)
+ {
+ if (relativeLoc.charAt(i) != '.')
+ {
+ break;
+ }
+ else if (relativeLoc.charAt(i) == '.' && relativeLoc.charAt(i + 1) == '/')
+ {
+ // no new level but prune the ./
+ i += 2;
+ }
+ else if (i + 2 < length && relativeLoc.charAt(i) == '.' && relativeLoc.charAt(i + 1) == '.'
+ && relativeLoc.charAt(i + 2) == '/')
+ {
+ levels += 1;
+ i += 3;
+ }
+ }
+
+ StringBuilder sb = new StringBuilder(currentPath);
+ if (currentPath.endsWith("/"))
+ {
+ sb = sb.deleteCharAt(currentPath.length() - 1);
+ }
+ for (int j = 0; j < levels; j++)
+ {
+ int loc = sb.lastIndexOf("/");
+ if (loc < 0)
+ {
+ throw new IllegalArgumentException("Location: " + relativeLoc
+ + "Can't be made relative to: " + currentPath);
+ }
+ sb = sb.delete(loc, sb.length());
+ }
+
+ // now sb should contain root path without trailing / so add one
+ sb = sb.append("/");
+
+ // now add the portion of the relativeLoc that doesn't contain
+ // the relative references
+ sb = sb.append(relativeLoc.substring(i));
+
+ return sb.toString();
+
+ }
+
+}
Propchange: myfaces/portlet-bridge/core/branches/2.0.0-branch/impl/src/main/resources/META-INF/NOTICE
('svn:mergeinfo' removed)
Modified: myfaces/portlet-bridge/core/branches/2.0.0-branch/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/branches/2.0.0-branch/pom.xml?rev=1071846&r1=1071845&r2=1071846&view=diff
==============================================================================
--- myfaces/portlet-bridge/core/branches/2.0.0-branch/pom.xml (original)
+++ myfaces/portlet-bridge/core/branches/2.0.0-branch/pom.xml Fri Feb 18 00:29:55 2011
@@ -24,7 +24,7 @@
<artifactId>portlet-bridge</artifactId>
<packaging>pom</packaging>
<name>MyFaces Portlet Bridge</name>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.0.1-PATCH</version>
<inceptionYear>2007</inceptionYear>
<description>
Portlet Bridge for JavaServer Faces is a subproject of Apache MyFaces which provides an