You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/01/03 10:46:40 UTC
[camel] 01/02: Optimize package scan to only create jar cache
on-demand when needed
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 <cl...@gmail.com>
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