Class LRUModuleDependenciesClassLoaderCache

  • All Implemented Interfaces:
    org.guvnor.common.services.backend.cache.Cache<org.kie.workbench.common.services.shared.project.KieModule,​ClassLoader>

    @ApplicationScoped
    @Named("LRUModuleDependenciesClassLoaderCache")
    public class LRUModuleDependenciesClassLoaderCache
    extends org.guvnor.common.services.backend.cache.LRUCache<org.kie.workbench.common.services.shared.project.KieModule,​ClassLoader>
    • Constructor Detail

      • LRUModuleDependenciesClassLoaderCache

        public LRUModuleDependenciesClassLoaderCache()
      • LRUModuleDependenciesClassLoaderCache

        @Inject
        public LRUModuleDependenciesClassLoaderCache​(BuildInfoService buildInfoService)
    • Method Detail

      • setBuildInfoService

        protected void setBuildInfoService​(BuildInfoService buildInfoService)
      • assertDependenciesClassLoader

        public ClassLoader assertDependenciesClassLoader​(org.kie.workbench.common.services.shared.project.KieModule module)
      • buildClassLoader

        public static ClassLoader buildClassLoader​(org.kie.workbench.common.services.shared.project.KieModule module,
                                                   org.kie.scanner.KieModuleMetaData kieModuleMetaData)
        This method and the subsequent caching was added for performance reasons, since the dependencies calculation and module class loader calculation tends to be time consuming when we manage module with transitives dependencies. Since the module ClassLoader may change with ever incremental build it's better to store in the cache the ClassLoader part that has the module dependencies. And the module ClassLoader can be easily calculated using this ClassLoader as parent. Since current module classes are quickly calculated on each incremental build, etc.
      • setDependenciesClassLoader

        public void setDependenciesClassLoader​(org.kie.workbench.common.services.shared.project.KieModule module,
                                               ClassLoader classLoader)