You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2013/05/28 07:57:53 UTC
svn commit: r1486758 - in /felix/trunk/scr/src:
main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java
Author: djencks
Date: Tue May 28 05:57:52 2013
New Revision: 1486758
URL: http://svn.apache.org/r1486758
Log:
FELIX-3651 escape some characters in bundle location to make valid filters more likely
Added:
felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java (with props)
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java?rev=1486758&r1=1486757&r2=1486758&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java Tue May 28 05:57:52 2013
@@ -594,13 +594,23 @@ public class ConfigurationSupport implem
{
String bsn = bundle.getSymbolicName();
String version = bundle.getVersion().toString();
- String location = bundle.getLocation();
+ String location = escape(bundle.getLocation());
String f = String.format(
"(|(%1$s=%2$s)(%1$s=%2$s|%3$s)(%1$s=%2$s|%3$s|%4$s)(%1$s=%2$s|%3$s|%4$s|%5$s))",
key, pid, bsn, version, location );
return f;
}
+ /**
+ * see core spec 3.2.7. Escape \*() with preceding \
+ * @param value
+ * @return escaped string
+ */
+ static final String escape(String value)
+ {
+ return value.replaceAll( "([\\\\\\*\\(\\)])", "\\\\$1" );
+ }
+
private interface ChangeCount {
long getChangeCount( Configuration configuration, boolean fromEvent, long previous );
Added: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java?rev=1486758&view=auto
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java (added)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java Tue May 28 05:57:52 2013
@@ -0,0 +1,13 @@
+package org.apache.felix.scr.impl.config;
+
+import junit.framework.TestCase;
+
+public class ConfigurationSupportTest extends TestCase
+{
+
+ public void testEscape()
+ {
+ assertEquals("foo \\(&\\)", ConfigurationSupport.escape("foo (&)"));
+ }
+
+}
Propchange: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/config/ConfigurationSupportTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain