What about this: 1) Each jar is deployed into it’s own classloader. 2) If the classloader for jar1 is unable to load a class, it delegates to its parent which can load classes from siblings to jar1.
The classloader hierarchy would be: bootstrap << system << application << (deploy jar)* where the application classloader manages the delegation to all deployed jars. Anthony > On Apr 10, 2017, at 10:20 AM, Jared Stewart <jstew...@pivotal.io> wrote: > > There is last one implementation decision for GEODE-2290 that I'm torn about, > namely having one classloader for all deployed jars vs having separate > classloaders for each deployed jar. > > If we have one class loader, e.g. new UrlClassLoader(jar1, jar2), then: > > - Jar1 will be able to load classes/resources from jar2 (this was the > previous behavior of deployed jars with our custom class loader) > - But if we redeploy jar 1, jar 2 will also get its class loader rebuilt, > which may raise the likelihood of weird classloader problems arising > > Does anyone else have thoughts about this tradeoff? > > Thanks, > Jared