/** returns a "classpath:" URL given a context object and a file to be found in that directory or a sub-directory * (ignoring the context object if the given path is absolute, i.e. starting with "/" or "protocol:") * e.g. "classpath://com/acme/foo.txt" given a context object com.acme.SomeClass and "foo.txt" */ public static String resolveClasspathUrl(Object context, String path) { if (Urls.isUrlWithProtocol(path)) return path; // additional / comes from resolve name return "classpath:/"+resolveName(context, path); }
@Test public void testResolveName() { Assert.assertEquals(JavaClassNames.resolveName(this, "foo.txt"), "/org/apache/brooklyn/util/javalang/foo.txt"); Assert.assertEquals(JavaClassNames.resolveName(JavaClassNamesTest.class, "foo.txt"), "/org/apache/brooklyn/util/javalang/foo.txt"); Assert.assertEquals(JavaClassNames.resolveName(this, "/foo.txt"), "/foo.txt"); Assert.assertEquals(JavaClassNames.resolveName(this, "/bar/foo.txt"), "/bar/foo.txt"); Assert.assertEquals(JavaClassNames.resolveName(this, "bar/foo.txt"), "/org/apache/brooklyn/util/javalang/bar/foo.txt"); }