summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cloud-tenant-base-dependencies-enforcer/pom.xml1
-rw-r--r--container-dependencies-enforcer/pom.xml1
-rw-r--r--container-dev/pom.xml4
-rw-r--r--container-test/pom.xml4
-rw-r--r--dependency-versions/pom.xml1
-rw-r--r--fat-model-dependencies/pom.xml4
-rw-r--r--parent/pom.xml5
-rw-r--r--vespa-dependencies-enforcer/allowed-maven-dependencies.txt1
-rw-r--r--vespajlib/pom.xml4
-rw-r--r--vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java99
-rw-r--r--vespajlib/src/main/java/com/yahoo/system/execution/ProcessResult.java19
-rw-r--r--vespajlib/src/main/java/com/yahoo/system/execution/package-info.java5
-rw-r--r--vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java26
13 files changed, 0 insertions, 174 deletions
diff --git a/cloud-tenant-base-dependencies-enforcer/pom.xml b/cloud-tenant-base-dependencies-enforcer/pom.xml
index 2a757e323a4..2cc573bc096 100644
--- a/cloud-tenant-base-dependencies-enforcer/pom.xml
+++ b/cloud-tenant-base-dependencies-enforcer/pom.xml
@@ -154,7 +154,6 @@
<include>net.openhft:zero-allocation-hashing:jar:${zero-allocation-hashing.vespa.version}:test</include>
<include>org.antlr:antlr-runtime:${antlr.vespa.version}:test</include>
<include>org.antlr:antlr4-runtime:${antlr4.vespa.version}:test</include>
- <include>org.apache.commons:commons-exec:${commons-exec.vespa.version}:test</include>
<include>org.apache.commons:commons-math3:${commons.math3.vespa.version}:test</include>
<include>org.apache.felix:org.apache.felix.framework:${felix.vespa.version}:test</include>
<include>org.apache.felix:org.apache.felix.log:${felix.log.vespa.version}:test</include>
diff --git a/container-dependencies-enforcer/pom.xml b/container-dependencies-enforcer/pom.xml
index 140b61689b5..4f624d0a870 100644
--- a/container-dependencies-enforcer/pom.xml
+++ b/container-dependencies-enforcer/pom.xml
@@ -167,7 +167,6 @@
<include>net.openhft:zero-allocation-hashing:jar:${zero-allocation-hashing.vespa.version}:test</include>
<include>org.antlr:antlr-runtime:${antlr.vespa.version}:test</include>
<include>org.antlr:antlr4-runtime:${antlr4.vespa.version}:test</include>
- <include>org.apache.commons:commons-exec:${commons-exec.vespa.version}:test</include>
<include>org.apache.commons:commons-math3:${commons.math3.vespa.version}:test</include>
<include>org.apache.felix:org.apache.felix.framework:${felix.vespa.version}:test</include>
<include>org.apache.felix:org.apache.felix.framework:${felix.vespa.version}:test</include>
diff --git a/container-dev/pom.xml b/container-dev/pom.xml
index 0f0bb58d641..8c45a124e26 100644
--- a/container-dev/pom.xml
+++ b/container-dev/pom.xml
@@ -180,10 +180,6 @@
<version>${project.version}</version>
<exclusions>
<exclusion>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- </exclusion>
- <exclusion>
<groupId>net.openhft</groupId>
<artifactId>zero-allocation-hashing</artifactId>
</exclusion>
diff --git a/container-test/pom.xml b/container-test/pom.xml
index 3676b7a3280..8e1b4870665 100644
--- a/container-test/pom.xml
+++ b/container-test/pom.xml
@@ -93,10 +93,6 @@
<artifactId>jna</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- </dependency>
- <dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
</dependency>
diff --git a/dependency-versions/pom.xml b/dependency-versions/pom.xml
index fcdd6dd5f9a..573208396b0 100644
--- a/dependency-versions/pom.xml
+++ b/dependency-versions/pom.xml
@@ -83,7 +83,6 @@
<commons-collections.vespa.version>3.2.2</commons-collections.vespa.version>
<commons-csv.vespa.version>1.10.0</commons-csv.vespa.version>
<commons-digester.vespa.version>3.2</commons-digester.vespa.version>
- <commons-exec.vespa.version>1.4.0</commons-exec.vespa.version>
<commons-io.vespa.version>2.15.1</commons-io.vespa.version>
<commons-lang3.vespa.version>3.14.0</commons-lang3.vespa.version>
<commons-logging.vespa.version>1.3.0</commons-logging.vespa.version> <!-- Bindings exported by jdisc through jcl-over-slf4j. -->
diff --git a/fat-model-dependencies/pom.xml b/fat-model-dependencies/pom.xml
index 101da345e48..069b53a0dcd 100644
--- a/fat-model-dependencies/pom.xml
+++ b/fat-model-dependencies/pom.xml
@@ -119,10 +119,6 @@
<version>${project.version}</version>
<exclusions>
<exclusion>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- </exclusion>
- <exclusion>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
</exclusion>
diff --git a/parent/pom.xml b/parent/pom.xml
index 75906c2d811..69653e5466e 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -773,11 +773,6 @@
<version>${commons-compress.vespa.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- <version>${commons-exec.vespa.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>${curator.vespa.version}</version>
diff --git a/vespa-dependencies-enforcer/allowed-maven-dependencies.txt b/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
index 472b926b5a1..84b29840574 100644
--- a/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
+++ b/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
@@ -89,7 +89,6 @@ org.antlr:antlr-runtime:${antlr.vespa.version}
org.antlr:antlr4-runtime:${antlr4.vespa.version}
org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:${spifly.vespa.version}
org.apache.commons:commons-compress:${commons-compress.vespa.version}
-org.apache.commons:commons-exec:${commons-exec.vespa.version}
org.apache.commons:commons-lang3:${commons-lang3.vespa.version}
org.apache.commons:commons-math3:${commons.math3.vespa.version}
org.apache.curator:curator-client:${curator.vespa.version}
diff --git a/vespajlib/pom.xml b/vespajlib/pom.xml
index 16ae251aa8b..9d785faeae4 100644
--- a/vespajlib/pom.xml
+++ b/vespajlib/pom.xml
@@ -24,10 +24,6 @@
<artifactId>lz4-java</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-exec</artifactId>
- </dependency>
- <dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
</dependency>
diff --git a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java b/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java
deleted file mode 100644
index fe3bca07845..00000000000
--- a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessExecutor.java
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.system.execution;
-
-import org.apache.commons.exec.CommandLine;
-import org.apache.commons.exec.DefaultExecutor;
-import org.apache.commons.exec.ExecuteException;
-import org.apache.commons.exec.ExecuteWatchdog;
-import org.apache.commons.exec.PumpStreamHandler;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.time.Duration;
-import java.util.Optional;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Configurable system command executor that captures stdout and stderr.
- *
- * @author gjoranv
- * @author bjorncs
- */
-public class ProcessExecutor {
-
- public static class Builder {
- private final Duration timeout;
- private int[] successExitCodes;
-
- public Builder(Duration timeout) {
- this.timeout = timeout;
- }
-
- public Builder successExitCodes(int... successExitCodes) {
- this.successExitCodes = successExitCodes;
- return this;
- }
-
- public ProcessExecutor build() {
- return new ProcessExecutor(timeout, successExitCodes);
- }
- }
-
- private ProcessExecutor(Duration timeout, int[] successExitCodes) {
- this.timeout = timeout;
- this.successExitCodes = successExitCodes;
- }
-
- private final Duration timeout;
- private final int[] successExitCodes;
-
- /**
- * Convenience method to execute a process with no input data. See {@link #execute(String, String)} for details.
- */
- public Optional<ProcessResult> execute(String command) throws IOException {
- return execute(command, null);
- }
-
- /**
- * Executes the given command synchronously.
- *
- * @param command The command to execute.
- * @param processInput Input provided to the process.
- * @return The result of the execution, or empty if the process does not terminate within the timeout set for this executor.
- * @throws IOException if the process execution failed.
- */
- public Optional<ProcessResult> execute(String command, String processInput) throws IOException {
- ByteArrayOutputStream processErr = new ByteArrayOutputStream();
- ByteArrayOutputStream processOut = new ByteArrayOutputStream();
-
- DefaultExecutor executor = DefaultExecutor.builder().get();
- executor.setStreamHandler(createStreamHandler(processOut, processErr, processInput));
- ExecuteWatchdog watchDog = ExecuteWatchdog.builder().setTimeout(timeout).get();
- executor.setWatchdog(watchDog);
- executor.setExitValues(successExitCodes);
-
- int exitCode;
- try {
- exitCode = executor.execute(CommandLine.parse(command));
- } catch (ExecuteException e) {
- exitCode = e.getExitValue();
- }
- return (watchDog.killedProcess()) ?
- Optional.empty() : Optional.of(new ProcessResult(exitCode, processOut.toString(), processErr.toString()));
- }
-
- private static PumpStreamHandler createStreamHandler(ByteArrayOutputStream processOut,
- ByteArrayOutputStream processErr,
- String input) {
- if (input != null) {
- InputStream processInput = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8));
- return new PumpStreamHandler(processOut, processErr, processInput);
- } else {
- return new PumpStreamHandler(processOut, processErr);
- }
- }
-
-}
diff --git a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessResult.java b/vespajlib/src/main/java/com/yahoo/system/execution/ProcessResult.java
deleted file mode 100644
index 03ded02848f..00000000000
--- a/vespajlib/src/main/java/com/yahoo/system/execution/ProcessResult.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.system.execution;
-
-/**
- * @author bjorncs
- * @author gjoranv
- */
-public class ProcessResult {
- public final String stdOut;
- public final String stdErr;
- public final int exitCode;
-
- public ProcessResult(int exitCode, String stdOut, String stdErr) {
- this.exitCode = exitCode;
- this.stdOut = stdOut;
- this.stdErr = stdErr;
- }
-
-}
diff --git a/vespajlib/src/main/java/com/yahoo/system/execution/package-info.java b/vespajlib/src/main/java/com/yahoo/system/execution/package-info.java
deleted file mode 100644
index a2fce8038fe..00000000000
--- a/vespajlib/src/main/java/com/yahoo/system/execution/package-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-@ExportPackage
-package com.yahoo.system.execution;
-
-import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java b/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java
deleted file mode 100644
index 607a223b00b..00000000000
--- a/vespajlib/src/test/java/com/yahoo/system/execution/ProcessExecutorTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.system.execution;
-
-import org.junit.Test;
-
-import java.time.Duration;
-import java.util.Optional;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- * @author gjoranv
- */
-public class ProcessExecutorTest {
-
- @Test
- public void echo_can_be_executed() throws Exception {
- final String message = "Hello from executor!";
- ProcessExecutor executor = new ProcessExecutor.Builder(Duration.ofSeconds(10)).build();
- Optional<ProcessResult> result = executor.execute("echo " + message);
- assertTrue(result.isPresent());
- assertEquals(message, result.get().stdOut.trim());
- assertEquals("", result.get().stdErr);
- }
-}