You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2010/07/13 21:49:43 UTC
svn commit: r963840 - in /felix/trunk/framework/src:
main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java
Author: rickhall
Date: Tue Jul 13 19:49:42 2010
New Revision: 963840
URL: http://svn.apache.org/viewvc?rev=963840&view=rev
Log:
Need to special case substring matching when there is no wildcard
to simply perform equals() comparison. (FELIX-2473)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
felix/trunk/framework/src/test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java?rev=963840&r1=963839&r2=963840&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java Tue Jul 13 19:49:42 2010
@@ -471,6 +471,16 @@ loop: for (;;)
boolean result = true;
int len = pieces.size();
+ // Special case, if there is only one piece, then
+ // we must perform an equality test.
+ if (len == 1)
+ {
+ return s.equals(pieces.get(0));
+ }
+
+ // Otherwise, check whether the pieces match
+ // the specified string.
+
int index = 0;
loop: for (int i = 0; i < len; i++)
Modified: felix/trunk/framework/src/test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java?rev=963840&r1=963839&r2=963840&view=diff
==============================================================================
--- felix/trunk/framework/src/test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java (original)
+++ felix/trunk/framework/src/test/java/org/apache/felix/framework/capabilityset/SimpleFilterTest.java Tue Jul 13 19:49:42 2010
@@ -27,6 +27,16 @@ public class SimpleFilterTest extends Te
{
List<String> pieces;
+ pieces = SimpleFilter.parseSubstring("*");
+ assertTrue("Should match!", SimpleFilter.compareSubstring(pieces, ""));
+
+ pieces = SimpleFilter.parseSubstring("foo");
+ assertFalse("Should not match!", SimpleFilter.compareSubstring(pieces, ""));
+
+ pieces = SimpleFilter.parseSubstring("");
+ assertTrue("Should match!", SimpleFilter.compareSubstring(pieces, ""));
+ assertFalse("Should not match!", SimpleFilter.compareSubstring(pieces, "foo"));
+
pieces = SimpleFilter.parseSubstring("foo");
assertTrue("Should match!", SimpleFilter.compareSubstring(pieces, "foo"));
assertFalse("Should not match!", SimpleFilter.compareSubstring(pieces, "barfoo"));