SLING-7258 - org.apache.sling.starter.startup.impl.StartupFilter should return 503 when Sling is starting

* optimised the reading of the embedded HTML page
diff --git a/pom.xml b/pom.xml
index abae456..c4c6121 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,9 +80,8 @@
             <version>1.0.0</version>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/starter/startup/impl/StartupFilter.java b/src/main/java/org/apache/sling/starter/startup/impl/StartupFilter.java
index 9b361f8..9a92990 100644
--- a/src/main/java/org/apache/sling/starter/startup/impl/StartupFilter.java
+++ b/src/main/java/org/apache/sling/starter/startup/impl/StartupFilter.java
@@ -16,9 +16,13 @@
  */
 package org.apache.sling.starter.startup.impl;
 
+import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.stream.Collectors;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
@@ -27,12 +31,39 @@
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class StartupFilter implements Filter {
 
+    private static final Logger LOG = LoggerFactory.getLogger(StartupFilter.class);
+
     private String content;
 
+    StartupFilter() {
+        if (content == null) {
+            InputStream is = StartupFilter.class.getClassLoader().getResourceAsStream("index.html");
+            if (is != null) {
+                BufferedReader buffer = null;
+                try {
+                    buffer = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+                    content = buffer.lines().collect(Collectors.joining(System.lineSeparator()));
+                } catch (UnsupportedEncodingException e) {
+                    LOG.error("Cannot read embedded HTML page.", e);
+                } finally {
+                    if (buffer != null) {
+                        try {
+                            buffer.close();
+                        } catch (IOException e) {
+                            LOG.error("Unable to release resource.", e);
+                        }
+                    }
+                }
+            }
+
+        }
+    }
+
     @Override
     public void init(final FilterConfig filterConfig) {
         // nothing to do
@@ -40,12 +71,7 @@
 
     @Override
     public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException {
-        InputStream is;
-        if (content == null) {
-            is = StartupFilter.class.getClassLoader().getResourceAsStream("index.html");
-            content = IOUtils.toString(is, "UTF-8");
-            IOUtils.closeQuietly(is);
-        }
+
         HttpServletResponse httpResponse = (HttpServletResponse) response;
         httpResponse.setContentType("text/html");
         httpResponse.setCharacterEncoding("utf-8");