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:39 UTC

[camel] branch master updated (8bda5d2 -> a69f735)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 8bda5d2  Upgrade Awaitility to version 4.0.2
     new f6f6362  Optimize package scan to only create jar cache on-demand when needed
     new a69f735  Added logging

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/impl/engine/DefaultPackageScanClassResolver.java | 14 ++++++++------
 .../java/org/apache/camel/support/LRUCacheFactory.java     | 14 ++++++++++----
 2 files changed, 18 insertions(+), 10 deletions(-)


[camel] 01/02: Optimize package scan to only create jar cache on-demand when needed

Posted by da...@apache.org.
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


[camel] 02/02: Added logging

Posted by da...@apache.org.
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 a69f735f4d475ae637c92d441994695a6c5d7b90
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jan 3 11:25:01 2020 +0100

    Added logging
---
 .../java/org/apache/camel/support/LRUCacheFactory.java     | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LRUCacheFactory.java b/core/camel-support/src/main/java/org/apache/camel/support/LRUCacheFactory.java
index 58d7d48..048576a8 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/LRUCacheFactory.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/LRUCacheFactory.java
@@ -46,6 +46,7 @@ public abstract class LRUCacheFactory {
     }
 
     private static LRUCacheFactory createLRUCacheFactory() {
+        LOGGER.trace("createLRUCacheFactory");
         try {
             ClassLoader classLoader = LRUCacheFactory.class.getClassLoader();
             URL url = classLoader.getResource("META-INF/services/org/apache/camel/lru-cache-factory");
@@ -55,12 +56,17 @@ public abstract class LRUCacheFactory {
                     props.load(is);
                 }
                 String clazzName = props.getProperty("class");
-                Class<?> clazz = classLoader.loadClass(clazzName);
-                Object factory = clazz.getDeclaredConstructor().newInstance();
-                return (LRUCacheFactory) factory;
+                if (clazzName != null) {
+                    LOGGER.trace("Loading class: {}", clazzName);
+                    Class<?> clazz = classLoader.loadClass(clazzName);
+                    LOGGER.trace("Creating LURCacheFactory instance from class: {}", clazzName);
+                    Object factory = clazz.getDeclaredConstructor().newInstance();
+                    LOGGER.trace("Created LURCacheFactory instance: {}", factory);
+                    return (LRUCacheFactory) factory;
+                }
             }
         } catch (Throwable t) {
-            LOGGER.warn("Error creating LRUCacheFactory", t);
+            LOGGER.warn("Error creating LRUCacheFactory. Will use DefaultLRUCacheFactory.", t);
         }
         return new DefaultLRUCacheFactory();
     }