Author: fmeschbe
Date: Sun Dec 14 17:10:08 2008
New Revision: 726592
URL: http://svn.apache.org/viewvc?rev=726592&view=rev
Log:
SLING-777 Do not add scheme and host:port if they are the same as for
the original request.
Modified:
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2.java
incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2Test.java
Modified:
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2.java
URL:
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2.java?rev=726592&r1=726591&r2=726592&view=diff
==============================================================================
---
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2.java
(original)
+++
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2.java
Sun Dec 14 17:10:08 2008
@@ -205,28 +205,36 @@
}
if (mappedPathIsUrl) {
+
+ // cut off scheme and host, if the same as requested
+ if (request != null) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(request.getScheme()).append("://");
+ sb.append(request.getServerName());
+ if (request.getServerPort() > 0) {
+ sb.append(':').append(request.getServerPort());
+ }
+ sb.append("/");
+
+ if (mappedPath.startsWith(sb.toString())) {
+ mappedPath = mappedPath.substring(sb.length()-1);
+ }
+ }
+
// TODO: probably need to mangle name spaces
return mappedPath;
}
-
- StringBuilder sb = new StringBuilder();
- if (request != null) {
- sb.append(request.getScheme()).append("://");
- sb.append(request.getServerName());
- if (request.getServerPort() > 0) {
- sb.append(':').append(request.getServerPort());
- }
- if (request.getContextPath() != null
- && request.getContextPath().length() > 0) {
- sb.append(request.getContextPath());
- }
+ // mangle the namespaces
+ mappedPath = mangleNamespaces(mappedPath);
+
+ // prepend servlet context path if we have a request
+ if (request != null && request.getContextPath() != null
+ && request.getContextPath().length() > 0) {
+ mappedPath = request.getContextPath().concat(mappedPath);
}
- // mangle the namespaces
- sb.append(mangleNamespaces(mappedPath));
-
- return sb.toString();
+ return mappedPath;
}
// ---------- search path for relative resoures
Modified:
incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2Test.java
URL:
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2Test.java?rev=726592&r1=726591&r2=726592&view=diff
==============================================================================
---
incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2Test.java
(original)
+++
incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver2Test.java
Sun Dec 14 17:10:08 2008
@@ -394,11 +394,15 @@
assertNotNull(res1);
assertEquals("/content/virtual/playground/en.html", res1.getPath());
- final String mapped0 = resResolver.map(request, res0.getPath());
- assertEquals("http://virtual.host.com/playground.html", mapped0);
-
- final String mapped1 = resResolver.map(request, res1.getPath());
- assertEquals("http://virtual.host.com/playground/en.html", mapped1);
+ final String mapped00 = resResolver.map(res0.getPath());
+ assertEquals("http://virtual.host.com/playground.html", mapped00);
+ final String mapped01 = resResolver.map(request, res0.getPath());
+ assertEquals("/playground.html", mapped01);
+
+ final String mapped10 = resResolver.map(res1.getPath());
+ assertEquals("http://virtual.host.com/playground/en.html", mapped10);
+ final String mapped11 = resResolver.map(request, res1.getPath());
+ assertEquals("/playground/en.html", mapped11);
}
public void testResolveVirtualHostHttp8080() throws Exception {
@@ -436,11 +440,15 @@
assertNotNull(res1);
assertEquals("/content/virtual/playground/en.html", res1.getPath());
- final String mapped0 = resResolver.map(request, res0.getPath());
- assertEquals("http://virtual.host.com:8080/playground.html", mapped0);
-
- final String mapped1 = resResolver.map(request, res1.getPath());
- assertEquals("http://virtual.host.com:8080/playground/en.html",
mapped1);
+ final String mapped00 = resResolver.map(res0.getPath());
+ assertEquals("http://virtual.host.com:8080/playground.html", mapped00);
+ final String mapped01 = resResolver.map(request, res0.getPath());
+ assertEquals("/playground.html", mapped01);
+
+ final String mapped10 = resResolver.map(res1.getPath());
+ assertEquals("http://virtual.host.com:8080/playground/en.html",
mapped10);
+ final String mapped11 = resResolver.map(request, res1.getPath());
+ assertEquals("/playground/en.html", mapped11);
}
public void testResolveVirtualHostHttp8080Root() throws Exception {
@@ -478,11 +486,15 @@
assertNotNull(res1);
assertEquals("/playground/en.html", res1.getPath());
- final String mapped0 = resResolver.map(request, res0.getPath());
- assertEquals("http://virtual.host.com:8080/playground.html", mapped0);
-
- final String mapped1 = resResolver.map(request, res1.getPath());
- assertEquals("http://virtual.host.com:8080/playground/en.html",
mapped1);
+ final String mapped00 = resResolver.map(res0.getPath());
+ assertEquals("http://virtual.host.com:8080/playground.html", mapped00);
+ final String mapped01 = resResolver.map(request, res0.getPath());
+ assertEquals("/playground.html", mapped01);
+
+ final String mapped10 = resResolver.map(res1.getPath());
+ assertEquals("http://virtual.host.com:8080/playground/en.html",
mapped10);
+ final String mapped11 = resResolver.map(request, res1.getPath());
+ assertEquals("/playground/en.html", mapped11);
}
public void testResolveVirtualHostHttps443() throws Exception {
@@ -520,11 +532,15 @@
assertNotNull(res1);
assertEquals("/content/virtual/playground/en.html", res1.getPath());
- final String mapped0 = resResolver.map(request, res0.getPath());
- assertEquals("https://virtual.host.com/playground.html", mapped0);
-
- final String mapped1 = resResolver.map(request, res1.getPath());
- assertEquals("https://virtual.host.com/playground/en.html", mapped1);
+ final String mapped00 = resResolver.map(res0.getPath());
+ assertEquals("https://virtual.host.com/playground.html", mapped00);
+ final String mapped01 = resResolver.map(request, res0.getPath());
+ assertEquals("/playground.html", mapped01);
+
+ final String mapped10 = resResolver.map(res1.getPath());
+ assertEquals("https://virtual.host.com/playground/en.html", mapped10);
+ final String mapped11 = resResolver.map(request, res1.getPath());
+ assertEquals("/playground/en.html", mapped11);
}
public void testResolveVirtualHostHttps4443() throws Exception {
@@ -562,12 +578,15 @@
assertNotNull(res1);
assertEquals("/content/virtual/playground/en.html", res1.getPath());
- final String mapped0 = resResolver.map(request, res0.getPath());
- assertEquals("https://virtual.host.com:4443/playground.html", mapped0);
-
- final String mapped1 = resResolver.map(request, res1.getPath());
- assertEquals("https://virtual.host.com:4443/playground/en.html",
- mapped1);
+ final String mapped00 = resResolver.map(res0.getPath());
+ assertEquals("https://virtual.host.com:4443/playground.html",
mapped00);
+ final String mapped01 = resResolver.map(request, res0.getPath());
+ assertEquals("/playground.html", mapped01);
+
+ final String mapped10 = resResolver.map(res1.getPath());
+ assertEquals("https://virtual.host.com:4443/playground/en.html",
mapped10);
+ final String mapped11 = resResolver.map(request, res1.getPath());
+ assertEquals("/playground/en.html", mapped11);
}
public void testResolveResourceAlias() throws Exception {