summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/pom.xml28
-rw-r--r--application/src/test/java/com/yahoo/application/ApplicationTest.java8
-rw-r--r--application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java4
-rw-r--r--bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java44
-rw-r--r--clustercontroller-apputil/pom.xml5
-rw-r--r--clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java4
-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
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepo.java3
-rw-r--r--config-class-plugin/pom.xml4
-rw-r--r--config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java16
-rw-r--r--container-search/pom.xml12
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java6
-rw-r--r--indexinglanguage/pom.xml5
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java5
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeExpression.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java2
-rw-r--r--jdisc_http_service/pom.xml5
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/servlet/ServletTestBase.java31
-rw-r--r--metrics/pom.xml6
23 files changed, 115 insertions, 142 deletions
diff --git a/application/pom.xml b/application/pom.xml
index 5a370e9ffe6..7bcda0ce386 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -97,10 +97,6 @@
</exclusions>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
</dependency>
@@ -109,10 +105,6 @@
<artifactId>antlr4-runtime</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
</dependency>
@@ -136,26 +128,6 @@
<scope>test</scope>
</dependency>
- <!-- These dependencies are necessary in test classpath when using jdisc_http_filters -->
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- <version>1.7.0</version>
- </dependency>
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils-core</artifactId>
- <version>1.8.0</version>
- </dependency>
- <dependency>
- <groupId>commons-configuration</groupId>
- <artifactId>commons-configuration</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-digester</groupId>
- <artifactId>commons-digester</artifactId>
- <version>1.8</version>
- </dependency>
</dependencies>
<build>
diff --git a/application/src/test/java/com/yahoo/application/ApplicationTest.java b/application/src/test/java/com/yahoo/application/ApplicationTest.java
index d4a9c75b713..f2af5537490 100644
--- a/application/src/test/java/com/yahoo/application/ApplicationTest.java
+++ b/application/src/test/java/com/yahoo/application/ApplicationTest.java
@@ -22,7 +22,6 @@ import com.yahoo.jdisc.handler.RequestHandler;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.handler.SearchHandler;
-import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
@@ -34,6 +33,7 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.ServerSocket;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import static com.yahoo.vespa.defaults.Defaults.getDefaults;
@@ -223,7 +223,7 @@ public class ApplicationTest {
public void document_type() throws Exception {
try (
Application app = Application.fromBuilder(new Application.Builder()
- .documentType("test", IOUtils.toString(this.getClass().getResourceAsStream("/test.sd")))
+ .documentType("test", new String(this.getClass().getResourceAsStream("/test.sd").readAllBytes(), StandardCharsets.UTF_8))
.container("default", new Application.Builder.Container()
.documentProcessor(MockDocproc.class)
.config(new MockApplicationConfig(new MockApplicationConfig.Builder().mystruct(new MockApplicationConfig.Mystruct.Builder().id("foo").value("bar"))))))
@@ -264,7 +264,7 @@ public class ApplicationTest {
@Test
public void client() throws Exception {
try (ApplicationFacade app = new ApplicationFacade(Application.fromBuilder(new Application.Builder()
- .documentType("test", IOUtils.toString(this.getClass().getResourceAsStream("/test.sd")))
+ .documentType("test", new String(this.getClass().getResourceAsStream("/test.sd").readAllBytes(), StandardCharsets.UTF_8))
.container("default", new Application.Builder.Container()
.client("mbus://*/*", MockClient.class)
.documentProcessor(MockDispatchDocproc.class)
@@ -320,7 +320,7 @@ public class ApplicationTest {
"<field name=\"defaultage\" type=\"string\" />\n" +
"</query-profile-type>")
.rankExpression("re", "commonfirstphase(globalstaticrank)")
- .documentType("test", IOUtils.toString(this.getClass().getResourceAsStream("/test.sd")))
+ .documentType("test", new String(this.getClass().getResourceAsStream("/test.sd").readAllBytes(), StandardCharsets.UTF_8))
.container("default", new Application.Builder.Container()
.search(true)
))) {
diff --git a/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java b/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
index b2d59dbe209..0eb308f124c 100644
--- a/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
+++ b/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
@@ -10,7 +10,6 @@ import com.yahoo.application.container.jersey.resources.nestedpackage2.NestedTes
import com.yahoo.container.test.jars.jersey.resources.TestResourceBase;
import com.yahoo.osgi.maven.ProjectBundleClassPaths;
import com.yahoo.osgi.maven.ProjectBundleClassPaths.BundleClasspathMapping;
-import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -19,6 +18,7 @@ import org.apache.http.util.EntityUtils;
import org.junit.Test;
import javax.ws.rs.core.UriBuilder;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -158,7 +158,7 @@ public class JerseyTest {
HttpResponse response = httpGetter.get(path(resource));
assertThat("Failed sending response to " + resource, response.getStatusLine().getStatusCode(), is(200));
- String content = IOUtils.toString(response.getEntity().getContent());
+ String content = new String(response.getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
assertThat(content, is(TestResourceBase.content(resource)));
}
}
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java
index 11a82ab7443..73fdcf1c471 100644
--- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java
+++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java
@@ -12,7 +12,6 @@ import com.yahoo.container.plugin.osgi.ExportPackages;
import com.yahoo.container.plugin.osgi.ExportPackages.Export;
import com.yahoo.container.plugin.osgi.ImportPackages.Import;
import com.yahoo.container.plugin.util.Strings;
-import org.apache.commons.lang3.tuple.Pair;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
@@ -25,7 +24,6 @@ import org.apache.maven.project.MavenProject;
import java.io.File;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
@@ -231,29 +229,31 @@ public class GenerateOsgiManifestMojo extends AbstractMojo {
String exportPackage = osgiExportPackages(pluginPackageTally.exportedPackages()).stream().sorted()
.collect(Collectors.joining(","));
- for (Pair<String, String> element : Arrays.asList(//
- Pair.of("Created-By", "vespa container maven plugin"), //
- Pair.of("Bundle-ManifestVersion", "2"), //
- Pair.of("Bundle-Name", project.getName()), //
- Pair.of("Bundle-SymbolicName", bundleSymbolicName), //
- Pair.of("Bundle-Version", asBundleVersion(bundleVersion)), //
- Pair.of("Bundle-Vendor", "Yahoo!"), //
- Pair.of("Bundle-ClassPath", bundleClassPath(jarArtifactsToInclude)), //
- Pair.of("Bundle-Activator", bundleActivator), //
- Pair.of("X-JDisc-Privileged-Activator", jdiscPrivilegedActivator), //
- Pair.of("Main-Class", mainClass), //
- Pair.of("X-JDisc-Application", discApplicationClass), //
- Pair.of("X-JDisc-Preinstall-Bundle", trimWhitespace(Optional.ofNullable(discPreInstallBundle))), //
- Pair.of("WebInfUrl", webInfUrl), //
- Pair.of("Import-Package", importPackage), //
- Pair.of("Export-Package", exportPackage))) {
- if (element.getValue() != null && ! element.getValue().isEmpty()) {
- ret.put(element.getKey(), element.getValue());
- }
- }
+ ret.put("Created-By", "vespa container maven plugin");
+ ret.put("Bundle-ManifestVersion", "2");
+ addIfNotEmpty(ret, "Bundle-Name", project.getName());
+ addIfNotEmpty(ret, "Bundle-SymbolicName", bundleSymbolicName);
+ addIfNotEmpty(ret, "Bundle-Version", asBundleVersion(bundleVersion));
+ ret.put("Bundle-Vendor", "Yahoo!");
+ addIfNotEmpty(ret, "Bundle-ClassPath", bundleClassPath(jarArtifactsToInclude));
+ addIfNotEmpty(ret, "Bundle-Activator", bundleActivator);
+ addIfNotEmpty(ret, "X-JDisc-Privileged-Activator", jdiscPrivilegedActivator);
+ addIfNotEmpty(ret, "Main-Class", mainClass);
+ addIfNotEmpty(ret, "X-JDisc-Application", discApplicationClass);
+ addIfNotEmpty(ret, "X-JDisc-Preinstall-Bundle", trimWhitespace(Optional.ofNullable(discPreInstallBundle)));
+ addIfNotEmpty(ret, "WebInfUrl", webInfUrl);
+ addIfNotEmpty(ret, "Import-Package", importPackage);
+ addIfNotEmpty(ret, "Export-Package", exportPackage);
+
return ret;
}
+ private static void addIfNotEmpty(Map<String, String> map, String key, String value) {
+ if (value != null && ! value.isEmpty()) {
+ map.put(key, value);
+ }
+ }
+
private static String asOsgiImport(String packageName, Optional<String> version) {
return version.map(s -> packageName + ";version=" + quote(s)).orElse(packageName);
}
diff --git a/clustercontroller-apputil/pom.xml b/clustercontroller-apputil/pom.xml
index c8190c1a1ac..f0da97f5b94 100644
--- a/clustercontroller-apputil/pom.xml
+++ b/clustercontroller-apputil/pom.xml
@@ -35,11 +35,6 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java b/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java
index 1f3956ef875..f518fe23fe6 100644
--- a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java
+++ b/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java
@@ -9,9 +9,9 @@ import com.yahoo.text.Utf8;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequest;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequestHandler;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpResult;
-import org.apache.commons.io.IOUtils;
import java.io.*;
+import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.logging.Logger;
@@ -95,7 +95,7 @@ public class JDiscHttpRequestHandler extends LoggingRequestHandler {
private void copyPostData(com.yahoo.container.jdisc.HttpRequest request, HttpRequest legacyRequest) {
try {
- legacyRequest.setPostContent(IOUtils.toString(request.getData(), "UTF-8"));
+ legacyRequest.setPostContent(new String(request.getData().readAllBytes(), StandardCharsets.UTF_8));
} catch (IOException e) {
throw new RuntimeException(e);
}
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) {
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepo.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepo.java
index d9253d6105b..872aa7fb56f 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepo.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepo.java
@@ -8,7 +8,6 @@ import com.yahoo.vespa.config.ConfigDefinitionKey;
import com.yahoo.vespa.config.buildergen.ConfigDefinition;
import com.yahoo.vespa.config.util.ConfigUtils;
import com.yahoo.vespa.defaults.Defaults;
-import org.apache.commons.lang.StringUtils;
import java.io.File;
import java.io.IOException;
@@ -54,7 +53,7 @@ public class StaticConfigDefinitionRepo implements ConfigDefinitionRepo {
private void addConfigDefinition(ConfigDefinitionKey key, File defFile) throws IOException {
String payload = IOUtils.readFile(defFile);
- configDefinitions.put(key, new ConfigDefinition(key.getName(), StringUtils.split(payload, "\n")));
+ configDefinitions.put(key, new ConfigDefinition(key.getName(), payload.split("[\\r\\n]+")));
}
@Override
diff --git a/config-class-plugin/pom.xml b/config-class-plugin/pom.xml
index e0ea70bd4f0..4809db247d4 100644
--- a/config-class-plugin/pom.xml
+++ b/config-class-plugin/pom.xml
@@ -30,10 +30,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.5</version>
diff --git a/config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java b/config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java
index 64941fdc1a2..9930d53ca6c 100644
--- a/config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java
+++ b/config-class-plugin/src/main/java/com/yahoo/vespa/ConfigGenMojo.java
@@ -1,11 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa;
-import com.yahoo.config.codegen.DefParser;
import com.yahoo.config.codegen.MakeConfig;
import com.yahoo.config.codegen.MakeConfigProperties;
import com.yahoo.config.codegen.PropertyException;
-import org.apache.commons.io.FileUtils;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -16,9 +14,12 @@ import org.apache.maven.project.MavenProject;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
+import java.util.stream.Collectors;
import static com.yahoo.config.codegen.DefParser.DEFAULT_PACKAGE_PREFIX;
@@ -160,8 +161,11 @@ public class ConfigGenMojo extends AbstractMojo {
private boolean isSomeGeneratedFileStale(File outputDirectory, List<String> defFileNames) {
long oldestGeneratedModifiedTime = Long.MAX_VALUE;
- final Collection<File> files = FileUtils.listFiles(outputDirectory, null, true);
- if (files != null) {
+ try {
+ List<File> files = Files.walk(outputDirectory.toPath())
+ .filter(Files::isRegularFile)
+ .map(Path::toFile)
+ .collect(Collectors.toList());
for (File f : files) {
getLog().debug("Checking generated file " + f);
final long l = f.lastModified();
@@ -169,6 +173,8 @@ public class ConfigGenMojo extends AbstractMojo {
oldestGeneratedModifiedTime = l;
}
}
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
}
long lastModifiedSource = 0;
diff --git a/container-search/pom.xml b/container-search/pom.xml
index 2f82728179b..84ee5b2bc65 100644
--- a/container-search/pom.xml
+++ b/container-search/pom.xml
@@ -78,14 +78,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
- <dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<exclusions>
@@ -112,10 +104,6 @@
</exclusions>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
</dependency>
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
index 57d093fb1c1..37b0fd7ebfb 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
@@ -22,7 +22,6 @@ import com.yahoo.search.query.ParameterParser;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.searchchain.Execution;
import com.yahoo.vespa.streamingvisitors.VdsStreamingSearcher;
-import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Collection;
@@ -222,7 +221,7 @@ public class ClusterSearcher extends Searcher {
return new Result(query,
ErrorMessage.createInvalidQueryParameter("Requested rank profile '" + rankProfile +
"' is undefined for document type" + plural + " '" +
- StringUtils.join(invalidInDocTypes.iterator(), ", ") + "'"));
+ String.join(", ", invalidInDocTypes) + "'"));
}
return null;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
index 6e36881ae63..ec1836fd07b 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
@@ -27,7 +27,6 @@ import com.yahoo.search.federation.sourceref.SourceRefResolver;
import com.yahoo.search.federation.sourceref.SourcesTarget;
import com.yahoo.search.federation.sourceref.UnresolvedSearchChainException;
import com.yahoo.search.query.Properties;
-import com.yahoo.search.query.properties.QueryProperties;
import com.yahoo.search.query.properties.SubProperties;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.result.Hit;
@@ -39,7 +38,6 @@ import com.yahoo.search.searchchain.ForkingSearcher;
import com.yahoo.search.searchchain.FutureResult;
import com.yahoo.search.searchchain.SearchChainRegistry;
import com.yahoo.search.searchchain.model.federation.FederationOptions;
-import org.apache.commons.lang.StringUtils;
import java.time.Clock;
import java.util.ArrayList;
@@ -319,8 +317,8 @@ public class FederationSearcher extends ForkingSearcher {
}
private ErrorMessage missingSearchChainsErrorMessage(List<UnresolvedSearchChainException> unresolvedSearchChainExceptions) {
- String message = StringUtils.join(getMessagesSet(unresolvedSearchChainExceptions), ' ') +
- " Valid source refs are " + StringUtils.join(allSourceRefDescriptions().iterator(), ", ") +'.';
+ String message = String.join(" ", getMessagesSet(unresolvedSearchChainExceptions)) +
+ " Valid source refs are " + String.join(", ", allSourceRefDescriptions()) +'.';
return ErrorMessage.createInvalidQueryParameter(message);
}
diff --git a/indexinglanguage/pom.xml b/indexinglanguage/pom.xml
index 74c2f701a67..0c6791e05b5 100644
--- a/indexinglanguage/pom.xml
+++ b/indexinglanguage/pom.xml
@@ -44,11 +44,6 @@
<artifactId>predicate-search-core</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.4</version>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
index 0b392ebfa03..463c009e0a3 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
@@ -3,7 +3,8 @@ package com.yahoo.vespa.indexinglanguage.expressions;
import com.yahoo.document.DataType;
import com.yahoo.document.datatypes.LongFieldValue;
-import org.apache.commons.codec.binary.Base64;
+
+import java.util.Base64;
/**
* @author Simon Thoresen Hult
@@ -24,7 +25,7 @@ public final class Base64DecodeExpression extends Expression {
if (input.length() > 12) {
throw new NumberFormatException("Base64 value '" + input + "' is out of range.");
}
- byte[] decoded = Base64.decodeBase64(input);
+ byte[] decoded = Base64.getDecoder().decode(input);
if (decoded == null || decoded.length == 0) {
throw new NumberFormatException("Illegal base64 value '" + input + "'.");
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeExpression.java
index ff698bf2dd7..e61ac7051c1 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeExpression.java
@@ -2,10 +2,10 @@
package com.yahoo.vespa.indexinglanguage.expressions;
import com.yahoo.document.DataType;
-import com.yahoo.document.DocumentType;
import com.yahoo.document.datatypes.LongFieldValue;
import com.yahoo.document.datatypes.StringFieldValue;
-import org.apache.commons.codec.binary.Base64;
+
+import java.util.Base64;
/**
* @author Simon Thoresen Hult
@@ -23,7 +23,7 @@ public final class Base64EncodeExpression extends Expression {
output[i] = (byte)(input & 0xffL);
input >>>= 8;
}
- String encoded = new Base64(0).encodeToString(output);
+ String encoded = Base64.getEncoder().encodeToString(output);
ctx.setValue(new StringFieldValue(encoded));
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
index df4fd981e01..3e547cedc4b 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
@@ -58,7 +58,7 @@ public class Base64DecodeTestCase {
new Base64DecodeExpression().execute(new StringFieldValue("???"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Illegal base64 value '???'.", e.getMessage());
+ assertEquals("Illegal base64 character 3f", e.getMessage());
}
}
diff --git a/jdisc_http_service/pom.xml b/jdisc_http_service/pom.xml
index 979b9418f4a..c5555d5b690 100644
--- a/jdisc_http_service/pom.xml
+++ b/jdisc_http_service/pom.xml
@@ -81,11 +81,6 @@
<!-- TEST SCOPE -->
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<scope>test</scope>
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/servlet/ServletTestBase.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/servlet/ServletTestBase.java
index fe6a1974a35..54bfe8c026d 100644
--- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/servlet/ServletTestBase.java
+++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/servlet/ServletTestBase.java
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.http.server.jetty.servlet;
-import com.google.common.collect.ImmutableMap;
import com.google.inject.AbstractModule;
import com.google.inject.Module;
import com.google.inject.TypeLiteral;
@@ -16,8 +15,6 @@ import com.yahoo.jdisc.http.ServletPathsConfig;
import com.yahoo.jdisc.http.ServletPathsConfig.Servlets.Builder;
import com.yahoo.jdisc.http.server.jetty.SimpleHttpClient.RequestExecutor;
import com.yahoo.jdisc.http.server.jetty.TestDriver;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
import org.eclipse.jetty.servlet.ServletHolder;
import javax.servlet.ServletException;
@@ -27,15 +24,27 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.List;
/**
* @author Tony Vaagenes
* @author bakksjo
*/
public class ServletTestBase {
- private ImmutableMap<Pair<ComponentId, String>, HttpServlet> servlets = ImmutableMap.of(
- ImmutablePair.of(TestServlet.ID, TestServlet.PATH), new TestServlet(),
- ImmutablePair.of(NoContentTestServlet.ID, NoContentTestServlet.PATH), new NoContentTestServlet());
+
+ private static class ServletInstance {
+ final ComponentId componentId; final String path; final HttpServlet instance;
+
+ ServletInstance(ComponentId componentId, String path, HttpServlet instance) {
+ this.componentId = componentId;
+ this.path = path;
+ this.instance = instance;
+ }
+ }
+
+ private final List<ServletInstance> servlets = List.of(
+ new ServletInstance(TestServlet.ID, TestServlet.PATH, new TestServlet()),
+ new ServletInstance(NoContentTestServlet.ID, NoContentTestServlet.PATH, new NoContentTestServlet()));
protected RequestExecutor httpGet(TestDriver testDriver, String path) {
return testDriver.client().newGet("/" + path);
@@ -44,10 +53,10 @@ public class ServletTestBase {
protected ServletPathsConfig createServletPathConfig() {
ServletPathsConfig.Builder configBuilder = new ServletPathsConfig.Builder();
- servlets.forEach((idAndPath, servlet) ->
+ servlets.forEach(servlet ->
configBuilder.servlets(
- idAndPath.getLeft().stringValue(),
- new Builder().path(idAndPath.getRight())));
+ servlet.componentId.stringValue(),
+ new Builder().path(servlet.path)));
return new ServletPathsConfig(configBuilder);
}
@@ -55,8 +64,8 @@ public class ServletTestBase {
protected ComponentRegistry<ServletHolder> servlets() {
ComponentRegistry<ServletHolder> result = new ComponentRegistry<>();
- servlets.forEach((idAndPath, servlet) ->
- result.register(idAndPath.getLeft(), new ServletHolder(servlet)));
+ servlets.forEach(servlet ->
+ result.register(servlet.componentId, new ServletHolder(servlet.instance)));
result.freeze();
return result;
diff --git a/metrics/pom.xml b/metrics/pom.xml
index b99ae535719..4121467985c 100644
--- a/metrics/pom.xml
+++ b/metrics/pom.xml
@@ -33,12 +33,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.4</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>com.yahoo.vespa</groupId>
<artifactId>jdisc_core</artifactId>
<version>${project.version}</version>