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 2012/01/10 16:03:54 UTC

svn commit: r1229579 - in /camel/branches/camel-2.8.x: ./ components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ components/camel-spring/src/main/java/org/apache/camel/spring/ components/camel-spring/src/test/java/org/apache/camel/spring/...

Author: davsclaus
Date: Tue Jan 10 15:03:53 2012
New Revision: 1229579

URL: http://svn.apache.org/viewvc?rev=1229579&view=rev
Log:
CAMEL-4875: Package scan for RouteBuilder classes should skip non public classes, such as anonymous inner classes.

Added:
    camel/branches/camel-2.8.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/
      - copied from r1229567, camel/branches/camel-2.9.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/
    camel/branches/camel-2.8.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/MyCoolRoute.java
      - copied unchanged from r1229567, camel/branches/camel-2.9.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/MyCoolRoute.java
    camel/branches/camel-2.8.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/SkipNonPublicRouteBuilderTest.java
      - copied unchanged from r1229567, camel/branches/camel-2.9.x/components/camel-spring/src/test/java/org/apache/camel/spring/issues/packagescan/SkipNonPublicRouteBuilderTest.java
    camel/branches/camel-2.8.x/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/packagescan/
      - copied from r1229567, camel/branches/camel-2.9.x/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/packagescan/
    camel/branches/camel-2.8.x/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/packagescan/camelContext.xml
      - copied unchanged from r1229567, camel/branches/camel-2.9.x/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/packagescan/camelContext.xml
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java
    camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 10 15:03:53 2012
@@ -1,2 +1,2 @@
-/camel/branches/camel-2.9.x:1227549,1228229
-/camel/trunk:1227540,1228223
+/camel/branches/camel-2.9.x:1227549,1228229,1229567
+/camel/trunk:1227540,1228223,1229565

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java?rev=1229579&r1=1229578&r2=1229579&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java (original)
+++ camel/branches/camel-2.8.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java Tue Jan 10 15:03:53 2012
@@ -38,14 +38,12 @@ public class PackageScanRouteBuilderFind
     private final String[] packages;
     private final PackageScanClassResolver resolver;
     private final BlueprintContainer blueprintContainer;
-//    private final BeanPostProcessor beanPostProcessor;
 
     public PackageScanRouteBuilderFinder(BlueprintCamelContext camelContext, String[] packages, ClassLoader classLoader,
-                                         /*BeanPostProcessor postProcessor,*/ PackageScanClassResolver resolver) {
+                                         PackageScanClassResolver resolver) {
         this.camelContext = camelContext;
         this.blueprintContainer = camelContext.getBlueprintContainer();
         this.packages = packages;
-//        this.beanPostProcessor = postProcessor;
         this.resolver = resolver;
         // add our provided loader as well
         resolver.addClassLoader(classLoader);
@@ -72,10 +70,6 @@ public class PackageScanRouteBuilderFind
 
             // type is valid so create and instantiate the builder
             RoutesBuilder builder = instantiateBuilder(aClass);
-//            if (beanPostProcessor != null) {
-            // Inject the annotated resource
-//                beanPostProcessor.postProcessBeforeInitialization(builder, builder.toString());
-//            }
             LOG.debug("Adding instantiated RouteBuilder: {}", builder);
             list.add(builder);
         }
@@ -98,9 +92,14 @@ public class PackageScanRouteBuilderFind
     }
 
     /**
-     * Returns true if the object is non-abstract and supports a zero argument constructor
+     * Returns <tt>true</tt>if the class is a public, non-abstract class
      */
     protected boolean isValidClass(Class type) {
+        // should skip non public classes
+        if (!Modifier.isPublic(type.getModifiers())) {
+            return false;
+        }
+
         if (!Modifier.isAbstract(type.getModifiers()) && !type.isInterface()) {
             return true;
         }

Modified: camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java?rev=1229579&r1=1229578&r2=1229579&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java (original)
+++ camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java Tue Jan 10 15:03:53 2012
@@ -94,9 +94,14 @@ public class PackageScanRouteBuilderFind
     }
 
     /**
-     * Returns true if the object is non-abstract and supports a zero argument constructor
+     * Returns <tt>true</tt>if the class is a public, non-abstract class
      */
     protected boolean isValidClass(Class type) {
+        // should skip non public classes
+        if (!Modifier.isPublic(type.getModifiers())) {
+            return false;
+        }
+
         if (!Modifier.isAbstract(type.getModifiers()) && !type.isInterface()) {
             return true;
         }