You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/09/23 12:57:54 UTC

[isis] branch master updated: ISIS-2437: Tooling/Commons: house keeping

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 14a6bfc  ISIS-2437: Tooling/Commons: house keeping
14a6bfc is described below

commit 14a6bfc45dbaa67db68993b5f226767e8aba8a31
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 23 14:57:24 2020 +0200

    ISIS-2437: Tooling/Commons: house keeping
---
 .../isis/commons/internal/base/_Strings.java       | 31 ++++++-----------
 .../apache/isis/commons/internal/base/_Text.java   | 23 +++++++++++--
 .../java/org/apache/isis/tooling/c4/test/Util.java | 40 ----------------------
 .../tooling/adocmodel/test/AsciiDocWriterTest.java | 30 ++++++++--------
 .../apache/isis/tooling/adocmodel/test/Util.java   | 34 ------------------
 .../projectmodel/test/GradleSettingsTest.java      |  8 ++---
 .../services/TranslationsResolverWicket.java       |  6 ++--
 7 files changed, 53 insertions(+), 119 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
index 77db933..3489574 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
@@ -19,16 +19,10 @@
 
 package org.apache.isis.commons.internal.base;
 
-import java.io.BufferedReader;
-import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Scanner;
@@ -56,6 +50,8 @@ import static org.apache.isis.commons.internal.base._With.requiresNotEmpty;
 import static org.apache.isis.commons.internal.functions._Predicates.not;
 
 import lombok.NonNull;
+import lombok.SneakyThrows;
+import lombok.val;
 
 /**
  * <h1>- internal use only -</h1>
@@ -520,21 +516,14 @@ public final class _Strings {
         }
     }
     
-    public static List<String> readAllLines(@Nullable final InputStream input, Charset charset) throws IOException {
-        requires(charset, "charset");
-        if(input==null) {
-            return Collections.emptyList();
-        }
-        try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, charset))) {
-            List<String> result = new ArrayList<>();
-            for (;;) {
-                String line = reader.readLine();
-                if (line == null)
-                    break;
-                result.add(line);
-            }
-            return result;
-        }
+    @SneakyThrows
+    public static String readFromResource(
+            final @NonNull Class<?> resourceLocation, 
+            final @NonNull String resourceName, 
+            final @NonNull Charset charset) {
+        try(val input = resourceLocation.getResourceAsStream(resourceName)){
+            return read(input, charset);    
+        } 
     }
 
     // -- BYTE ARRAY CONVERSION
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Text.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Text.java
index 956fba7..b15bd69 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Text.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Text.java
@@ -19,7 +19,10 @@
 
 package org.apache.isis.commons.internal.base;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.InputStream;
+import java.net.URL;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Scanner;
@@ -106,6 +109,24 @@ public final class _Text {
             return readLines(input, charset);    
         } 
     }
+    
+    @SneakyThrows
+    public static Can<String> readLinesFromUrl(
+            final @NonNull URL url, 
+            final @NonNull Charset charset) {
+        try(val input = url.openStream()){
+            return readLines(input, charset);    
+        } 
+    }
+    
+    @SneakyThrows
+    public static Can<String> readLinesFromFile(
+            final @NonNull File file, 
+            final @NonNull Charset charset) {
+        try(val input = new FileInputStream(file)){
+            return readLines(input, charset);    
+        } 
+    }
 
     // -- NORMALIZING
     
@@ -290,7 +311,5 @@ public final class _Text {
         return line->mapper.apply(indexRef[0]++, line);
     }
     
-    
-    
 
 }
diff --git a/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/Util.java b/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/Util.java
deleted file mode 100644
index 3fb4320..0000000
--- a/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/Util.java
+++ /dev/null
@@ -1,40 +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.isis.tooling.c4.test;
-
-import java.nio.charset.StandardCharsets;
-
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.commons.internal.base._Text;
-
-final class Util {
-    
-    // -- RESOURCE LOADING
-
-    public static Can<String> readResource(Class<?> resourceLocation, String resourceName) {
-        return _Text.readLinesFromResource(resourceLocation, resourceName, StandardCharsets.UTF_8);  
-    }
-    
-    public static Can<String> readResource(Object resourceLocation, String resourceName) {
-        return readResource(resourceLocation.getClass(), resourceName);  
-    }
-    
-
-    
-}
diff --git a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/AsciiDocWriterTest.java b/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/AsciiDocWriterTest.java
index 5bb04f6..466094b 100644
--- a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/AsciiDocWriterTest.java
+++ b/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/AsciiDocWriterTest.java
@@ -19,6 +19,7 @@
 package org.apache.isis.tooling.adocmodel.test;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 
 import org.asciidoctor.Asciidoctor;
@@ -31,6 +32,8 @@ import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.base._Text;
 import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
 
 import static org.apache.isis.tooling.model4adoc.AsciiDocFactory.cell;
@@ -69,8 +72,6 @@ class AsciiDocWriterTest {
     @Test
     void testSimpleTable() throws IOException {
         
-        val adocRef = Util.readResource(this, "simple-table.adoc");
-        
         val table = table(doc);
         table.setTitle("Table");
         
@@ -90,15 +91,14 @@ class AsciiDocWriterTest {
         
         //System.out.println(actualAdoc); debug
         
-        assertEquals(adocRef, actualAdoc);
-        
+        _Text.assertTextEquals(
+                _Text.readLinesFromResource(this.getClass(), "simple-table.adoc", StandardCharsets.UTF_8), 
+                actualAdoc);
     }
     
     @Test
     void testAttributedTable() throws IOException {
         
-        val adocRef = Util.readResource(this, "attributed-table.adoc");
-        
         val table = table(doc);
         table.setTitle("Some table");
         table.setAttribute("cols", "3m,2a", true);
@@ -114,31 +114,32 @@ class AsciiDocWriterTest {
         
         //System.out.println(actualAdoc); // debug
         
-        assertEquals(adocRef, actualAdoc);
+        _Text.assertTextEquals(
+                _Text.readLinesFromResource(this.getClass(), "attributed-table.adoc", StandardCharsets.UTF_8), 
+                actualAdoc);
         
     }
     
     @Test @Disabled
     void testSimpleTableModel() throws IOException {
     
-        val adocRef = Util.readResource(this, "simple-table.adoc");
+        val adocRef = _Strings.readFromResource(this.getClass(), "simple-table.adoc", StandardCharsets.UTF_8);
         val asciidoctor = Asciidoctor.Factory.create();
         val refDoc = asciidoctor.load(adocRef, new HashMap<String, Object>());
         
         String actualAdoc = AsciiDocWriter.toString(refDoc);
         
-        debug(refDoc);
+        //debug(refDoc);
         
-        System.out.println(actualAdoc);
+        //System.out.println(actualAdoc); //debug
         
-        assertEquals(adocRef, actualAdoc);
+        _Text.assertTextEquals(adocRef, actualAdoc);
     }
     
-    
     @Test
     void testAttributedTableModel() throws IOException {
     
-        val adocRef = Util.readResource(this, "attributed-table.adoc");
+        val adocRef = _Strings.readFromResource(this.getClass(), "attributed-table.adoc", StandardCharsets.UTF_8);
         val asciidoctor = Asciidoctor.Factory.create();
         val refDoc = asciidoctor.load(adocRef, new HashMap<String, Object>());
         
@@ -148,9 +149,10 @@ class AsciiDocWriterTest {
         
         //System.out.println(actualAdoc); // debug
         
-        assertEquals(adocRef, actualAdoc);
+        _Text.assertTextEquals(adocRef, actualAdoc);
     }
     
+    @SuppressWarnings("unused")
     private static void debug(Document doc) {
         val refTable = (Table)doc.getBlocks().get(0);
         val refCol = refTable.getColumns().get(0);
diff --git a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/Util.java b/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/Util.java
deleted file mode 100644
index 2f89f7f..0000000
--- a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/adocmodel/test/Util.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.isis.tooling.adocmodel.test;
-
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Scanner;
-
-import javax.annotation.Nullable;
-
-final class Util {
-    
-    // -- RESOURCE LOADING
-
-    public static String read(final @Nullable InputStream input) {
-        if(input==null) {
-            return "";
-        }
-        // see https://stackoverflow.com/questions/309424/how-to-read-convert-an-inputstream-into-a-string-in-java
-        try(Scanner scanner = new Scanner(input, StandardCharsets.UTF_8.name())){
-            scanner.useDelimiter("\\A");
-            return scanner.hasNext() ? scanner.next().replace("\r", "") : "";
-        }
-    }
-    
-    public static String readResource(Class<?> location, String name) {
-        return read(location.getResourceAsStream(name));  
-    }
-    
-    public static String readResource(Object location, String name) {
-        return readResource(location.getClass(), name);  
-    }
-    
-
-    
-}
diff --git a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
index 6ff7df1..353a135 100644
--- a/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
+++ b/tooling/projectmodel/src/test/java/org/apache/isis/tooling/projectmodel/test/GradleSettingsTest.java
@@ -19,7 +19,6 @@
 package org.apache.isis.tooling.projectmodel.test;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
@@ -33,7 +32,7 @@ import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.base._Text;
 import org.apache.isis.tooling.projectmodel.gradle.GradleSettings;
 import org.apache.isis.tooling.projectmodel.gradle.GradleSettingsFactory;
 import org.apache.isis.tooling.projectmodel.gradle.GradleSettingsWriter;
@@ -98,12 +97,11 @@ class GradleSettingsTest extends ProjectModelTestAbstract {
     private void checkBuildFile(File buildFile, Set<String> knownBuildArtifactNames) {
         //System.out.println(String.format("checking %s", buildFile.getAbsolutePath()));
         
-        val lines = _Strings.readAllLines(new FileInputStream(buildFile), StandardCharsets.UTF_8);
-        
+        val lines = _Text.readLinesFromFile(buildFile, StandardCharsets.UTF_8);
         for(val line : lines) {
             checkBuildFileLine(buildFile, line, knownBuildArtifactNames);
         }
-        
+       
     }
 
     private void checkBuildFileLine(File buildFile, String line, Set<String> knownBuildArtifactNames) {
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index 1777e33..695fbfe 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -38,7 +38,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.i18n.TranslationsResolver;
-import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.base._Text;
 import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
 import lombok.val;
@@ -96,8 +96,8 @@ public class TranslationsResolverWicket implements TranslationsResolver {
             return null;
         }
         
-        val lines = _Strings.readAllLines(url.openStream(), StandardCharsets.UTF_8);
-        val acceptedLines = lines.stream()
+        val acceptedLines = _Text.readLinesFromUrl(url, StandardCharsets.UTF_8)
+        .stream()
         .filter(input->input != null && nonEmpty.matcher(input).matches())
         .collect(Collectors.toList());