[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