This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit f6f636296993daec5b4eaa70d77440836567d707 Author: Claus Ibsen <[email protected]> AuthorDate: Fri Jan 3 11:24:54 2020 +0100 Optimize package scan to only create jar cache on-demand when needed --- .../camel/impl/engine/DefaultPackageScanClassResolver.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java index 3edde38..4c69b1c 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java @@ -53,7 +53,7 @@ import org.apache.camel.util.ObjectHelper; */ public class DefaultPackageScanClassResolver extends BasePackageScanResolver implements PackageScanClassResolver, NonManagedService { - private Map<String, List<String>> jarCache; + private volatile Map<String, List<String>> jarCache; private Set<PackageScanFilter> scanFilters; @Override @@ -250,6 +250,12 @@ public class DefaultPackageScanClassResolver extends BasePackageScanResolver imp stream = new FileInputStream(file); } + // only create jar cache on-demand when needed + if (jarCache == null) { + // use a soft cache so it can be claimed if needed + jarCache = LRUCacheFactory.newLRUWeakCache(1000); + } + loadImplementationsInJar(test, packageName, stream, urlPath, classes, jarCache); } finally { IOHelper.close(stream); @@ -444,11 +450,7 @@ public class DefaultPackageScanClassResolver extends BasePackageScanResolver imp @Override protected void doStart() throws Exception { - if (jarCache == null) { - // use a JAR cache to speed up scanning JARs, but let it be soft referenced - // so it can claim the data when memory is needed - jarCache = LRUCacheFactory.newLRUCache(1000); - } + // noop } @Override
