You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2017/03/15 10:32:25 UTC
svn commit: r1787016 - in /felix/trunk/osgi-r7/scr/src:
main/java/org/apache/felix/scr/impl/inject/Annotations.java
test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java
Author: cziegeler
Date: Wed Mar 15 10:32:24 2017
New Revision: 1787016
URL: http://svn.apache.org/viewvc?rev=1787016&view=rev
Log:
FELIX-5354 : Implement Declarative Service Updates for R7 (RFC 222). Add new mapping rule for 20$ to hyphen
Modified:
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java?rev=1787016&r1=1787015&r2=1787016&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java Wed Mar 15 10:32:24 2017
@@ -209,7 +209,7 @@ public class Annotations
}
- private static final Pattern p = Pattern.compile("(\\$\\$)|(\\$)|(__)|(_)");
+ private static final Pattern p = Pattern.compile("(\\$_\\$)|(\\$\\$)|(\\$)|(__)|(_)");
static String fixup(String name)
{
@@ -217,11 +217,12 @@ public class Annotations
StringBuffer b = new StringBuffer();
while (m.find())
{
- String replacement = "";//null;
- if (m.group(1) != null) replacement = "\\$";
- if (m.group(2) != null) replacement = "";
- if (m.group(3) != null) replacement = "_";
- if (m.group(4) != null) replacement = ".";
+ String replacement = "";
+ if (m.group(1) != null) replacement = "-";
+ if (m.group(2) != null) replacement = "\\$";
+ if (m.group(3) != null) replacement = "";
+ if (m.group(4) != null) replacement = "_";
+ if (m.group(5) != null) replacement = ".";
m.appendReplacement(b, replacement);
}
@@ -238,6 +239,7 @@ public class Annotations
this.values = values;
}
+ @Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
Object value = values.get(method.getName());
Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java?rev=1787016&r1=1787015&r2=1787016&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java Wed Mar 15 10:32:24 2017
@@ -49,7 +49,9 @@ public class AnnotationTest extends Test
assertEquals("foo_bar", Annotations.fixup("foo__bar"));
assertEquals("foo$", Annotations.fixup("foo$$$"));
assertEquals("foo_.", Annotations.fixup("foo___"));
- assertEquals("foo..bar", Annotations.fixup("foo$_$_bar"));
+ assertEquals("foo-.bar", Annotations.fixup("foo$_$_bar"));
+ assertEquals("six-prop", Annotations.fixup("six$_$prop"));
+ assertEquals("seven$.prop", Annotations.fixup("seven$$_$prop"));
}
public enum E1 {a, b, c}
@@ -67,6 +69,7 @@ public class AnnotationTest extends Test
String string();
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
private Bundle mockBundle() throws ClassNotFoundException
{
Bundle b = Mockito.mock(Bundle.class);
@@ -290,7 +293,7 @@ public class AnnotationTest extends Test
private Map<String, Object> arrayValues()
{
- Map<String, Object> values = new HashMap();
+ Map<String, Object> values = new HashMap<String, Object>();
values.put("bool", new boolean[] {true, false});
values.put("byt", new byte[] {12, 3});
values.put("cha", new char[] {'c', 'h', 'a', 'r'});
@@ -326,7 +329,7 @@ public class AnnotationTest extends Test
private List<?> toList(Object value)
{
- List result = new ArrayList();
+ List<Object> result = new ArrayList<Object>();
for (int i = 0; i < Array.getLength(value); i++)
{
result.add(Array.get(value, i));