Author: markt Date: Fri May 2 21:52:12 2014 New Revision: 1592052 URL: http://svn.apache.org/r1592052 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56451 Make resources accessed via a context alias accessible via JNDI in the same way standard resources are available.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/BaseDirContext.java tomcat/tc7.0.x/trunk/test/org/apache/naming/resources/TestNamingContext.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/BaseDirContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/BaseDirContext.java?rev=1592052&r1=1592051&r2=1592052&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/BaseDirContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/BaseDirContext.java Fri May 2 21:52:12 2014 @@ -181,11 +181,7 @@ public abstract class BaseDirContext imp * Add an alias. */ public void addAlias(String path, BaseDirContext dirContext) { - if (!path.startsWith("/")) { - throw new IllegalArgumentException( - sm.getString("resources.invalidAliasPath", path)); - } - aliases.put(path, dirContext); + aliases.put(convertPathToName(path), dirContext); } @@ -193,14 +189,21 @@ public abstract class BaseDirContext imp * Remove an alias. */ public void removeAlias(String path) { + aliases.remove(convertPathToName(path)); + } + + + private String convertPathToName(String path) { + // Path should have a leading / if (!path.startsWith("/")) { throw new IllegalArgumentException( sm.getString("resources.invalidAliasPath", path)); } - aliases.remove(path); + + // Name should not have a leading / + return path.substring(1); } - /** * Get the current alias configuration in String form. If no aliases are * configured, an empty string will be returned. @@ -217,6 +220,7 @@ public abstract class BaseDirContext imp result.append(','); } Entry<String,BaseDirContext> entry = iter.next(); + result.append('/'); result.append(entry.getKey()); result.append('='); result.append(entry.getValue().getDocBase()); Modified: tomcat/tc7.0.x/trunk/test/org/apache/naming/resources/TestNamingContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/naming/resources/TestNamingContext.java?rev=1592052&r1=1592051&r2=1592052&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/naming/resources/TestNamingContext.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/naming/resources/TestNamingContext.java Fri May 2 21:52:12 2014 @@ -148,7 +148,7 @@ public class TestNamingContext extends T +",/a2=" + alternate2.getCanonicalPath()); // Check first alias - Object file = ctx.lookup("/a1/test1.txt"); + Object file = ctx.lookup("a1/test1.txt"); Assert.assertNotNull(file); Assert.assertTrue(file instanceof Resource); @@ -168,7 +168,7 @@ public class TestNamingContext extends T assertEquals(foxText, contents); // Check second alias - file = ctx.lookup("/a2/test2.txt"); + file = ctx.lookup("a2/test2.txt"); Assert.assertNotNull(file); Assert.assertTrue(file instanceof Resource); @@ -191,7 +191,7 @@ public class TestNamingContext extends T + ","); // Check first alias - file = ctx.lookup("/a1/test1.txt"); + file = ctx.lookup("a1/test1.txt"); Assert.assertNotNull(file); Assert.assertTrue(file instanceof Resource); @@ -208,7 +208,7 @@ public class TestNamingContext extends T assertEquals(foxText, contents); // Check second alias - file = ctx.lookup("/a2/test2.txt"); + file = ctx.lookup("a2/test2.txt"); Assert.assertNotNull(file); Assert.assertTrue(file instanceof Resource); Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1592052&r1=1592051&r2=1592052&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri May 2 21:52:12 2014 @@ -136,6 +136,10 @@ problem is encountered calling a getter or setter on a component attribute. The logging level is raised from debug to warning. (markt) </fix> + <fix> + <bug>56451</bug>: Make resources accessed via a context alias accessible + via JNDI in the same way standard resources are available. (markt) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org