private static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
private void test(VarResolver vr, String s, String expected) throws IOException { StringWriter sw = new StringWriter(); vr.resolveTo(s, sw); assertEquals(expected, sw.toString()); assertEquals(expected, vr.resolve(s)); } }
static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
private static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
private static String[] resolveVars(VarResolver vr, String[] in) { String[] out = new String[in.length]; for (int i = 0; i < in.length; i++) out[i] = vr.resolve(in[i]); return out; }
/** * Returns the config file for this servlet. * <p> * Subclasses can override this method to provide their own config file. * </p> * <p> * The default implementation uses the path defined by the {@link RestResource#config() @RestResource.config()} property resolved * by {@link ConfigMgr#DEFAULT}. * </p> * * @return The config file for this servlet. * @throws IOException */ protected ConfigFile createConfigFile() throws IOException { String cf = varResolver.resolve(configPath); if (cf.isEmpty()) return getConfigMgr().create(); return getConfigMgr().get(cf); }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(PatternExtractVar.class, SystemPropertiesVar.class).build(); System.setProperty("PatternExtractVarTest.test", "foo bar"); System.setProperty("PatternExtractVarTest.test2", "size=23"); assertEquals("foo bar", vr.resolve("$PE{$S{PatternExtractVarTest.test},(.*),1}")); assertEquals("size", vr.resolve("$PE{$S{PatternExtractVarTest.test2},(.*)=([0-9]+),1}")); assertEquals("23", vr.resolve("$PE{$S{PatternExtractVarTest.test2},(.*)=([0-9]+),2}")); assertEquals("size=23", vr.resolve("$PE{$S{PatternExtractVarTest.test2},(.*)=([0-9]+),0}")); assertEquals("", vr.resolve("$PE{$S{PatternExtractVarTest.test2},(.*)=([0-9]+),-2}")); assertEquals("", vr.resolve("$PE{$S{PatternExtractVarTest.test2},(.*)=([0-9]+),54}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(PatternMatchVar.class, SystemPropertiesVar.class).build(); System.setProperty("PatternMatchVarTest.test", "foobar"); assertEquals("true", vr.resolve("$PM{$S{PatternMatchVarTest.test},foobar}")); assertEquals("true", vr.resolve("$PM{ $S{ PatternMatchVarTest.test } , foobar }")); assertEquals("false", vr.resolve("$PM{$S{PatternMatchVarTest.test},foobar2}")); assertEquals("false", vr.resolve("$PM{ $S{ PatternMatchVarTest.test } , foobar2 }")); assertEquals("true", vr.resolve("$PM{$S{PatternMatchVarTest.test},foo*}")); assertEquals("true", vr.resolve("$PM{$S{PatternMatchVarTest.test},*bar}")); assertEquals("true", vr.resolve("$PM{$S{PatternMatchVarTest.test},*}")); assertEquals("true", vr.resolve("$PM{$S{PatternMatchVarTest.test},??????}")); assertEquals("false", vr.resolve("$PM{$S{PatternMatchVarTest.test},foox*}")); assertEquals("false", vr.resolve("$PM{$S{PatternMatchVarTest.test},*xbar}")); assertEquals("false", vr.resolve("$PM{$S{PatternMatchVarTest.test},?????}")); assertEquals("false", vr.resolve("$PM{$S{PatternMatchVarTest.test},???????}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(PatternReplaceVar.class, SystemPropertiesVar.class).build(); System.setProperty("PatternReplaceVarTest.test", "foo bar"); System.setProperty("PatternReplaceVarTest.test2", "size=23;display=none;"); // Simple replacements assertEquals("bar bar", vr.resolve("$PR{$S{PatternReplaceVarTest.test},foo,bar}")); assertEquals("coo bar", vr.resolve("$PR{$S{PatternReplaceVarTest.test},^f?,co}")); assertEquals("fine", vr.resolve("$PR{$S{PatternReplaceVarTest.test},oo*,ine}")); assertEquals("FOO FOO", vr.resolve("$PR{$S{PatternReplaceVarTest.test},([a-z]+),FOO}")); // Replacements using matched sub classes assertEquals("size=23px;display=none;", vr.resolve("$PR{$S{PatternReplaceVarTest.test2},(size=([\\d]+)),\\$1px}")); assertEquals("size=??px;display=none;", vr.resolve("$PR{$S{PatternReplaceVarTest.test2},[\\d]+,??px}")); assertEquals("size=23;display=none", vr.resolve("$PR{$S{PatternReplaceVarTest.test2},;\\$,}")); assertEquals("size=23;none=display;", vr.resolve("$PR{$S{PatternReplaceVarTest.test2},;(*)=(*[^;]),;\\$2=\\$1}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(SubstringVar.class, SystemPropertiesVar.class).build(); System.setProperty("SubstringVarTest.test", "foo bar"); // $ST{stringArg, start} examples // Notice that -start also works here assertEquals("o bar", vr.resolve("$ST{$S{SubstringVarTest.test},2}")); assertEquals("", vr.resolve("$ST{$S{SubstringVarTest.test},24}")); assertEquals("foo bar", vr.resolve("$ST{$S{SubstringVarTest.test},0}")); assertEquals("", vr.resolve("$ST{$S{SubstringVarTest.test},-24}")); assertEquals("bar", vr.resolve("$ST{$S{SubstringVarTest.test},-3}")); assertEquals("foo bar", vr.resolve("$ST{$S{SubstringVarTest.test},-7}")); // $ST{stringArg, start, end} assertEquals("foo bar", vr.resolve("$ST{$S{SubstringVarTest.test},0,7}")); assertEquals("oo", vr.resolve("$ST{$S{SubstringVarTest.test},1,3}")); assertEquals("", vr.resolve("$ST{$S{SubstringVarTest.test},-2, 2}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(LenVar.class, SystemPropertiesVar.class).build(); System.setProperty("LenVarTest.test", "foo bar"); System.setProperty("LenVarTest.test2", "1.2.3.4.5"); // $LN{stringArg} examples assertEquals("1", vr.resolve("$LN{J}")); assertEquals("len=7", vr.resolve("len=$LN{$S{LenVarTest.test}}")); // $LN{stringArg, delimiter} examples assertEquals("5", vr.resolve("$LN{$S{LenVarTest.test2},.}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(NotEmptyVar.class, SystemPropertiesVar.class).build(); assertEquals("false", vr.resolve("$NE{}")); assertEquals("false", vr.resolve("$NE{ }")); assertEquals("false", vr.resolve("$NE{ $S{xxx} }")); assertEquals("true", vr.resolve("$NE{ foo }")); } }
@Test public void test2() throws Exception { VarResolver vr = new VarResolverBuilder().vars(BlankVar.class).build(); String t; t = "${y}"; assertEquals("xyx", vr.resolve(t)); t = "${${y}}"; assertEquals("xxyxx", vr.resolve(t)); t = "${${y}${y}}"; assertEquals("xxyxxyxx", vr.resolve(t)); t = "z${z${y}z}z"; assertEquals("zxzxyxzxz", vr.resolve(t)); }
@Test public void testParent() throws Exception { VarResolver vr = new VarResolverBuilder().defaultVars().vars(XMultipartVar.class).build(); String t; System.setProperty("a", "a1"); System.setProperty("b", "b1"); t = "$X{$S{a},$S{b}}"; assertEquals("a1+b1", vr.resolve(t)); t = "$X{$S{a}}"; assertEquals("a1", vr.resolve(t)); }
@Test public void testEscaped$() throws Exception { VarResolver vr = new VarResolverBuilder().vars(BlankVar.class).build(); String t; t = "${y}"; assertEquals("xyx", vr.resolve(t)); t = "\\${y}"; assertEquals("${y}", vr.resolve(t)); t = "foo\\${y}foo"; assertEquals("foo${y}foo", vr.resolve(t)); // TODO - This doesn't work. //t = "${\\${y}}"; //assertEquals("x${y}x", vr.resolve(t)); }
@Test public void test$E() throws Exception { String t; t = "$E{PATH}"; assertFalse(isEmpty(VarResolver.DEFAULT.resolve(t))); }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(UpperCaseVar.class, SystemPropertiesVar.class).build(); System.setProperty("UpperCaseVar.test", "fooBAR"); assertEquals("FOOBAR", vr.resolve("$UC{$S{UpperCaseVar.test}}")); } }
@Test public void test() throws Exception { VarResolver vr = new VarResolverBuilder().vars(LowerCaseVar.class, SystemPropertiesVar.class).build(); System.setProperty("LowerCaseVar.test", "fooBAR"); assertEquals("foobar", vr.resolve("$LC{$S{LowerCaseVar.test}}")); } }