Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Isolated classloaders support #392

Open
pshirshov opened this issue Sep 28, 2018 · 0 comments
Open

Isolated classloaders support #392

pshirshov opened this issue Sep 28, 2018 · 0 comments
Assignees
Labels
complex A hard problem distage (di) enhancement philosoraptor Something we are just thinking about
Projects
Milestone

Comments

@pshirshov
Copy link
Member

This should be the last piece allowing us to have piece of mind and not to worry about convergence.

We need to consider the following:

  1. Coursier resolves convergence by choosing most recent version in the slot. Hence we should resolve each role independently.
  2. We may create a classloader per role but it wouldn't work as per there are shared libraries and shared components.

We may solve shared libraries problem by building a classloader tree. We should plan this work ahead of time to minimize the complexity.

So:

  1. We create a classloader per each role
  2. We start creating classloaders per each dependency reusing duplicates

Shared component problem (e.g. http server) is more problematic. We have two options:

  1. Make roles completely independent - this way we would lose one of the most important benefits of role based approach and get a tomcat-like monster
  2. Make sure we have strictly one version of shared component api - still some manual work to be done
@pshirshov pshirshov added this to the 1.0 milestone Sep 28, 2018
@pshirshov pshirshov self-assigned this Sep 28, 2018
@pshirshov pshirshov added this to To do in DIStage via automation Sep 28, 2018
@pshirshov pshirshov added philosoraptor Something we are just thinking about complex A hard problem labels Jan 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complex A hard problem distage (di) enhancement philosoraptor Something we are just thinking about
Projects
DIStage
  
To do
Development

No branches or pull requests

1 participant