Modified: tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1029527&r1=1029526&r2=1029527&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java Mon Nov  1 
02:04:53 2010
@@ -568,6 +568,7 @@ public final class TldConfig  implements
         }
     }
 
+    @Override
     public void lifecycleEvent(LifecycleEvent event) {
         // Identify the context we are associated with
         try {
@@ -584,7 +585,7 @@ public final class TldConfig  implements
                 execute();
             } catch (Exception e) {
                 log.error(sm.getString(
-                        "tldConfig.execute", context.getPath()), e);
+                        "tldConfig.execute", context.getName()), e);
             }
         } else if (event.getType().equals(Lifecycle.STOP_EVENT)) {
             taglibUris.clear();

Added: tomcat/trunk/java/org/apache/catalina/util/ContextName.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/ContextName.java?rev=1029527&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/ContextName.java (added)
+++ tomcat/trunk/java/org/apache/catalina/util/ContextName.java Mon Nov  1 
02:04:53 2010
@@ -0,0 +1,132 @@
+/*
+ * 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.catalina.util;
+
+import java.util.Locale;
+
+/**
+ * Utility class to manage context names so there is one place where the
+ * conversions between baseName, path and version take place.
+ */
+public final class ContextName {
+    private final String ROOT_NAME = "ROOT";
+    private final String VERSION_MARKER = "##";
+    private final String FWD_SLASH_REPLACEMENT = "#";
+
+    private final String baseName;
+    private final String path;
+    private final String version;
+    private final String name;
+    
+    /**
+     * Creates an instance from a base name, directory name, WAR name or
+     * context.xml name.
+     * 
+     * @param name  The name to use as the basis for this object
+     */
+    public ContextName(String name) {
+        // Remove file extension, if any
+        if (name.toLowerCase(Locale.ENGLISH).endsWith(".war") ||
+                name.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
+            baseName = name.substring(0, name.length() -4);
+        } else {
+            baseName = name;
+        }
+
+        // Extract version number
+        int versionIndex = baseName.indexOf(VERSION_MARKER);
+        if (versionIndex > -1) {
+            version = baseName.substring(versionIndex + 2);
+        } else {
+            version = "";
+        }
+
+        if (ROOT_NAME.equals(baseName)) {
+            path = "";
+        } else if (versionIndex > -1) {
+            path = "/" + baseName.substring(0, versionIndex).replaceAll(
+                    FWD_SLASH_REPLACEMENT, "/");
+        } else {
+            path = "/" + baseName.replaceAll(FWD_SLASH_REPLACEMENT, "/");
+        }
+        
+        if (versionIndex > -1) {
+            this.name = path + VERSION_MARKER + version;
+        } else {
+            this.name = path;
+        }
+    }
+    
+    /**
+     * Construct and instance from a path and version.
+     * 
+     * @param path      Context path to use
+     * @param version   Context version to use
+     */
+    public ContextName(String path, String version) {
+        // Path should never be null or '/'
+        if (path == null || "/".equals(path)) {
+            this.path = "";
+        } else {
+            this.path = path;
+        }
+
+        // Version should never be null
+        if (version == null) {
+            this.version = "";
+        } else {
+            this.version = version;
+        }
+        
+        // Name is path + version
+        if ("".equals(this.version)) {
+            name = this.path;
+        } else {
+            name = this.path + VERSION_MARKER + this.version;
+        }
+
+        // Base name is converted path + version
+        StringBuilder tmp = new StringBuilder();
+        if ("".equals(path)) {
+            tmp.append(ROOT_NAME);
+        } else {
+            tmp.append(this.path.substring(1).replaceAll("/",
+                    FWD_SLASH_REPLACEMENT));
+        }
+        if (this.version.length() > 0) {
+            tmp.append(VERSION_MARKER);
+            tmp.append(this.version);
+        }
+        this.baseName = tmp.toString();
+    }
+
+    public String getBaseName() {
+        return baseName;
+    }
+    
+    public String getPath() {
+        return path;
+    }
+    
+    public String getVersion() {
+        return version;
+    }
+    
+    public String getName() {
+        return name;
+    }
+}

Propchange: tomcat/trunk/java/org/apache/catalina/util/ContextName.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java?rev=1029527&r1=1029526&r2=1029527&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java Mon Nov  
1 02:04:53 2010
@@ -137,7 +137,7 @@ public final class ExtensionValidator {
                                            Context context)
                     throws IOException {
 
-        String appName = context.getPath();
+        String appName = context.getName();
         ArrayList<ManifestResource> appManifestResources =
             new ArrayList<ManifestResource>();
         // If the application context is null it does not exist and 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to