[Yanel-commits] rev 37246 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet
simon at wyona.com
simon at wyona.com
Thu Jun 26 16:48:25 CEST 2008
Author: simon
Date: 2008-06-26 16:48:24 +0200 (Thu, 26 Jun 2008)
New Revision: 37246
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
added new way of geting resource-typeHtdocs. the new format is reserved-prefix/resource-types/http:%2f%2fwww.name%2fspace%3a%3aresourcename/htdocPath...
the old one (reserved-prefix/resource-types/http://www.name/space::resourcename/htdocPath) still works but is deprecated.
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 2008-06-26 14:21:57 UTC (rev 37245)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2008-06-26 14:48:24 UTC (rev 37246)
@@ -1885,11 +1885,22 @@
throw new ServletException(e);
}
} else if (path.indexOf("resource-types") >=0 ) {
+ String resourceTypeUniversalNameSplitter;
+ String resourceTypeUniversalNameSlash;
+ if (path.indexOf("::") >=0) {
+ resourceTypeUniversalNameSplitter = "::";
+ resourceTypeUniversalNameSlash = "/";
+ log.warn("The use of resource-types/resourec/type/namespace::resourcename is deprecated. use resource-types/resourec%2ftype%2fnamespace%3a%3aresourcename instead");
+ } else {
+ resourceTypeUniversalNameSplitter = "%3a%3a";
+ resourceTypeUniversalNameSlash = "%2f";
+ }
+
String[] pathPart1 = path.split("/resource-types/");
- String[] pathPart2 = pathPart1[1].split("::");
+ String[] pathPart2 = pathPart1[1].split(resourceTypeUniversalNameSplitter);
String[] pathPart3 = pathPart2[1].split("/");
String name = pathPart3[0];
- String namespace = pathPart2[0].replaceAll("http:/", "http://");
+ String namespace = pathPart2[0].replaceAll(resourceTypeUniversalNameSlash, "/").replaceAll("http:/", "http://");
try {
java.util.Map properties = new HashMap();
Realm realm = yanel.getMap().getRealm(request.getServletPath());
@@ -1897,9 +1908,9 @@
Resource resourceOfPrefix = yanel.getResourceManager().getResource(getEnvironment(request, response), realm, path, rc);
String htdocsPath;
if (pathPart2[1].indexOf("/" + reservedPrefix + "/") >= 0) {
- htdocsPath = "rtyanelhtdocs:" + path.split("::" + name)[1].split("/" + reservedPrefix)[1].replace('/', File.separatorChar);
+ htdocsPath = "rtyanelhtdocs:" + path.split(resourceTypeUniversalNameSplitter + name)[1].split("/" + reservedPrefix)[1].replace('/', File.separatorChar);
} else {
- htdocsPath = "rthtdocs:" + path.split("::" + name)[1].replace('/', File.separatorChar);
+ htdocsPath = "rthtdocs:" + path.split(resourceTypeUniversalNameSplitter + name)[1].replace('/', File.separatorChar);
}
SourceResolver resolver = new SourceResolver(resourceOfPrefix);
Source source = resolver.resolve(htdocsPath, null);
More information about the Yanel-commits
mailing list