You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2015/01/11 17:46:13 UTC
incubator-tamaya git commit: TAMAYA-43: Registered ResourceResolver
as service TAMAYA-47: Fixed invalid references in circular config example,
fixed invalid resource references,
fixed invalid Resource Module availability check.
Repository: incubator-tamaya
Updated Branches:
refs/heads/master c5d688bdc -> e12eacf68
TAMAYA-43: Registered ResourceResolver as service
TAMAYA-47: Fixed invalid references in circular config example, fixed invalid resource references, fixed invalid Resource Module availability check.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/e12eacf6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/e12eacf6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/e12eacf6
Branch: refs/heads/master
Commit: e12eacf68df87a88f00b511d22096449257ecc39
Parents: c5d688b
Author: anatole <an...@apache.org>
Authored: Sun Jan 11 17:45:58 2015 +0100
Committer: anatole <an...@apache.org>
Committed: Sun Jan 11 17:45:58 2015 +0100
----------------------------------------------------------------------
.../resolver/internal/ClasspathResolver.java | 141 ------------------
.../internal/DefaultExpressionEvaluator.java | 68 ++++++++-
.../tamaya/resolver/internal/FileResolver.java | 2 +-
.../resolver/internal/ResourceResolver.java | 144 +++++++++++++++++++
...pache.tamaya.resolver.spi.ExpressionResolver | 2 +-
.../tamaya/resolver/MyTestPropertySource.java | 10 +-
.../org.apache.tamaya.resource.ResourceResolver | 19 +++
.../internal/ClasspathCollectorTest.java | 4 +-
.../resource/internal/FileCollectorTest.java | 12 +-
9 files changed, 239 insertions(+), 163 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ClasspathResolver.java
----------------------------------------------------------------------
diff --git a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ClasspathResolver.java b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ClasspathResolver.java
deleted file mode 100644
index b0cbe9c..0000000
--- a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ClasspathResolver.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tamaya.resolver.internal;
-
-import org.apache.tamaya.resolver.spi.ExpressionResolver;
-import org.apache.tamaya.resource.ResourceResolver;
-import org.apache.tamaya.spi.ServiceContext;
-
-import javax.annotation.Priority;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Property resolver implementation that tries to load the given resource from the current classpath using the
- * Thread Context classloader, and as fallback from the classloader that loaded this module and system classloader.
- * <br/>
- * If the {@code Resources} module is available this module is used for resolving the expression.
- */
-@Priority(300)
-public final class ClasspathResolver implements ExpressionResolver {
- /**
- * The looger used.
- */
- private final Logger LOG = Logger.getLogger(ClasspathResolver.class.getName());
-
- /**
- * Flag that controls if the Tamaya Resource loader is available.
- */
- private static final boolean IS_RESOURCE_MODULE_AVAILABLE = checkResourceModule();
-
- /**
- * Checks if the Tamaya ResourceLoader can be loaded from the classpath.
- *
- * @return true, if the module is available.
- */
- private static boolean checkResourceModule() {
- try {
- Class.forName("org.apache.tamaya.resource.ResourceResolver.", false, ClasspathResolver.class.getClassLoader());
- return true;
- } catch (Exception e) {
- return false;
- }
- }
-
- @Override
- public String getResolverPrefix() {
- return "resource:";
- }
-
- @Override
- public String evaluate(String expression) {
- List<ClassLoader> classLoaders = new ArrayList<>();
- for (ClassLoader cl : new ClassLoader[]{Thread.currentThread().getContextClassLoader(), getClass().getClassLoader(), ClassLoader.getSystemClassLoader()}) {
- if (!classLoaders.contains(cl)) {
- classLoaders.add(cl);
- }
- }
- return readURL(expression, classLoaders);
- }
-
- private String readURL(String expression, List<ClassLoader> classLoaders) {
- URL url = getUrl(expression, classLoaders);
- BufferedReader in;
- try {
- in = new BufferedReader(
- new InputStreamReader(url.openStream()));
- StringBuilder builder = new StringBuilder();
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- builder.append(inputLine).append("\n");
- }
- in.close();
- return builder.toString();
- } catch (Exception e) {
- LOG.log(Level.FINEST, "Could not resolve URL: " + expression, e);
- return null;
- }
- }
-
- private URL getUrl(String expression, List<ClassLoader> classLoaders) {
- if (IS_RESOURCE_MODULE_AVAILABLE) {
- ResourceResolver resolver = ServiceContext.getInstance().getService(ResourceResolver.class).get();
- for (ClassLoader cl : classLoaders) {
- Collection<URL> resources = resolver.getResources(cl, expression);
- if (!resources.isEmpty()) {
- if (resources.size() != 1) {
- LOG.log(Level.WARNING, "Unresolvable expression (ambiguous resource): " + expression);
- return null;
- }
- return resources.iterator().next();
- }
- }
- } else {
- for (ClassLoader cl : classLoaders) {
- List<URL> resources = new ArrayList<>();
- Enumeration<URL> found;
- try {
- found = cl.getResources(expression);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, "Error resolving expression: " + expression, e);
- continue;
- }
- while (found.hasMoreElements()) {
- resources.add(found.nextElement());
- }
- if (!resources.isEmpty()) {
- if (resources.size() != 1) {
- LOG.log(Level.WARNING, "Unresolvable expression (ambiguous resource): " + expression);
- return null;
- }
- return resources.get(0);
- }
- }
- }
- return null; // no such resource found
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
----------------------------------------------------------------------
diff --git a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
index 0d51753..6fc5da2 100644
--- a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
+++ b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
@@ -110,6 +110,9 @@ public class DefaultExpressionEvaluator implements ExpressionEvaluator {
*/
@Override
public String filterProperty(String key, String valueToBeFiltered){
+ if(valueToBeFiltered==null){
+ return null;
+ }
StringTokenizer tokenizer = new StringTokenizer(valueToBeFiltered, "${}\\", true);
boolean escaped = false;
StringBuilder resolvedValue = new StringBuilder();
@@ -136,7 +139,11 @@ public class DefaultExpressionEvaluator implements ExpressionEvaluator {
}
switch (token) {
case "\\":
- escaped = true;
+ if(!escaped) {
+ escaped = true;
+ continue;
+ }
+ current.append(token);
break;
case "$":
if (current.length() > 0) {
@@ -147,17 +154,13 @@ public class DefaultExpressionEvaluator implements ExpressionEvaluator {
LOG.warning("Invalid expression syntax in: " + valueToBeFiltered);
return valueToBeFiltered;
}
- String subExpression = tokenizer.nextToken();
- if (!"}".equals(tokenizer.nextToken())) {
- LOG.warning("Invalid expression syntax in: " + valueToBeFiltered);
- return valueToBeFiltered;
- }
- // evaluate sub-expression
+ String subExpression = parseSubExpression(tokenizer, valueToBeFiltered);
current.append(evaluateInternal(subExpression));
break;
default:
current.append(token);
}
+ escaped = false;
}
if (current.length() > 0) {
resolvedValue.append(current);
@@ -166,6 +169,57 @@ public class DefaultExpressionEvaluator implements ExpressionEvaluator {
}
/**
+ * Parses subexpression from tokenizer, hereby counting all open and closed brackets, but ignoring any
+ * meta characters.
+ * @param tokenizer the current tokniezer instance
+ * @return the parsed sub expression
+ */
+ private String parseSubExpression(StringTokenizer tokenizer, String valueToBeFiltered) {
+ StringBuilder expression = new StringBuilder();
+ boolean escaped = false;
+ while(tokenizer.hasMoreTokens()) {
+ String token = tokenizer.nextToken();
+ switch (token) {
+ case "\\":
+ if(!escaped) {
+ escaped = true;
+ }
+ else {
+ expression.append(token);
+ continue;
+ }
+ break;
+ case "{":
+ if(!escaped) {
+ LOG.warning("Ignoring not escaped '{' in : " + valueToBeFiltered);
+ }
+ expression.append(token);
+ break;
+ case "$":
+ if(!escaped) {
+ LOG.warning("Ignoring not escaped '$' in : " + valueToBeFiltered);
+ }
+ expression.append(token);
+ break;
+ case "}":
+ if(escaped) {
+ expression.append(token);
+ }
+ else{
+ return expression.toString();
+ }
+ break;
+ default:
+ expression.append(token);
+ break;
+ }
+ escaped = false;
+ }
+ LOG.warning("Invalid expression syntax in: " + valueToBeFiltered + ", expression does not close!");
+ return valueToBeFiltered;
+ }
+
+ /**
* Evalutes the expression parsed, hereby checking for prefixes and trying otherwise all available resolvers,
* based on priority.
* @param unresolvedExpression the parsed, but unresolved expression
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/FileResolver.java
----------------------------------------------------------------------
diff --git a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/FileResolver.java b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/FileResolver.java
index 3459608..07db363 100644
--- a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/FileResolver.java
+++ b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/FileResolver.java
@@ -65,7 +65,7 @@ public final class FileResolver implements ExpressionResolver {
@Override
public String getResolverPrefix() {
- return "resource:";
+ return "file:";
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
----------------------------------------------------------------------
diff --git a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
new file mode 100644
index 0000000..ae8c3f4
--- /dev/null
+++ b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.resolver.internal;
+
+import org.apache.tamaya.resolver.spi.ExpressionResolver;
+import org.apache.tamaya.spi.ServiceContext;
+
+import javax.annotation.Priority;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Property resolver implementation that tries to load the given resource from the current classpath using the
+ * Thread Context classloader, and as fallback from the classloader that loaded this module and system classloader.
+ * <br/>
+ * If the {@code Resources} module is available this module is used for resolving the expression.
+ */
+@Priority(300)
+public final class ResourceResolver implements ExpressionResolver {
+ /**
+ * The looger used.
+ */
+ private final Logger LOG = Logger.getLogger(ResourceResolver.class.getName());
+
+ /**
+ * Flag that controls if the Tamaya Resource loader is available.
+ */
+ private static final boolean IS_RESOURCE_MODULE_AVAILABLE = checkResourceModule();
+
+ /**
+ * Checks if the Tamaya ResourceLoader can be loaded from the classpath.
+ *
+ * @return true, if the module is available.
+ */
+ private static boolean checkResourceModule() {
+ try {
+ Class.forName("org.apache.tamaya.resource.ResourceResolver", false, ResourceResolver.class.getClassLoader());
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ @Override
+ public String getResolverPrefix() {
+ return "resource:";
+ }
+
+ @Override
+ public String evaluate(String expression) {
+ List<ClassLoader> classLoaders = new ArrayList<>();
+ for (ClassLoader cl : new ClassLoader[]{Thread.currentThread().getContextClassLoader(), getClass().getClassLoader(), ClassLoader.getSystemClassLoader()}) {
+ if (!classLoaders.contains(cl)) {
+ classLoaders.add(cl);
+ }
+ }
+ return readURL(expression, classLoaders);
+ }
+
+ private String readURL(String expression, List<ClassLoader> classLoaders) {
+ URL url = getUrl(expression, classLoaders);
+ BufferedReader in;
+ try {
+ in = new BufferedReader(
+ new InputStreamReader(url.openStream()));
+ StringBuilder builder = new StringBuilder();
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ builder.append(inputLine).append("\n");
+ }
+ in.close();
+ return builder.toString();
+ } catch (Exception e) {
+ LOG.log(Level.FINEST, "Could not resolve URL: " + expression, e);
+ return null;
+ }
+ }
+
+ private URL getUrl(String expression, List<ClassLoader> classLoaders) {
+ if (IS_RESOURCE_MODULE_AVAILABLE) {
+ org.apache.tamaya.resource.ResourceResolver resolver = ServiceContext.getInstance().getService(org.apache.tamaya.resource.ResourceResolver.class).get();
+ for (ClassLoader cl : classLoaders) {
+ Collection<URL> resources = resolver.getResources(cl, expression);
+ if (!resources.isEmpty()) {
+ if (resources.size() != 1) {
+ LOG.log(Level.WARNING, "Unresolvable expression (ambiguous resource): " + expression);
+ return null;
+ }
+ return resources.iterator().next();
+ }
+ }
+ } else {
+ for (ClassLoader cl : classLoaders) {
+ List<URL> resources = new ArrayList<>();
+ Enumeration<URL> found;
+ try {
+ found = cl.getResources(expression);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, "Error resolving expression: " + expression, e);
+ continue;
+ }
+ while (found.hasMoreElements()) {
+ resources.add(found.nextElement());
+ }
+ if (!resources.isEmpty()) {
+ if (resources.size() != 1) {
+ LOG.log(Level.WARNING, "Unresolvable expression (ambiguous resource): " + expression);
+ return null;
+ }
+ return resources.get(0);
+ }
+ }
+ if(expression.contains("*") || expression.contains("?")){
+ LOG.warning(() -> "Rouse not found: " + expression + "(Hint: expression contains expression" +
+ " placeholders, but resource module is not loaded.");
+ }
+ }
+ return null; // no such resource found
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/main/resources/META-INF/services/org.apache.tamaya.resolver.spi.ExpressionResolver
----------------------------------------------------------------------
diff --git a/modules/resolver/src/main/resources/META-INF/services/org.apache.tamaya.resolver.spi.ExpressionResolver b/modules/resolver/src/main/resources/META-INF/services/org.apache.tamaya.resolver.spi.ExpressionResolver
index ddfbb09..cb7ced0 100644
--- a/modules/resolver/src/main/resources/META-INF/services/org.apache.tamaya.resolver.spi.ExpressionResolver
+++ b/modules/resolver/src/main/resources/META-INF/services/org.apache.tamaya.resolver.spi.ExpressionResolver
@@ -18,7 +18,7 @@
#
org.apache.tamaya.resolver.internal.SystemPropertyResolver
org.apache.tamaya.resolver.internal.EnvironmentPropertyResolver
-org.apache.tamaya.resolver.internal.ClasspathResolver
+org.apache.tamaya.resolver.internal.ResourceResolver
org.apache.tamaya.resolver.internal.ConfigResolver
org.apache.tamaya.resolver.internal.FileResolver
org.apache.tamaya.resolver.internal.URLResolver
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resolver/src/test/java/org/apache/tamaya/resolver/MyTestPropertySource.java
----------------------------------------------------------------------
diff --git a/modules/resolver/src/test/java/org/apache/tamaya/resolver/MyTestPropertySource.java b/modules/resolver/src/test/java/org/apache/tamaya/resolver/MyTestPropertySource.java
index 506e25e..674eae8 100644
--- a/modules/resolver/src/test/java/org/apache/tamaya/resolver/MyTestPropertySource.java
+++ b/modules/resolver/src/test/java/org/apache/tamaya/resolver/MyTestPropertySource.java
@@ -42,19 +42,19 @@ public class MyTestPropertySource implements PropertySource{
properties.put("Before and After Text (prefixed)", "My Java version is ${sys:java.version}.");
properties.put("Multi-expression", "Java version ${sys:java.version} and line.separator ${line.separator}.");
- properties.put("cp-ref", "${classpath:TestResource.txt}");
+ properties.put("cp-ref", "${resource:Testresource.txt}");
properties.put("file-ref", "${file:"+getFileRefAsString()+"}");
properties.put("res-ref", "${resource:Test?es*ce.txt}");
properties.put("url-ref", "${url:http://www.google.com}");
- properties.put("config-ref", "Expression Only -> ${config:Expression Only}");
- properties.put("config-ref2", "Config Ref 2 -> Ref 1: ${config:config-ref}");
- properties.put("config-ref3", "Config Ref 3 -> Ref 2: ${config:config-ref2}");
+ properties.put("config-ref", "Expression Only -> ${conf:Expression Only}");
+ properties.put("config-ref2", "Config Ref 2 -> Ref 1: ${conf:config-ref}");
+ properties.put("config-ref3", "Config Ref 3 -> Ref 2: ${conf:config-ref2}");
}
private String getFileRefAsString() {
try {
URL res = getClass().getClassLoader().getResource("Testresource2.txt");
- return new File(res.toURI()).getAbsolutePath();
+ return new File(res.toURI()).getAbsolutePath().replaceAll("\\\\","/");
} catch (URISyntaxException e) {
return "Failed to evaluate file: Testresource2.txt";
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resources/src/main/resources/META-INF/services/org.apache.tamaya.resource.ResourceResolver
----------------------------------------------------------------------
diff --git a/modules/resources/src/main/resources/META-INF/services/org.apache.tamaya.resource.ResourceResolver b/modules/resources/src/main/resources/META-INF/services/org.apache.tamaya.resource.ResourceResolver
new file mode 100644
index 0000000..aacd0d5
--- /dev/null
+++ b/modules/resources/src/main/resources/META-INF/services/org.apache.tamaya.resource.ResourceResolver
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy current the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+org.apache.tamaya.resource.internal.DefaultResourceResolver
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
----------------------------------------------------------------------
diff --git a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
index 1527684..7379451 100644
--- a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
+++ b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
@@ -77,9 +77,9 @@ public class ClasspathCollectorTest {
@org.junit.Test
public void testCollectResourcesFromLocalFSPath() throws Exception {
ClasspathCollector cpc = new ClasspathCollector(ClassLoader.getSystemClassLoader());
- Collection<URL> found = cpc.collectFiles("classpath:resources_testRoot/**/*.file");
+ Collection<URL> found = cpc.collectFiles("classpath:resources_testroot/**/*.file");
assertEquals(7, found.size());
- Collection<URL> found2 = cpc.collectFiles("resources_testRoot/**/*.file");
+ Collection<URL> found2 = cpc.collectFiles("resources_testroot/**/*.file");
assertEquals(found, found2);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e12eacf6/modules/resources/src/test/java/org/apache/tamaya/resource/internal/FileCollectorTest.java
----------------------------------------------------------------------
diff --git a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/FileCollectorTest.java b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/FileCollectorTest.java
index 89c1543..41c60c9 100644
--- a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/FileCollectorTest.java
+++ b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/FileCollectorTest.java
@@ -33,8 +33,8 @@ import static org.junit.Assert.assertEquals;
public class FileCollectorTest {
private String getResourceDir() throws URISyntaxException {
- URL res = getClass().getResource("/resources_testroot/");
- return new File(res.toURI()).getParentFile().getAbsolutePath();
+ URL res = getClass().getClassLoader().getResource("resources_testroot/");
+ return new File(res.toURI()).getAbsolutePath();
}
@Test
@@ -49,18 +49,18 @@ public class FileCollectorTest {
@Test
public void testCollectResourcesFromLocalFSPath_WithFolderPlaceholder() throws Exception {
String resDir = getResourceDir();
- Collection<URL> found = FileCollector.collectFiles("file:" + resDir + "/resources_testroot/aa?a/*.file");
+ Collection<URL> found = FileCollector.collectFiles("file:" + resDir + "/aa?a/*.file");
assertEquals(5, found.size());
- Collection<URL> found2 = FileCollector.collectFiles(resDir + "/resources_testroot/aa?a/*.file");
+ Collection<URL> found2 = FileCollector.collectFiles(resDir + "/aa?a/*.file");
assertEquals(found, found2);
}
@Test
public void testCollectResourcesFromLocalFSPath_WithFolderAny() throws Exception {
String resDir = getResourceDir();
- Collection<URL> found = FileCollector.collectFiles("file:" + resDir + "/resources_testroot/b*/b?/*.file");
+ Collection<URL> found = FileCollector.collectFiles("file:" + resDir + "/b*/b?/*.file");
assertEquals(1, found.size());
- Collection<URL> found2 = FileCollector.collectFiles(resDir + "/resources_testroot/b*/b?/*.file");
+ Collection<URL> found2 = FileCollector.collectFiles(resDir + "/b*/b?/*.file");
assertEquals(found, found2);
}