Improve OsgiClassLoader performance

Description

The HibernateBundleActivator registers itself as a BundleListener. The prototype currently provides a custom ClassLoader that iterates through all ACTIVE Bundles until a class or resource is located, each time its requested. This is terrible for obvious reasons.

Instead, we're discussing alternatives and improvements:

1. Request that users mark specific Bundles as "interesting to Hibernate". This could simply be an additional value in the manifest, an additional META-INF file, etc. Only Bundles housing mapping resources, entities, Services, Integrators, Types, UserTypes, etc. would be designated with the marking. Hibernate would then only need to maintain references to the Bundles it "cares" about.

2. Cache references to all Classes and Resources discovered in all ACTIVE Bundles. This has obvious memory concerns, but would provide the best performance.

3. Cache references to Classes and Resources as they are discovered for the first time. This also has memory and performance considerations.

Environment

None

Status

Assignee

Brett Meyer

Reporter

Brett Meyer

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Priority

Major
Configure