diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-01-06 11:25:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-06 11:25:42 +0100 |
commit | 64b48c88fe68f58668ba8386cde39bda9e213b8c (patch) | |
tree | 3e6ae81456c4b27addf0d813fabda2b6535b19ea | |
parent | 44cb0815efd0c477ceeb7058d96d2eb9bfb2e49b (diff) | |
parent | 13570aa31b7810c352f1c3b62952a06b7c288b5b (diff) |
Merge pull request #11649 from vespa-engine/bjorncs/apache-commons-libraries-cleanup
Bjorncs/apache commons libraries cleanup
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> |