Repository: incubator-tamaya-extensions
Updated Branches:
  refs/heads/master 1dfc5e6ee -> 1d735ca47


TAMAYA-351


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/1d735ca4
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/1d735ca4
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/1d735ca4

Branch: refs/heads/master
Commit: 1d735ca47c2825e71cff0a2e6661fef0337f0202
Parents: 1dfc5e6
Author: Alex <[email protected]>
Authored: Mon Sep 24 17:59:57 2018 +0200
Committer: Phil Ottlinger <[email protected]>
Committed: Thu Sep 27 12:09:23 2018 +0200

----------------------------------------------------------------------
 .../tamaya/resolver/internal/FileResolver.java  | 34 +++++++++-----------
 .../tamaya/resolver/ConfigResolutionTest.java   | 16 +++++++++
 .../tamaya/resolver/MyTestPropertySource.java   |  9 +++---
 .../src/test/resources/Testresource3.txt        | 19 +++++++++++
 4 files changed, 55 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1d735ca4/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 6050ac2..9837c81 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
@@ -18,21 +18,22 @@
  */
 package org.apache.tamaya.resolver.internal;
 
-import org.apache.tamaya.resolver.spi.ExpressionResolver;
-import org.apache.tamaya.resource.ResourceResolver;
-import org.apache.tamaya.spi.ServiceContextManager;
+import static java.nio.charset.StandardCharsets.UTF_8;
 
-import javax.annotation.Priority;
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.InputStreamReader;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Collection;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import static java.nio.charset.StandardCharsets.UTF_8;
+import javax.annotation.Priority;
+
+import org.apache.tamaya.resolver.spi.ExpressionResolver;
+import org.apache.tamaya.resource.ResourceResolver;
+import org.apache.tamaya.spi.ServiceContextManager;
 
 /**
  * <p>Property resolver implementation that tries to load the given resource 
from the current file system.</p>
@@ -42,7 +43,8 @@ import static java.nio.charset.StandardCharsets.UTF_8;
  */
 @Priority(400)
 public final class FileResolver implements ExpressionResolver {
-    /**
+
+       /**
      * The looger used.
      */
     private final Logger LOG = Logger.getLogger(FileResolver.class.getName());
@@ -77,16 +79,10 @@ public final class FileResolver implements 
ExpressionResolver {
         if(url==null){
             return null;
         }
-        try (InputStreamReader streamReader = new 
InputStreamReader(url.openStream(), UTF_8);
-             BufferedReader bufferedReader = new BufferedReader(streamReader)) 
{
-            StringBuilder builder = new StringBuilder();
-            String inputLine;
-
-            while ((inputLine = bufferedReader.readLine()) != null) {
-                builder.append(inputLine).append("\n");
-            }
-
-            return builder.toString();
+        
+        try {
+               byte[] encoded = Files.readAllBytes(Paths.get(url.toURI()));
+            return new String(encoded, UTF_8);
         } catch (Exception e) {
             LOG.log(Level.FINEST, "Could not resolve URL: " + expression, e);
             return null;
@@ -116,5 +112,5 @@ public final class FileResolver implements 
ExpressionResolver {
         }
         return null; // no such resource found
     }
-
+    
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1d735ca4/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
index f795ee1..051e366 100644
--- 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
+++ 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
@@ -25,6 +25,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
 /**
  * Test class that test resolution of different values as configured within
  * {@link org.apache.tamaya.resolver.MyTestPropertySource} and on test 
resource path.
@@ -103,6 +108,17 @@ public class ConfigResolutionTest {
         assertNotNull(value);
         assertTrue(value.contains("This content comes from 
Testresource2.txt!"));
     }
+    
+    @Test
+    public void testFile_Refs_doNotAppendNewLineAtTheEnd() throws Exception {
+        String value = 
ConfigurationProvider.getConfiguration().get("file3-ref");
+        
+        URI uri = 
getClass().getClassLoader().getResource("Testresource3.txt").toURI();
+        byte[] byteContent = Files.readAllBytes(Paths.get(uri));
+        String content = new String(byteContent, StandardCharsets.UTF_8);
+        
+        assertEquals(content, value);
+    }
 
     @Test
     public void testURL_Refs() {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1d735ca4/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 eee7fa4..8a67159 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
@@ -44,7 +44,8 @@ public class MyTestPropertySource implements PropertySource{
         properties.put("Multi-expression", "Java version ${sys:java.version} 
and line.separator ${line.separator}.");
 
         properties.put("cp-ref", "${resource:Testresource.txt}");
-        properties.put("file-ref", "${file:"+getFileRefAsString()+"}");
+        properties.put("file-ref", 
"${file:"+getFileRefAsString("Testresource2.txt")+"}");
+        properties.put("file3-ref", 
"${file:"+getFileRefAsString("Testresource3.txt")+"}");
         properties.put("res-ref", "${resource:Test?es*ce.txt}");
         properties.put("url-ref", "${url:http://www.google.com}";);
         properties.put("config-ref", "Expression Only -> ${conf:Expression 
Only}");
@@ -63,15 +64,15 @@ public class MyTestPropertySource implements PropertySource{
                 "newlines or \\r returns...YEP!");
     }
 
-    private String getFileRefAsString() {
+    private String getFileRefAsString(String filename) {
         try {
-            URL res = 
getClass().getClassLoader().getResource("Testresource2.txt");
+            URL res = getClass().getClassLoader().getResource(filename);
             if(res==null){
                 return null;
             }
             return new 
File(res.toURI()).getAbsolutePath().replaceAll("\\\\","/");
         } catch (URISyntaxException e) {
-            return "Failed to evaluate file: Testresource2.txt";
+            return "Failed to evaluate file: " + filename;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1d735ca4/modules/resolver/src/test/resources/Testresource3.txt
----------------------------------------------------------------------
diff --git a/modules/resolver/src/test/resources/Testresource3.txt 
b/modules/resolver/src/test/resources/Testresource3.txt
new file mode 100644
index 0000000..22ef52f
--- /dev/null
+++ b/modules/resolver/src/test/resources/Testresource3.txt
@@ -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.
+#
+singleValue

Reply via email to