Log Message: |
Switching back to selectively import extensions into a project-specific ClassRealm, except this time extension realms will be shared (the origin of the aforementioned imports) to conserve memory tied up by classloading. Similarly, plugin realms are managed using a key produced from g:a:v of the plugin, plus the hashcode of all g:a:v of the plugin-level dependencies aggregated into one string, to distinguish the deploy plugin 2.0 with no deps from the deploy plugin 2.0 with a plugin-level dep on wagon-webdav. Plugin realms have their parent realms managed by the pluginManager now prior to lookup or execution of the mojo instance, and PluginDescriptor.(classRealm|artifacts) attributes are set for each execution. Likewise, the MavenPluginCollector now tracks plugin descriptors with their version information included, instead of just using g:a.
Had to bump the plexus-container-default version up to alpha-36 to fix a problem in ClassicSingletonComponentManager. All realms for extensions, plugins, and projects (which contain only imports from extensions) are now managed by the MavenRealmManager.
|