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

Reply via email to