This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.commons.osgi-2.0.6 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-osgi.git
commit 8a4075ec8e5d98f5f65f7af0eb87371f55f11b4b Author: Carsten Ziegeler <[email protected]> AuthorDate: Tue Mar 9 14:08:28 2010 +0000 SLING-1431 : Utility method to get the service ranking git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/osgi@920882 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/sling/commons/osgi/OsgiUtil.java | 28 ++++++++++++++++++++++ .../apache/sling/commons/osgi/OsgiUtilTest.java | 11 +++++++++ 2 files changed, 39 insertions(+) diff --git a/src/main/java/org/apache/sling/commons/osgi/OsgiUtil.java b/src/main/java/org/apache/sling/commons/osgi/OsgiUtil.java index b7a5e06..d95c82f 100644 --- a/src/main/java/org/apache/sling/commons/osgi/OsgiUtil.java +++ b/src/main/java/org/apache/sling/commons/osgi/OsgiUtil.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import org.osgi.framework.Bundle; +import org.osgi.framework.Constants; import org.osgi.framework.ServiceReference; import org.osgi.service.event.Event; import org.osgi.service.event.EventConstants; @@ -290,4 +291,31 @@ public class OsgiUtil { return new Event(topic, table); } + /** + * Return the service ranking + * @param props A property map + * @return The service ranking. + * @since 2.0.6 + */ + public static int getServiceRanking(final Map<String, Object> props) { + int ranking = 0; + if ( props != null && props.get(Constants.SERVICE_RANKING) instanceof Integer) { + ranking = (Integer)props.get(Constants.SERVICE_RANKING); + } + return ranking; + } + + /** + * Return the service ranking + * @param ref The service reference. + * @return The service ranking. + * @since 2.0.6 + */ + public static int getServiceRanking(final ServiceReference ref) { + int ranking = 0; + if ( ref.getProperty(Constants.SERVICE_RANKING) instanceof Integer) { + ranking = (Integer)ref.getProperty(Constants.SERVICE_RANKING); + } + return ranking; + } } diff --git a/src/test/java/org/apache/sling/commons/osgi/OsgiUtilTest.java b/src/test/java/org/apache/sling/commons/osgi/OsgiUtilTest.java index f43fbfd..d1aa341 100644 --- a/src/test/java/org/apache/sling/commons/osgi/OsgiUtilTest.java +++ b/src/test/java/org/apache/sling/commons/osgi/OsgiUtilTest.java @@ -19,12 +19,15 @@ package org.apache.sling.commons.osgi; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.TestCase; +import org.osgi.framework.Constants; + public class OsgiUtilTest extends TestCase { @SuppressWarnings("deprecation") @@ -129,4 +132,12 @@ public class OsgiUtilTest extends TestCase { } } } + + public void testRanking() { + assertEquals(0, OsgiUtil.getServiceRanking((Map<String, Object>)null)); + final Map<String, Object> stringMap = Collections.singletonMap(Constants.SERVICE_RANKING, (Object)"1"); + assertEquals(0, OsgiUtil.getServiceRanking(stringMap)); + final Map<String, Object> intMap = Collections.singletonMap(Constants.SERVICE_RANKING, (Object)1); + assertEquals(1, OsgiUtil.getServiceRanking(intMap)); + } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
