Repository: ambari Updated Branches: refs/heads/trunk 1a45bf10a -> 714d2535e
AMBARI-11335 - Views: Classloading Issue with slf4j (tbeerbower) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/714d2535 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/714d2535 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/714d2535 Branch: refs/heads/trunk Commit: 714d2535edfc23a0ec2f9c8153e84e8f93c5d5ff Parents: 1a45bf1 Author: tbeerbower <[email protected]> Authored: Fri May 22 11:03:12 2015 -0400 Committer: tbeerbower <[email protected]> Committed: Fri May 22 11:03:26 2015 -0400 ---------------------------------------------------------------------- .../java/org/apache/ambari/server/view/ViewClassLoader.java | 2 ++ .../org/apache/ambari/server/view/ViewClassLoaderTest.java | 7 +++++++ 2 files changed, 9 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/714d2535/ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java index 5b0c317..b7cb594 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java @@ -71,6 +71,8 @@ public class ViewClassLoader extends WebAppClassLoader { // add com.google.inject as system classes to allow for injection in view components using the google annotation webAppContext.addSystemClass("com.google.inject."); + // add org.slf4j as system classes to avoid linkage errors + webAppContext.addSystemClass("org.slf4j."); return webAppContext; } http://git-wip-us.apache.org/repos/asf/ambari/blob/714d2535/ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java index b6a1396..8e22c49 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java @@ -72,6 +72,7 @@ public class ViewClassLoaderTest { expect(parentClassLoader.loadClass("ParentClass")).andReturn(parentClass).once(); expect(parentClassLoader.loadClass("javax.xml.parsers.SAXParserFactory")).andReturn(parentClass).once(); expect(parentClassLoader.loadClass("com.google.inject.AbstractModule")).andReturn(parentClass).once(); + expect(parentClassLoader.loadClass("org.slf4j.LoggerFactory")).andReturn(parentClass).once(); replay(parentClassLoader); @@ -103,6 +104,12 @@ public class ViewClassLoaderTest { Assert.assertNotNull(clazz); Assert.assertSame(parentClass, clazz); + // should be loaded by parent loader + clazz = classLoader.loadClass("org.slf4j.LoggerFactory"); + + Assert.assertNotNull(clazz); + Assert.assertSame(parentClass, clazz); + verify(parentClassLoader); }
