Description: Fix FilterImpl for new OSGI 4.3 API.
Author: Damien Raude-Morvan <drazzib@debian.org>
Last-Update: 2011-12-17
Forwarded: no
Index: b/src/main/java/org/apache/felix/utils/filter/FilterImpl.java
===================================================================
--- a/src/main/java/org/apache/felix/utils/filter/FilterImpl.java
+++ b/src/main/java/org/apache/felix/utils/filter/FilterImpl.java
@@ -177,6 +177,23 @@
     public boolean matchCase(Map map) {
         return match0(map);
     }
+    
+    /**
+     * Filter using a <code>Map</code>. This <code>Filter</code> is
+     * executed using the specified <code>Map</code>'s keys and
+     * values. The keys are case insensitively matched with this
+     * <code>Filter</code>.
+     *
+     * @param map The <code>Map</code> whose keys are used in
+     *        the match.
+     * @return <code>true</code> if the <code>Map</code>'s keys and
+     *         values match this filter; <code>false</code> otherwise.
+     * @throws IllegalArgumentException If <code>map</code> contains
+     *         case variants of the same key name.
+     */
+    public boolean matches(Map<String, ?> map) {
+        return matchCase(map);
+    }
 
     /**
      * Returns this <code>Filter</code>'s filter string.
@@ -575,13 +592,13 @@
                 switch (operation) {
                     case APPROX :
                     case EQUAL : {
-                        return ((Version) value1).compareTo(converted) == 0;
+                        return ((Version) value1).compareTo((Version) converted) == 0;
                     }
                     case GREATER: {
-                        return ((Version) value1).compareTo(converted) >= 0;
+                        return ((Version) value1).compareTo((Version) converted) >= 0;
                     }
                     case LESS: {
-                        return ((Version) value1).compareTo(converted) <= 0;
+                        return ((Version) value1).compareTo((Version) converted) <= 0;
                     }
                 }
             } else {
