summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-01-03 15:56:55 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-01-03 17:24:54 +0100
commit741fad2983111ea1589ab008b60b97a12072556b (patch)
tree48ddda163c267e00a4d45141c6ccbb1dc28abd5f /clustercontroller-core
parent11c0391cef31f03a317e043e537cad86fca4393d (diff)
Remove use of apache commons libraries from cluster-controller modules
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/pom.xml5
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java19
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageResponse.java11
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java25
4 files changed, 43 insertions, 17 deletions
diff --git a/clustercontroller-core/pom.xml b/clustercontroller-core/pom.xml
index 9ac7c93134c..a952016e3bf 100644
--- a/clustercontroller-core/pom.xml
+++ b/clustercontroller-core/pom.xml
@@ -14,8 +14,9 @@
<name>${project.artifactId}</name>
<dependencies>
<dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
index 4a619fa47f2..d1675f189c0 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
@@ -12,20 +12,26 @@ import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.core.database.DatabaseHandler;
import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
import com.yahoo.vespa.clustercontroller.core.hostinfo.HostInfo;
-import com.yahoo.vespa.clustercontroller.core.listeners.*;
+import com.yahoo.vespa.clustercontroller.core.listeners.NodeAddedOrRemovedListener;
+import com.yahoo.vespa.clustercontroller.core.listeners.NodeStateOrHostInfoChangeHandler;
+import com.yahoo.vespa.clustercontroller.core.listeners.SystemStateListener;
import com.yahoo.vespa.clustercontroller.core.rpc.RPCCommunicator;
import com.yahoo.vespa.clustercontroller.core.rpc.RpcServer;
import com.yahoo.vespa.clustercontroller.core.rpc.SlobrokClient;
-import com.yahoo.vespa.clustercontroller.core.status.*;
+import com.yahoo.vespa.clustercontroller.core.status.ClusterStateRequestHandler;
+import com.yahoo.vespa.clustercontroller.core.status.LegacyIndexPageRequestHandler;
+import com.yahoo.vespa.clustercontroller.core.status.LegacyNodePageRequestHandler;
+import com.yahoo.vespa.clustercontroller.core.status.NodeHealthRequestHandler;
+import com.yahoo.vespa.clustercontroller.core.status.RunDataExtractor;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageResponse;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServer;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServerInterface;
import com.yahoo.vespa.clustercontroller.utils.util.MetricReporter;
import com.yahoo.vespa.clustercontroller.utils.util.NoMetricReporter;
-import org.apache.commons.lang.exception.ExceptionUtils;
import java.io.FileNotFoundException;
-
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collection;
@@ -542,7 +548,10 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd
} catch (Exception e) {
responseCode = StatusPageResponse.ResponseCode.INTERNAL_SERVER_ERROR;
message = "Internal Server Error";
- hiddenMessage = ExceptionUtils.getStackTrace(e);
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw, true);
+ e.printStackTrace(pw);
+ hiddenMessage = sw.getBuffer().toString();
log.log(LogLevel.DEBUG, "Unknown exception thrown for request " + httpRequest.getRequest() +
": " + hiddenMessage);
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageResponse.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageResponse.java
index 84850eb344c..0b6ce9b645e 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageResponse.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageResponse.java
@@ -1,9 +1,12 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core.status.statuspage;
-import org.apache.commons.lang.StringEscapeUtils;
+import com.google.common.html.HtmlEscapers;
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
public class StatusPageResponse {
@@ -67,7 +70,7 @@ public class StatusPageResponse {
}
public void writeHtmlHeader(StringBuilder content, String title) {
- String escaped_title = StringEscapeUtils.escapeHtml(title);
+ String escaped_title = HtmlEscapers.htmlEscaper().escape(title);
content.append("<html>\n")
.append("<head><title>").append(escaped_title).append("</title></head>")
.append("<body>\n")
@@ -76,7 +79,7 @@ public class StatusPageResponse {
public void writeHtmlFooter(StringBuilder content, String hiddenMessage) {
if (hiddenMessage != null && !hiddenMessage.isEmpty()) {
- content.append("\n<!-- " + StringEscapeUtils.escapeHtml(hiddenMessage) + " -->\n");
+ content.append("\n<!-- " + HtmlEscapers.htmlEscaper().escape(hiddenMessage) + " -->\n");
}
content.append("</body>\n")
.append("</html>\n");
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
index 52cd0a27933..b736bae82c8 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
@@ -2,19 +2,28 @@
package com.yahoo.vespa.clustercontroller.core.status.statuspage;
import com.yahoo.log.LogLevel;
-import org.apache.commons.lang.exception.ExceptionUtils;
-import java.io.*;
-import java.net.ServerSocket;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.net.InetSocketAddress;
+import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
import java.util.logging.Logger;
-import java.util.regex.Pattern;
import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* Shows status pages with debug information through a very simple HTTP interface.
@@ -177,7 +186,11 @@ public class StatusPageServer implements Runnable, StatusPageServerInterface {
response.setResponseCode(StatusPageResponse.ResponseCode.INTERNAL_SERVER_ERROR);
StringBuilder content = new StringBuilder();
response.writeHtmlHeader(content, "Internal Server Error");
- response.writeHtmlFooter(content, ExceptionUtils.getStackTrace(e));
+ try (StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw, true)) {
+ e.printStackTrace(pw);
+ response.writeHtmlFooter(content, sw.getBuffer().toString());
+ }
response.writeContent(content.toString());
}
if (response == null) {