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 2009/06/22 08:13:01 UTC

svn commit: r787148 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/impl/ components/camel-osgi/src/main/java/org/apache/camel/osgi/

Author: davsclaus
Date: Mon Jun 22 06:13:01 2009
New Revision: 787148

URL: http://svn.apache.org/viewvc?rev=787148&view=rev
Log:
CAMEL-1725: improved logging when using osgi or not.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/WebSpherePacakageScanClassResolver.java
    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java
    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java?rev=787148&r1=787147&r2=787148&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java Mon Jun 22 06:13:01 2009
@@ -48,7 +48,7 @@
  */
 public class DefaultPackageScanClassResolver implements PackageScanClassResolver {
 
-    protected static final transient Log LOG = LogFactory.getLog(DefaultPackageScanClassResolver.class);
+    protected final transient Log log = LogFactory.getLog(getClass());
     private Set<ClassLoader> classLoaders;
     private Set<PackageScanFilter> scanFilters;
 
@@ -68,8 +68,8 @@
             classLoaders = new HashSet<ClassLoader>();
             ClassLoader ccl = Thread.currentThread().getContextClassLoader();
             if (ccl != null) {
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("The thread context class loader: " + ccl + "  is used to load the class");
+                if (log.isTraceEnabled()) {
+                    log.trace("The thread context class loader: " + ccl + "  is used to load the class");
                 }
                 classLoaders.add(ccl);
             }
@@ -88,8 +88,8 @@
             return Collections.EMPTY_SET;
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Searching for annotations of " + annotation.getName() + " in packages: " + Arrays.asList(packageNames));
+        if (log.isDebugEnabled()) {
+            log.debug("Searching for annotations of " + annotation.getName() + " in packages: " + Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new AnnotatedWithPackageScanFilter(annotation, true));
@@ -98,8 +98,8 @@
             find(test, pkg, classes);
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Found: " + classes);
+        if (log.isDebugEnabled()) {
+            log.debug("Found: " + classes);
         }
 
         return classes;
@@ -111,8 +111,8 @@
             return Collections.EMPTY_SET;
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Searching for annotations of " + annotations + " in packages: " + Arrays.asList(packageNames));
+        if (log.isDebugEnabled()) {
+            log.debug("Searching for annotations of " + annotations + " in packages: " + Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new AnnotatedWithAnyPackageScanFilter(annotations, true));
@@ -121,8 +121,8 @@
             find(test, pkg, classes);
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Found: " + classes);
+        if (log.isDebugEnabled()) {
+            log.debug("Found: " + classes);
         }
 
         return classes;
@@ -134,8 +134,8 @@
             return Collections.EMPTY_SET;
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Searching for implementations of " + parent.getName() + " in packages: " + Arrays.asList(packageNames));
+        if (log.isDebugEnabled()) {
+            log.debug("Searching for implementations of " + parent.getName() + " in packages: " + Arrays.asList(packageNames));
         }
 
         PackageScanFilter test = getCompositeFilter(new AssignableToPackageScanFilter(parent));
@@ -144,8 +144,8 @@
             find(test, pkg, classes);
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Found: " + classes);
+        if (log.isDebugEnabled()) {
+            log.debug("Found: " + classes);
         }
 
         return classes;
@@ -162,8 +162,8 @@
             find(filter, pkg, classes);
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Found: " + classes);
+        if (log.isDebugEnabled()) {
+            log.debug("Found: " + classes);
         }
 
         return classes;
@@ -180,8 +180,8 @@
     }
 
     protected void find(PackageScanFilter test, String packageName, ClassLoader loader, Set<Class> classes) {
-        if (LOG.isTraceEnabled()) {
-            LOG.trace("Searching for: " + test + " in package: " + packageName + " using classloader: "
+        if (log.isTraceEnabled()) {
+            log.trace("Searching for: " + test + " in package: " + packageName + " using classloader: "
                     + loader.getClass().getName());
         }
 
@@ -189,10 +189,10 @@
         try {
             urls = getResources(loader, packageName);
             if (!urls.hasMoreElements()) {
-                LOG.trace("No URLs returned by classloader");
+                log.trace("No URLs returned by classloader");
             }
         } catch (IOException ioe) {
-            LOG.warn("Could not read package: " + packageName, ioe);
+            log.warn("Could not read package: " + packageName, ioe);
             return;
         }
 
@@ -200,14 +200,14 @@
             URL url = null;
             try {
                 url = urls.nextElement();
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("URL from classloader: " + url);
+                if (log.isTraceEnabled()) {
+                    log.trace("URL from classloader: " + url);
                 }
 
                 String urlPath = url.getFile();
                 urlPath = URLDecoder.decode(urlPath, "UTF-8");
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("Decoded urlPath: " + urlPath);
+                if (log.isTraceEnabled()) {
+                    log.trace("Decoded urlPath: " + urlPath);
                 }
 
                 // If it's a file in a directory, trim the stupid file: spec
@@ -217,7 +217,7 @@
 
                 // osgi bundles should be skipped
                 if (url.toString().startsWith("bundle:") || urlPath.startsWith("bundle:")) {
-                    LOG.trace("It's a virtual osgi bundle, skipping");
+                    log.trace("It's a virtual osgi bundle, skipping");
                     continue;
                 }
 
@@ -226,21 +226,21 @@
                     urlPath = urlPath.substring(0, urlPath.indexOf('!'));
                 }
 
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("Scanning for classes in [" + urlPath + "] matching criteria: " + test);
+                if (log.isTraceEnabled()) {
+                    log.trace("Scanning for classes in [" + urlPath + "] matching criteria: " + test);
                 }
 
                 File file = new File(urlPath);
                 if (file.isDirectory()) {
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug("Loading from directory: " + file);
+                    if (log.isDebugEnabled()) {
+                        log.debug("Loading from directory: " + file);
                     }
                     loadImplementationsInDirectory(test, packageName, file, classes);
                 } else {
                     InputStream stream;
                     if (urlPath.startsWith("http:")) {
                         // load resources using http such as java webstart
-                        LOG.debug("The current jar is accessed via http");
+                        log.debug("The current jar is accessed via http");
                         URL urlStream = new URL(urlPath);
                         URLConnection con = urlStream.openConnection();
                         // disable cache mainly to avoid jar file locking on Windows
@@ -250,13 +250,13 @@
                         stream = new FileInputStream(file);
                     }
 
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug("Loading from jar: " + file);
+                    if (log.isDebugEnabled()) {
+                        log.debug("Loading from jar: " + file);
                     }
                     loadImplementationsInJar(test, packageName, stream, urlPath, classes);
                 }
             } catch (IOException ioe) {
-                LOG.warn("Could not read entries in url: " + url, ioe);
+                log.warn("Could not read entries in url: " + url, ioe);
             }
         }
     }
@@ -273,8 +273,8 @@
      * @throws IOException is thrown by the classloader
      */
     protected Enumeration<URL> getResources(ClassLoader loader, String packageName) throws IOException {
-        if (LOG.isTraceEnabled()) {
-            LOG.trace("Getting resource URL for package: " + packageName + " with classloader: " + loader);
+        if (log.isTraceEnabled()) {
+            log.trace("Getting resource URL for package: " + packageName + " with classloader: " + loader);
         }
         return loader.getResources(packageName);
     }
@@ -350,10 +350,10 @@
                 }
             }
         } catch (IOException ioe) {
-            LOG.error("Could not search jar file '" + urlPath + "' for classes matching criteria: " + test
+            log.error("Could not search jar file '" + urlPath + "' for classes matching criteria: " + test
                 + " due to an IOException: " + ioe.getMessage(), ioe);
         } finally {
-            ObjectHelper.close(jarStream, urlPath, LOG);
+            ObjectHelper.close(jarStream, urlPath, log);
         }
     }
 
@@ -372,35 +372,35 @@
             Set<ClassLoader> set = getClassLoaders();
             boolean found = false;
             for (ClassLoader classLoader : set) {
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("Testing for class " + externalName + " matches criteria [" + test + "] using ClassLoader:" + classLoader);
+                if (log.isTraceEnabled()) {
+                    log.trace("Testing for class " + externalName + " matches criteria [" + test + "] using ClassLoader:" + classLoader);
                 }
                 try {
                     Class type = classLoader.loadClass(externalName);
-                    if (LOG.isTraceEnabled()) {
-                        LOG.trace("Loaded the class: " + type + " in classloader: " + classLoader);
+                    if (log.isTraceEnabled()) {
+                        log.trace("Loaded the class: " + type + " in classloader: " + classLoader);
                     }
                     if (test.matches(type)) {
-                        if (LOG.isTraceEnabled()) {
-                            LOG.trace("Found class: " + type + " which matches the filter in classloader: " + classLoader);
+                        if (log.isTraceEnabled()) {
+                            log.trace("Found class: " + type + " which matches the filter in classloader: " + classLoader);
                         }
                         classes.add(type);
                     }
                     found = true;
                     break;
                 } catch (ClassNotFoundException e) {
-                    LOG.debug("Could not find class '" + fqn + "' in classloader: " + classLoader
+                    log.debug("Could not find class '" + fqn + "' in classloader: " + classLoader
                         + ". Reason: " + e, e);
                 } catch (NoClassDefFoundError e) {
-                    LOG.debug("Could not find the class defintion '" + fqn + "' in classloader: " + classLoader
+                    log.debug("Could not find the class defintion '" + fqn + "' in classloader: " + classLoader
                               + ". Reason: " + e, e);
                 }
             }
             if (!found) {
-                LOG.warn("Could not find class '" + fqn + "' in any classloaders: " + set);
+                log.warn("Could not find class '" + fqn + "' in any classloaders: " + set);
             }
         } catch (Exception e) {
-            LOG.warn("Could not examine class '" + fqn + "' due to a " + e.getClass().getName()
+            log.warn("Could not examine class '" + fqn + "' due to a " + e.getClass().getName()
                 + " with message: " + e.getMessage(), e);
         }
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/WebSpherePacakageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/WebSpherePacakageScanClassResolver.java?rev=787148&r1=787147&r2=787148&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/WebSpherePacakageScanClassResolver.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/WebSpherePacakageScanClassResolver.java Mon Jun 22 06:13:01 2009
@@ -63,7 +63,7 @@
         // 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

Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java?rev=787148&r1=787147&r2=787148&view=diff
==============================================================================
--- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java (original)
+++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java Mon Jun 22 06:13:01 2009
@@ -45,10 +45,8 @@
                     LOG.debug("Loading converter class: " + ObjectHelper.name(type));
                 }
                 loadConverterMethods(registry, type);
-             }
-         }
+            }
+        }
     }
-    
-    
 
 }

Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java?rev=787148&r1=787147&r2=787148&view=diff
==============================================================================
--- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java (original)
+++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java Mon Jun 22 06:13:01 2009
@@ -24,6 +24,8 @@
 
 import org.apache.camel.impl.DefaultPackageScanClassResolver;
 import org.apache.camel.spi.PackageScanFilter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.springframework.osgi.util.BundleDelegatingClassLoader;
@@ -50,13 +52,13 @@
         int classesSize = classes.size(); 
         if (osgiClassLoader != null) {
             // if we have an osgi bundle loader use this one first
-            LOG.debug("Using only osgi bundle classloader");
+            log.debug("Using only osgi bundle classloader");
             findInOsgiClassLoader(test, packageName, osgiClassLoader, classes);
         }
         
         if (classes.size() == classesSize) {
             // Using the regular classloaders as a fallback
-            LOG.debug("Using only regular classloaders");
+            log.debug("Using only regular classloaders");
             for (ClassLoader classLoader : set.toArray(new ClassLoader[set.size()])) {
                 if (!isOsgiClassloader(classLoader)) {
                     find(test, packageName, classLoader, classes);
@@ -69,13 +71,13 @@
         try {
             Method mth = osgiClassLoader.getClass().getMethod("getBundle", new Class[]{});
             if (mth != null) {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("Loading from osgi bundle using classloader: " + osgiClassLoader);
+                if (log.isDebugEnabled()) {
+                    log.debug("Loading from osgi bundle using classloader: " + osgiClassLoader);
                 }
                 loadImplementationsInBundle(test, packageName, osgiClassLoader, mth, classes);
             }
         } catch (NoSuchMethodException e) {
-            LOG.warn("It's not an osgi bundle classloader: " + osgiClassLoader);
+            log.warn("It's not an osgi bundle classloader: " + osgiClassLoader);
         }
     }
 
@@ -118,6 +120,9 @@
     }
 
     private static final class OsgiUtil {
+
+        private static final transient Log LOG = LogFactory.getLog(OsgiUtil.class);
+
         private OsgiUtil() {
             // Helper class
         }