You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2016/03/21 17:57:59 UTC
svn commit: r1736040 - in /felix/trunk/gogo/runtime/src:
main/java/org/apache/felix/gogo/runtime/Expander.java
test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
Author: gnodet
Date: Mon Mar 21 16:57:58 2016
New Revision: 1736040
URL: http://svn.apache.org/viewvc?rev=1736040&view=rev
Log:
Support for raw variables
Modified:
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java?rev=1736040&r1=1736039&r2=1736040&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java (original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java Mon Mar 21 16:57:58 2016
@@ -76,6 +76,7 @@ public class Expander extends BaseTokeni
private boolean semanticJoin;
private boolean unquote;
private boolean asPattern;
+ private boolean rawVariable;
public Expander(CharSequence text, Evaluate evaluate,
boolean inQuote,
@@ -113,6 +114,9 @@ public class Expander extends BaseTokeni
private Object expand() throws Exception
{
Object expanded = doExpand();
+ if (rawVariable) {
+ return expanded;
+ }
Stream<Object> stream = expanded instanceof Collection
? asCollection(expanded).stream()
: Stream.of(expanded);
@@ -849,6 +853,7 @@ public class Expander extends BaseTokeni
{
String name = text.subSequence(start, index - 1).toString();
val = evaluate.get(name);
+ rawVariable = true;
}
}
}
Modified: felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java?rev=1736040&r1=1736039&r2=1736040&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java (original)
+++ felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java Mon Mar 21 16:57:58 2016
@@ -38,7 +38,9 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
@@ -181,6 +183,16 @@ public class TestTokenizer
}
@Test
+ public void testRawVariable() throws Exception
+ {
+ vars.put("a1", Arrays.asList("a", 1));
+
+ assertSame(vars.get("a1"), expand("$a1"));
+ assertNotSame(vars.get("a1"), expand("${a1}"));
+ assertEquals(vars.get("a1"), expand("${a1}"));
+ }
+
+ @Test
public void testSubscripts() throws Exception
{
Map<String, String> map = new LinkedHashMap<>();