[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 <[email protected]> Authored: Thu Apr 9 10:32:36 2015 +0100 Committer: Alberto São Marcos <[email protected]> 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>
