Isolate Aether in a separate class loader

Prior to this commit, the Aether-based GrapeEngine was loaded in the
same class loader as the rest of Boot. This led to Aether's and its
dependencies' types polluting the application's class path. Most
notably, this caused problems with logging as the logging framework
could be permaturely initialized.

This commit isolates AetherGrapeEngine, Aether and its dependencies
into a separate class loader. This is done by customizing the
packaging of the CLI's jar file with the internal directory housing
all of the types that will be loaded by the separate class loader.
This commit is contained in:
Andy Wilkinson
2013-10-22 17:13:20 +01:00
parent 39e8e46e2a
commit c0ae78f3ec
14 changed files with 344 additions and 167 deletions

View File

@@ -0,0 +1,13 @@
#Generated by Git-Commit-Id-Plugin
#Tue Oct 22 10:25:04 BST 2013
git.commit.id.abbrev=040321b
git.commit.user.email=awilkinson@gopivotal.com
git.commit.message.full=Isolate Aether in a separate class loader\n\nPrior to this commit, the Aether-based GrapeEngine was loaded in the\nsame class loader as the rest of Boot. This led to Aether's and its\ndependencies' types polluting the application's class path. Most\nnotably, this caused problems with logging as the logging framework\ncould be permaturely initialized.\n\nThis commit isolates AetherGrapeEngine, Aether and its dependencies\ninto a separate class loader. This is done by customizing the\npackaging of the CLI's jar file with the internal directory housing\nall of the types that will be loaded by the separate class loader.\n
git.commit.id=040321bf153db007290786623d45903cee27fa88
git.commit.message.short=Isolate Aether in a separate class loader
git.commit.user.name=Andy Wilkinson
git.build.user.name=Andy Wilkinson
git.build.user.email=awilkinson@gopivotal.com
git.branch=aether-grab
git.commit.time=2013-10-21T16\:24\:40+0100
git.build.time=2013-10-22T10\:25\:04+0100