You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/09/20 21:06:56 UTC

[2/3] karaf-cellar git commit: [KARAF-3646] moved away from java.lang.isAssignableFrom in favor of org.apache.commons.lang3.ClassUtils.isAssignable;

[KARAF-3646] moved away from java.lang.isAssignableFrom in favor of org.apache.commons.lang3.ClassUtils.isAssignable;


Project: http://git-wip-us.apache.org/repos/asf/karaf-cellar/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-cellar/commit/da1fdb30
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/da1fdb30
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/da1fdb30

Branch: refs/heads/master
Commit: da1fdb304980f29a8b887efad1dec72c0c1aeef3
Parents: 2b4997c
Author: Alberto São Marcos <al...@gmail.com>
Authored: Thu Apr 9 10:32:36 2015 +0100
Committer: Alberto São Marcos <al...@gmail.com>
Committed: Thu Apr 9 10:38:34 2015 +0100

----------------------------------------------------------------------
 assembly/src/main/resources/features.xml                 |  1 +
 dosgi/pom.xml                                            |  4 ++++
 .../karaf/cellar/dosgi/RemoteServiceCallHandler.java     | 11 ++++++-----
 pom.xml                                                  |  8 ++++++++
 4 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/da1fdb30/assembly/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/resources/features.xml b/assembly/src/main/resources/features.xml
index 0a81fe4..e0408e6 100644
--- a/assembly/src/main/resources/features.xml
+++ b/assembly/src/main/resources/features.xml
@@ -74,6 +74,7 @@
 
     <feature name="cellar-dosgi" description="DOSGi support" version="${project.version}" resolver="(obr)">
         <feature version="${project.version}">cellar-core</feature>
+        <bundle start-level="30" dependency="true">wrap:mvn:org.apache.commons/commons-lang3/${apache.commons.lang3.version}</bundle>
         <bundle start-level="40">mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.dosgi/${project.version}</bundle>
     </feature>
 

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/da1fdb30/dosgi/pom.xml
----------------------------------------------------------------------
diff --git a/dosgi/pom.xml b/dosgi/pom.xml
index 54233b6..d39d1d8 100644
--- a/dosgi/pom.xml
+++ b/dosgi/pom.xml
@@ -53,6 +53,10 @@
             <artifactId>org.osgi.compendium</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
 
         <!-- Logging Dependencies -->
         <dependency>

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/da1fdb30/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
----------------------------------------------------------------------
diff --git a/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java b/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
index e879f7f..78a38fd 100644
--- a/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
+++ b/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
@@ -13,6 +13,7 @@
  */
 package org.apache.karaf.cellar.dosgi;
 
+import org.apache.commons.lang3.ClassUtils;
 import org.apache.karaf.cellar.core.CellarSupport;
 import org.apache.karaf.cellar.core.Configurations;
 import org.apache.karaf.cellar.core.control.BasicSwitch;
@@ -30,6 +31,7 @@ import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Arrays;
 
 /**
  * Handler for cluster remote service call event.
@@ -123,13 +125,12 @@ public class RemoteServiceCallHandler extends CellarSupport implements EventHand
                 if (remoteMethod.getName().equals(event.getMethod()) && remoteMethod.getParameterTypes().length == eventParamTypes.length) {
                     boolean allParamsFound = true;
                     for (int i = 0; i < remoteMethod.getParameterTypes().length; i++) {
-                        allParamsFound = allParamsFound && remoteMethod.getParameterTypes()[i].isAssignableFrom(eventParamTypes[i]);
+                        allParamsFound = allParamsFound && ClassUtils.isAssignable(eventParamTypes[i], remoteMethod.getParameterTypes()[i]);
                     }
+
+                    // if already found a matching method, no need to continue looking for one
                     if (allParamsFound) {
                         result = remoteMethod;
-                    }
-                    // if already found a matching method, no need to continue looking for one
-                    if (result != null) {
                         break;
                     }
                 }
@@ -140,7 +141,7 @@ public class RemoteServiceCallHandler extends CellarSupport implements EventHand
 
         //if method was not found go out with a bang
         if (result == null) {
-            throw new NoSuchMethodException();
+            throw new NoSuchMethodException(String.format("No match for method [%s] %s", event.getMethod(), Arrays.toString(eventParamTypes)));
         }
 
         return result;

http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/da1fdb30/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 9b1507d..28e794f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,7 @@
         <osgi.version>5.0.0</osgi.version>
         <osgi.compendium.version>5.0.0</osgi.compendium.version>
         <slf4j.version>1.7.7</slf4j.version>
+        <apache.commons.lang3.version>3.3.2</apache.commons.lang3.version>
     </properties>
 
     <modules>
@@ -289,6 +290,13 @@
                 <version>${joda-time.version}</version>
             </dependency>
 
+          <!--Apache common-lang-->
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>${apache.commons.lang3.version}</version>
+            </dependency>
+
             <!-- Kubernetes -->
             <dependency>
                 <groupId>io.fabric8</groupId>