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

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new eedaaf35cf3 CAMEL-19724: reduce the incidence of dropped log messages
eedaaf35cf3 is described below

commit eedaaf35cf314679dc004972770e61c64e441601
Author: Otavio Rodolfo Piske <angusyo...@gmail.com>
AuthorDate: Tue Aug 8 08:49:45 2023 +0200

    CAMEL-19724: reduce the incidence of dropped log messages
---
 .../apache/camel/support/service/BaseService.java  | 75 ++++++++++++----------
 .../camel/impl/engine/BasePackageScanResolver.java | 31 ++++++---
 .../impl/engine/DefaultCamelContextExtension.java  | 31 ++++++---
 .../engine/DefaultPackageScanClassResolver.java    | 67 ++++++++++---------
 .../engine/DefaultPackageScanResourceResolver.java | 23 ++++---
 .../engine/WebSpherePackageScanClassResolver.java  |  6 +-
 6 files changed, 136 insertions(+), 97 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/support/service/BaseService.java
 
b/core/camel-api/src/main/java/org/apache/camel/support/service/BaseService.java
index 6ee434ced10..35513e39741 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/support/service/BaseService.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/support/service/BaseService.java
@@ -49,8 +49,6 @@ public abstract class BaseService {
     protected static final byte SHUTDOWN = 11;
     protected static final byte FAILED = 12;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(BaseService.class);
-
     protected final Object lock = new Object();
     protected volatile byte status = NEW;
 
@@ -58,14 +56,12 @@ public abstract class BaseService {
         if (status == NEW) {
             synchronized (lock) {
                 if (status == NEW) {
-                    LOG.trace("Building service: {}", this);
                     try (AutoCloseable ignored = doLifecycleChange()) {
                         doBuild();
                     } catch (Exception e) {
                         doFail(e);
                     }
                     status = BUILT;
-                    LOG.trace("Built service: {}", this);
                 }
             }
         }
@@ -77,14 +73,12 @@ public abstract class BaseService {
             synchronized (lock) {
                 if (status <= BUILT || status >= STOPPED) {
                     build();
-                    LOG.trace("Initializing service: {}", this);
                     try (AutoCloseable ignored = doLifecycleChange()) {
                         status = INITIALIZING;
                         doInit();
                         status = INITIALIZED;
-                        LOG.trace("Initialized service: {}", this);
                     } catch (Exception e) {
-                        LOG.trace("Error while initializing service: {}", 
this, e);
+                        logger().trace("Error while initializing service: {}", 
this, e);
                         fail(e);
                     }
                 }
@@ -101,34 +95,34 @@ public abstract class BaseService {
     public void start() {
         synchronized (lock) {
             if (status == STARTED) {
-                LOG.trace("Service: {} already started", this);
+                logger().trace("Service: {} already started", this);
                 return;
             }
             if (status == STARTING) {
-                LOG.trace("Service: {} already starting", this);
+                logger().trace("Service: {} already starting", this);
                 return;
             }
             init();
             if (status == FAILED) {
-                LOG.trace("Init failed");
+                logger().trace("Init failed");
                 return;
             }
             try (AutoCloseable ignored = doLifecycleChange()) {
                 status = STARTING;
-                LOG.trace("Starting service: {}", this);
+                logger().trace("Starting service: {}", this);
                 doStart();
                 status = STARTED;
-                LOG.trace("Started service: {}", this);
+                logger().trace("Started service: {}", this);
             } catch (Exception e) {
                 // need to stop as some resources may have been started during 
startup
                 try {
                     stop();
                 } catch (Exception e2) {
                     // ignore
-                    LOG.trace("Error while stopping service after it failed to 
start: {}. This exception is ignored",
+                    logger().trace("Error while stopping service after it 
failed to start: {}. This exception is ignored",
                             this, e);
                 }
-                LOG.trace("Error while starting service: {}", this, e);
+                logger().trace("Error while starting service: {}", this, e);
                 fail(e);
             }
         }
@@ -143,25 +137,25 @@ public abstract class BaseService {
     public void stop() {
         synchronized (lock) {
             if (status == FAILED) {
-                LOG.trace("Service: {} failed and regarded as already 
stopped", this);
+                logger().trace("Service: {} failed and regarded as already 
stopped", this);
                 return;
             }
             if (status == STOPPED || status == SHUTTING_DOWN || status == 
SHUTDOWN) {
-                LOG.trace("Service: {} already stopped", this);
+                logger().trace("Service: {} already stopped", this);
                 return;
             }
             if (status == STOPPING) {
-                LOG.trace("Service: {} already stopping", this);
+                logger().trace("Service: {} already stopping", this);
                 return;
             }
             status = STOPPING;
-            LOG.trace("Stopping service: {}", this);
+            logger().trace("Stopping service: {}", this);
             try (AutoCloseable ignored = doLifecycleChange()) {
                 doStop();
                 status = STOPPED;
-                LOG.trace("Stopped: {} service", this);
+                logger().trace("Stopped: {} service", this);
             } catch (Exception e) {
-                LOG.trace("Error while stopping service: {}", this, e);
+                logger().trace("Error while stopping service: {}", this, e);
                 fail(e);
             }
         }
@@ -176,21 +170,21 @@ public abstract class BaseService {
     public void suspend() {
         synchronized (lock) {
             if (status == SUSPENDED) {
-                LOG.trace("Service: {} already suspended", this);
+                logger().trace("Service: {} already suspended", this);
                 return;
             }
             if (status == SUSPENDING) {
-                LOG.trace("Service: {} already suspending", this);
+                logger().trace("Service: {} already suspending", this);
                 return;
             }
             status = SUSPENDING;
-            LOG.trace("Suspending service: {}", this);
+            logger().trace("Suspending service: {}", this);
             try (AutoCloseable ignored = doLifecycleChange()) {
                 doSuspend();
                 status = SUSPENDED;
-                LOG.trace("Suspended service: {}", this);
+                logger().trace("Suspended service: {}", this);
             } catch (Exception e) {
-                LOG.trace("Error while suspending service: {}", this, e);
+                logger().trace("Error while suspending service: {}", this, e);
                 fail(e);
             }
         }
@@ -205,17 +199,17 @@ public abstract class BaseService {
     public void resume() {
         synchronized (lock) {
             if (status != SUSPENDED) {
-                LOG.trace("Service is not suspended: {}", this);
+                logger().trace("Service is not suspended: {}", this);
                 return;
             }
             status = STARTING;
-            LOG.trace("Resuming service: {}", this);
+            logger().trace("Resuming service: {}", this);
             try (AutoCloseable ignored = doLifecycleChange()) {
                 doResume();
                 status = STARTED;
-                LOG.trace("Resumed service: {}", this);
+                logger().trace("Resumed service: {}", this);
             } catch (Exception e) {
-                LOG.trace("Error while resuming service: {}", this, e);
+                logger().trace("Error while resuming service: {}", this, e);
                 fail(e);
             }
         }
@@ -230,22 +224,22 @@ public abstract class BaseService {
     public void shutdown() {
         synchronized (lock) {
             if (status == SHUTDOWN) {
-                LOG.trace("Service: {} already shutdown", this);
+                logger().trace("Service: {} already shutdown", this);
                 return;
             }
             if (status == SHUTTING_DOWN) {
-                LOG.trace("Service: {} already shutting down", this);
+                logger().trace("Service: {} already shutting down", this);
                 return;
             }
             stop();
             status = SHUTDOWN;
-            LOG.trace("Shutting down service: {}", this);
+            logger().trace("Shutting down service: {}", this);
             try (AutoCloseable ignored = doLifecycleChange()) {
                 doShutdown();
-                LOG.trace("Shutdown service: {}", this);
+                logger().trace("Shutdown service: {}", this);
                 status = SHUTDOWN;
             } catch (Exception e) {
-                LOG.trace("Error shutting down service: {}", this, e);
+                logger().trace("Error shutting down service: {}", this, e);
                 fail(e);
             }
         }
@@ -420,4 +414,17 @@ public abstract class BaseService {
         return null;
     }
 
+    /*
+     * NOTE: see CAMEL-19724. We log like this instead of using a statically 
declared logger in order to
+     * reduce the risk of dropping log messages due to slf4j log substitution 
behavior during its own
+     * initialization.
+     */
+    private Logger logger() {
+        class Holder {
+            static final Logger LOG = 
LoggerFactory.getLogger(BaseService.class);
+        }
+
+        return Holder.LOG;
+    }
+
 }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
index 30968f2e1f4..af27b193f02 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
@@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory;
  * Base class for package scan resolvers.
  */
 public abstract class BasePackageScanResolver extends ServiceSupport 
implements CamelContextAware {
-    protected final Logger log = LoggerFactory.getLogger(getClass());
     protected String[] acceptableSchemes = {};
     private final Set<ClassLoader> classLoaders = new LinkedHashSet<>();
     private CamelContext camelContext;
@@ -53,12 +52,11 @@ public abstract class BasePackageScanResolver extends 
ServiceSupport implements
         try {
             ClassLoader ccl = Thread.currentThread().getContextClassLoader();
             if (ccl != null) {
-                log.trace("Adding ContextClassLoader from current thread: {}", 
ccl);
                 classLoaders.add(ccl);
             }
         } catch (Exception e) {
             // Ignore this exception
-            log.warn("Cannot add ContextClassLoader from current thread due 
{}. This exception will be ignored.",
+            logger().warn("Cannot add ContextClassLoader from current thread 
due {}. This exception will be ignored.",
                     e.getMessage());
         }
 
@@ -133,7 +131,7 @@ public abstract class BasePackageScanResolver extends 
ServiceSupport implements
      * @throws IOException is thrown by the classloader
      */
     protected Enumeration<URL> getResources(ClassLoader loader, String 
packageName) throws IOException {
-        log.trace("Getting resource URL for package: {} with classloader: {}", 
packageName, loader);
+        logger().trace("Getting resource URL for package: {} with classloader: 
{}", packageName, loader);
 
         // If the URL is a jar, the URLClassloader.getResources() seems to 
require a trailing slash.  The
         // trailing slash is harmless for other URLs
@@ -146,8 +144,8 @@ public abstract class BasePackageScanResolver extends 
ServiceSupport implements
     protected String parseUrlPath(URL url) {
         String urlPath = url.getFile();
         urlPath = URLDecoder.decode(urlPath, StandardCharsets.UTF_8);
-        if (log.isTraceEnabled()) {
-            log.trace("Decoded urlPath: {} with protocol: {}", urlPath, 
url.getProtocol());
+        if (logger().isTraceEnabled()) {
+            logger().trace("Decoded urlPath: {} with protocol: {}", urlPath, 
url.getProtocol());
         }
 
         // If it's a file in a directory, trim the stupid file: spec
@@ -169,13 +167,13 @@ public abstract class BasePackageScanResolver extends 
ServiceSupport implements
 
         // osgi bundles should be skipped
         if (url.toString().startsWith("bundle:") || 
urlPath.startsWith("bundle:")) {
-            log.trace("Skipping OSGi bundle: {}", url);
+            logger().trace("Skipping OSGi bundle: {}", url);
             return null;
         }
 
         // bundle resource should be skipped
         if (url.toString().startsWith("bundleresource:") || 
urlPath.startsWith("bundleresource:")) {
-            log.trace("Skipping bundleresource: {}", url);
+            logger().trace("Skipping bundleresource: {}", url);
             return null;
         }
 
@@ -191,13 +189,26 @@ public abstract class BasePackageScanResolver extends 
ServiceSupport implements
         try {
             urls = getResources(loader, packageName);
             if (!urls.hasMoreElements()) {
-                log.trace("No URLs returned by classloader");
+                logger().trace("No URLs returned by classloader");
             }
         } catch (IOException ioe) {
-            log.warn("Cannot read package: {}", packageName, ioe);
+            logger().warn("Cannot read package: {}", packageName, ioe);
             return null;
         }
         return urls;
     }
 
+    /*
+     * NOTE: see CAMEL-19724. We log like this instead of using a statically 
declared logger in order to
+     * reduce the risk of dropping log messages due to slf4j log substitution 
behavior during its own
+     * initialization.
+     */
+    private Logger logger() {
+        class Holder {
+            static final Logger LOG = 
LoggerFactory.getLogger(BasePackageScanResolver.class);
+        }
+
+        return Holder.LOG;
+    }
+
 }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index b829d68d03b..a32cf1c34a3 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -69,8 +69,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 class DefaultCamelContextExtension implements ExtendedCamelContext {
-    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultCamelContextExtension.class);
-
     private final AbstractCamelContext camelContext;
     private final ThreadLocal<Boolean> isSetupRoutes = new ThreadLocal<>();
     private final List<InterceptStrategy> interceptStrategies = new 
ArrayList<>();
@@ -210,7 +208,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
             try {
                 bootstrap.close();
             } catch (Exception e) {
-                LOG.warn("Error during closing bootstrap. This exception is 
ignored.", e);
+                logger().warn("Error during closing bootstrap. This exception 
is ignored.", e);
             }
         }
         bootstraps.clear();
@@ -230,7 +228,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
         if (text != null && text.contains(PropertiesComponent.PREFIX_TOKEN)) {
             // the parser will throw exception if property key was not found
             String answer = 
camelContext.getPropertiesComponent().parseUri(text, keepUnresolvedOptional);
-            LOG.debug("Resolved text: {} -> {}", text, answer);
+            logger().debug("Resolved text: {} -> {}", text, answer);
             return answer;
         }
         // is the value a known field (currently we only support
@@ -239,7 +237,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
             String field = StringHelper.after(text, "Exchange.");
             String constant = ExchangeConstantProvider.lookup(field);
             if (constant != null) {
-                LOG.debug("Resolved constant: {} -> {}", text, constant);
+                logger().debug("Resolved constant: {} -> {}", text, constant);
                 return constant;
             } else {
                 throw new IllegalArgumentException("Constant field with name: 
" + field + " not found on Exchange.class");
@@ -371,7 +369,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
 
     @Override
     public void setupManagement(Map<String, Object> options) {
-        LOG.trace("Setting up management");
+        logger().trace("Setting up management");
 
         ManagementStrategyFactory factory = null;
         if (!camelContext.isJMXDisabled()) {
@@ -388,17 +386,17 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
                 DebuggerFactory df
                         = 
getBootstrapFactoryFinder().newInstance(Debugger.FACTORY, 
DebuggerFactory.class).orElse(null);
                 if (df != null) {
-                    LOG.info("Detected: {} JAR (Enabling Camel Debugging)", 
df);
+                    logger().info("Detected: {} JAR (Enabling Camel 
Debugging)", df);
                     camelContext.enableDebugging(df);
                 }
             } catch (Exception e) {
-                LOG.warn("Cannot create JmxManagementStrategyFactory. Will 
fallback and disable JMX.", e);
+                logger().warn("Cannot create JmxManagementStrategyFactory. 
Will fallback and disable JMX.", e);
             }
         }
         if (factory == null) {
             factory = new DefaultManagementStrategyFactory();
         }
-        LOG.debug("Setting up management with factory: {}", factory);
+        logger().debug("Setting up management with factory: {}", factory);
 
         // preserve any existing event notifiers that may have been already 
added
         List<EventNotifier> notifiers = null;
@@ -414,7 +412,7 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
             LifecycleStrategy lifecycle = 
factory.createLifecycle(camelContext);
             factory.setupManagement(camelContext, strategy, lifecycle);
         } catch (Exception e) {
-            LOG.warn("Error setting up management due {}", e.getMessage());
+            logger().warn("Error setting up management due {}", 
e.getMessage());
             throw RuntimeCamelException.wrapRuntimeCamelException(e);
         }
     }
@@ -613,4 +611,17 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
 
         return camelContext.getInternalServiceManager().addService(module);
     }
+
+    /*
+     * NOTE: see CAMEL-19724. We log like this instead of using a statically 
declared logger in order to
+     * reduce the risk of dropping log messages due to slf4j log substitution 
behavior during its own
+     * initialization.
+     */
+    private Logger logger() {
+        class Holder {
+            static final Logger LOG = 
LoggerFactory.getLogger(DefaultCamelContextExtension.class);
+        }
+
+        return Holder.LOG;
+    }
 }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
index f3f72b0910b..3e1dff0f322 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
@@ -44,12 +44,15 @@ import org.apache.camel.spi.PackageScanFilter;
 import org.apache.camel.support.LRUCacheFactory;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Default implement of {@link org.apache.camel.spi.PackageScanClassResolver}
  */
 public class DefaultPackageScanClassResolver extends BasePackageScanResolver
         implements PackageScanClassResolver, NonManagedService {
+    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultPackageScanClassResolver.class);
 
     private volatile Map<String, List<String>> jarCache;
     private Set<PackageScanFilter> scanFilters;
@@ -75,8 +78,8 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             return Collections.emptySet();
         }
 
-        if (log.isDebugEnabled()) {
-            log.debug("Searching for annotations of {} in packages: {}", 
annotation.getName(), Arrays.asList(packageNames));
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Searching for annotations of {} in packages: {}", 
annotation.getName(), Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new 
AnnotatedWithPackageScanFilter(annotation, true));
@@ -85,7 +88,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             find(test, pkg, classes);
         }
 
-        log.debug("Found: {}", classes);
+        LOG.debug("Found: {}", classes);
 
         return classes;
     }
@@ -96,8 +99,8 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             return Collections.emptySet();
         }
 
-        if (log.isDebugEnabled()) {
-            log.debug("Searching for annotations of {} in packages: {}", 
annotations, Arrays.asList(packageNames));
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Searching for annotations of {} in packages: {}", 
annotations, Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new 
AnnotatedWithAnyPackageScanFilter(annotations, true));
@@ -106,7 +109,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             find(test, pkg, classes);
         }
 
-        log.debug("Found: {}", classes);
+        LOG.debug("Found: {}", classes);
 
         return classes;
     }
@@ -117,8 +120,8 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             return Collections.emptySet();
         }
 
-        if (log.isDebugEnabled()) {
-            log.debug("Searching for implementations of {} in packages: {}", 
parent.getName(), Arrays.asList(packageNames));
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Searching for implementations of {} in packages: {}", 
parent.getName(), Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new 
AssignableToPackageScanFilter(parent));
@@ -127,7 +130,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             find(test, pkg, classes);
         }
 
-        log.debug("Found: {}", classes);
+        LOG.debug("Found: {}", classes);
 
         return classes;
     }
@@ -143,7 +146,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             find(filter, pkg, classes);
         }
 
-        log.debug("Found: {}", classes);
+        LOG.debug("Found: {}", classes);
 
         return classes;
     }
@@ -164,8 +167,8 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
     }
 
     protected void find(PackageScanFilter test, String packageName, 
ClassLoader loader, Set<Class<?>> classes) {
-        if (log.isTraceEnabled()) {
-            log.trace("Searching for: {} in package: {} using classloader: {}",
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Searching for: {} in package: {} using classloader: {}",
                     test, packageName, loader.getClass().getName());
         }
 
@@ -178,7 +181,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             URL url = null;
             try {
                 url = urls.nextElement();
-                log.trace("URL from classloader: {}", url);
+                LOG.trace("URL from classloader: {}", url);
 
                 url = customResourceLocator(url);
 
@@ -187,11 +190,11 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
                     continue;
                 }
 
-                log.trace("Scanning for classes in: {} matching criteria: {}", 
urlPath, test);
+                LOG.trace("Scanning for classes in: {} matching criteria: {}", 
urlPath, test);
 
                 File file = new File(urlPath);
                 if (file.isDirectory()) {
-                    log.trace("Loading from directory using file: {}", file);
+                    LOG.trace("Loading from directory using file: {}", file);
                     loadImplementationsInDirectory(test, packageName, file, 
classes);
                 } else {
                     InputStream stream = null;
@@ -201,14 +204,14 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
                                 || isAcceptableScheme(urlPath)) {
                             // load resources using http/https, sonicfs and 
other acceptable scheme
                             // sonic ESB requires to be loaded using a regular 
URLConnection
-                            log.trace("Loading from jar using url: {}", 
urlPath);
+                            LOG.trace("Loading from jar using url: {}", 
urlPath);
                             URL urlStream = new URL(urlPath);
                             URLConnection con = urlStream.openConnection();
                             // disable cache mainly to avoid jar file locking 
on Windows
                             con.setUseCaches(false);
                             stream = con.getInputStream();
                         } else {
-                            log.trace("Loading from jar using file: {}", file);
+                            LOG.trace("Loading from jar using file: {}", file);
                             stream = new FileInputStream(file);
                         }
 
@@ -225,7 +228,7 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
                 }
             } catch (IOException e) {
                 // use debug logging to avoid being to noisy in logs
-                log.debug("Cannot read entries in url: {}", url, e);
+                LOG.debug("Cannot read entries in url: {}", url, e);
             }
         }
     }
@@ -295,10 +298,10 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             entries = doLoadJarClassEntries(stream, urlPath);
             if (jarCache != null) {
                 jarCache.put(urlPath, entries);
-                log.trace("Cached {} JAR with {} entries", urlPath, 
entries.size());
+                LOG.trace("Cached {} JAR with {} entries", urlPath, 
entries.size());
             }
         } else {
-            log.trace("Using cached {} JAR with {} entries", urlPath, 
entries.size());
+            LOG.trace("Using cached {} JAR with {} entries", urlPath, 
entries.size());
         }
 
         doLoadImplementationsInJar(test, parent, entries, classes);
@@ -326,9 +329,9 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
                 }
             }
         } catch (IOException ioe) {
-            log.warn("Cannot search jar file '{}' due to an IOException: {}", 
urlPath, ioe.getMessage(), ioe);
+            LOG.warn("Cannot search jar file '{}' due to an IOException: {}", 
urlPath, ioe.getMessage(), ioe);
         } finally {
-            IOHelper.close(jarStream, urlPath, log);
+            IOHelper.close(jarStream, urlPath, LOG);
         }
 
         return entries;
@@ -364,36 +367,36 @@ public class DefaultPackageScanClassResolver extends 
BasePackageScanResolver
             Set<ClassLoader> set = getClassLoaders();
             boolean found = false;
             for (ClassLoader classLoader : set) {
-                if (log.isTraceEnabled()) {
-                    log.trace("Testing for class {} matches criteria [{}] 
using classloader: {}", externalName, test,
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("Testing for class {} matches criteria [{}] 
using classloader: {}", externalName, test,
                             classLoader);
                 }
                 try {
                     Class<?> type = classLoader.loadClass(externalName);
-                    log.trace("Loaded the class: {} in classloader: {}", type, 
classLoader);
+                    LOG.trace("Loaded the class: {} in classloader: {}", type, 
classLoader);
                     if (test.matches(type)) {
-                        log.trace("Found class: {} which matches the filter in 
classloader: {}", type, classLoader);
+                        LOG.trace("Found class: {} which matches the filter in 
classloader: {}", type, classLoader);
                         classes.add(type);
                     }
                     found = true;
                     break;
                 } catch (ClassNotFoundException e) {
-                    if (log.isTraceEnabled()) {
-                        log.trace("Cannot find class '{}' in classloader: {}. 
Reason: {}", fqn, classLoader,
+                    if (LOG.isTraceEnabled()) {
+                        LOG.trace("Cannot find class '{}' in classloader: {}. 
Reason: {}", fqn, classLoader,
                                 e.getMessage(), e);
                     }
                 } catch (NoClassDefFoundError e) {
-                    if (log.isTraceEnabled()) {
-                        log.trace("Cannot find the class definition '{}' in 
classloader: {}. Reason: {}", fqn, classLoader,
+                    if (LOG.isTraceEnabled()) {
+                        LOG.trace("Cannot find the class definition '{}' in 
classloader: {}. Reason: {}", fqn, classLoader,
                                 e.getMessage(), e);
                     }
                 }
             }
             if (!found) {
-                log.debug("Cannot find class '{}' in any classloaders: {}", 
fqn, set);
+                LOG.debug("Cannot find class '{}' in any classloaders: {}", 
fqn, set);
             }
         } catch (Exception e) {
-            log.warn("Cannot examine class '{}' due to a {} with message: {}", 
fqn, e.getClass().getName(),
+            LOG.warn("Cannot examine class '{}' due to a {} with message: {}", 
fqn, e.getClass().getName(),
                     e.getMessage(), e);
 
         }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolver.java
index 358030969ad..14107a437f1 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolver.java
@@ -42,12 +42,15 @@ import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.AntPathMatcher;
 import org.apache.camel.util.IOHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Default implement of {@link 
org.apache.camel.spi.PackageScanResourceResolver}
  */
 public class DefaultPackageScanResourceResolver extends BasePackageScanResolver
         implements PackageScanResourceResolver, NonManagedService, 
CamelContextAware {
+    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultPackageScanResourceResolver.class);
 
     private static final AntPathMatcher PATH_MATCHER = AntPathMatcher.INSTANCE;
 
@@ -140,7 +143,7 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
             URL url = null;
             try {
                 url = urls.nextElement();
-                log.trace("URL from classloader: {}", url);
+                LOG.trace("URL from classloader: {}", url);
 
                 url = customResourceLocator(url);
 
@@ -149,11 +152,11 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
                     continue;
                 }
 
-                log.trace("Scanning for resources in: {} matching pattern: 
{}", urlPath, subPattern);
+                LOG.trace("Scanning for resources in: {} matching pattern: 
{}", urlPath, subPattern);
 
                 File file = new File(urlPath);
                 if (file.isDirectory()) {
-                    log.trace("Loading from directory using file: {}", file);
+                    LOG.trace("Loading from directory using file: {}", file);
                     loadImplementationsInDirectory(subPattern, packageName, 
file, resources);
                 } else {
                     InputStream stream;
@@ -162,14 +165,14 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
                             || isAcceptableScheme(urlPath)) {
                         // load resources using http/https, sonicfs and other 
acceptable scheme
                         // sonic ESB requires to be loaded using a regular 
URLConnection
-                        log.trace("Loading from jar using url: {}", urlPath);
+                        LOG.trace("Loading from jar using url: {}", urlPath);
                         URL urlStream = new URL(urlPath);
                         URLConnection con = urlStream.openConnection();
                         // disable cache mainly to avoid jar file locking on 
Windows
                         con.setUseCaches(false);
                         stream = con.getInputStream();
                     } else {
-                        log.trace("Loading from jar using file: {}", file);
+                        LOG.trace("Loading from jar using file: {}", file);
                         stream = new FileInputStream(file);
                     }
 
@@ -177,7 +180,7 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
                 }
             } catch (IOException e) {
                 // use debug logging to avoid being to noisy in logs
-                log.debug("Cannot read entries in url: {}", url, e);
+                LOG.debug("Cannot read entries in url: {}", url, e);
             }
         }
     }
@@ -203,7 +206,7 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
         for (String name : entries) {
             String shortName = name.substring(packageName.length());
             boolean match = PATH_MATCHER.match(subPattern, shortName);
-            log.debug("Found resource: {} matching pattern: {} -> {}", 
shortName, subPattern, match);
+            LOG.debug("Found resource: {} matching pattern: {} -> {}", 
shortName, subPattern, match);
             if (match) {
                 final ResourceLoader loader = 
PluginHelper.getResourceLoader(getCamelContext());
 
@@ -235,9 +238,9 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
 
             }
         } catch (IOException ioe) {
-            log.warn("Cannot search jar file '" + urlPath + " due to an 
IOException: " + ioe.getMessage(), ioe);
+            LOG.warn("Cannot search jar file '" + urlPath + " due to an 
IOException: " + ioe.getMessage(), ioe);
         } finally {
-            IOHelper.close(jarStream, urlPath, log);
+            IOHelper.close(jarStream, urlPath, LOG);
         }
 
         return entries;
@@ -277,7 +280,7 @@ public class DefaultPackageScanResourceResolver extends 
BasePackageScanResolver
                 loadImplementationsInDirectory(subPattern, packageOrClass, 
file, resources);
             } else if (file.isFile() && file.exists() && 
!name.endsWith(".class")) {
                 boolean match = PATH_MATCHER.match(subPattern, name);
-                log.debug("Found resource: {} matching pattern: {} -> {}", 
name, subPattern, match);
+                LOG.debug("Found resource: {} matching pattern: {} -> {}", 
name, subPattern, match);
                 if (match) {
                     final ResourceLoader loader = 
PluginHelper.getResourceLoader(getCamelContext());
 
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/WebSpherePackageScanClassResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/WebSpherePackageScanClassResolver.java
index c06b4cb6e10..250f593414b 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/WebSpherePackageScanClassResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/WebSpherePackageScanClassResolver.java
@@ -20,10 +20,14 @@ import java.io.IOException;
 import java.net.URL;
 import java.util.Enumeration;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * WebSphere specific resolver to handle loading annotated resources in JAR 
files.
  */
 public class WebSpherePackageScanClassResolver extends 
DefaultPackageScanClassResolver {
+    private static final Logger LOG = 
LoggerFactory.getLogger(WebSpherePackageScanClassResolver.class);
 
     private final String resourcePath;
 
@@ -62,7 +66,7 @@ public class WebSpherePackageScanClassResolver extends 
DefaultPackageScanClassRe
         // try super first, just in vase
         Enumeration<URL> enumeration = super.getResources(loader, packageName);
         if (!enumeration.hasMoreElements()) {
-            log.trace("Using WebSphere workaround to load the camel jars with 
the annotated converters.");
+            LOG.trace("Using WebSphere workaround to load the camel jars with 
the annotated converters.");
             // Special WebSphere trick to load a file that exists in the JAR 
and then let it go from there.
             // The trick is that we just need the URL's for the .jars that 
contains the type
             // converters that is annotated. So by searching for this resource 
WebSphere is able to find


Reply via email to