summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-21 14:54:29 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-21 14:55:55 +0200
commitc930230398a114acabe981b2328493b841f30296 (patch)
tree55171c1d476cd030eda997526a13ff8a993f5b60
parent75d097b2af8c0ef7b6e7fca57b284628e81aac54 (diff)
Build and package standalone vespa-feed-client utility
-rw-r--r--dist/vespa.spec2
-rw-r--r--vespa-feed-client/CMakeLists.txt4
-rw-r--r--vespa-feed-client/pom.xml36
-rwxr-xr-xvespa-feed-client/src/main/sh/vespa-feed-client.sh82
4 files changed, 107 insertions, 17 deletions
diff --git a/dist/vespa.spec b/dist/vespa.spec
index ad48923f6dd..3a3c46dba8c 100644
--- a/dist/vespa.spec
+++ b/dist/vespa.spec
@@ -726,7 +726,9 @@ fi
%dir %{_prefix}
%dir %{_prefix}/lib
%dir %{_prefix}/lib/jars
+%{_prefix}/bin/vespa-feed-client
%{_prefix}/lib/jars/vespa-http-client-jar-with-dependencies.jar
+%{_prefix}/lib/jars/vespa-feed-client-jar-with-dependencies.jar
%files config-model-fat
%if %{_defattr_is_vespa_vespa}
diff --git a/vespa-feed-client/CMakeLists.txt b/vespa-feed-client/CMakeLists.txt
index ee6dfdeff05..747000169b1 100644
--- a/vespa-feed-client/CMakeLists.txt
+++ b/vespa-feed-client/CMakeLists.txt
@@ -1,2 +1,4 @@
# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-# TODO Install fat jar \ No newline at end of file
+install_fat_java_artifact(vespa-feed-client)
+
+vespa_install_script(src/main/sh/vespa-feed-client.sh vespa-feed-client bin)
diff --git a/vespa-feed-client/pom.xml b/vespa-feed-client/pom.xml
index 4a44f1c0240..28196f6e9ce 100644
--- a/vespa-feed-client/pom.xml
+++ b/vespa-feed-client/pom.xml
@@ -18,36 +18,22 @@
</properties>
<dependencies>
- <!-- provided -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>provided</scope>
- </dependency>
+ <!-- compile scope -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
- <scope>provided</scope>
+ <scope>compile</scope>
</dependency>
-
- <!-- compile scope -->
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<scope>compile</scope>
</dependency>
-
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
@@ -102,6 +88,24 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <!-- append to the packaging phase. -->
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/vespa-feed-client/src/main/sh/vespa-feed-client.sh b/vespa-feed-client/src/main/sh/vespa-feed-client.sh
new file mode 100755
index 00000000000..2e8d22a4245
--- /dev/null
+++ b/vespa-feed-client/src/main/sh/vespa-feed-client.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+# BEGIN environment bootstrap section
+# Do not edit between here and END as this section should stay identical in all scripts
+
+findpath () {
+ myname=${0}
+ mypath=${myname%/*}
+ myname=${myname##*/}
+ empty_if_start_slash=${mypath%%/*}
+ if [ "${empty_if_start_slash}" ]; then
+ mypath=$(pwd)/${mypath}
+ fi
+ if [ "$mypath" ] && [ -d "$mypath" ]; then
+ return
+ fi
+ mypath=$(pwd)
+ if [ -f "${mypath}/${myname}" ]; then
+ return
+ fi
+ echo "FATAL: Could not figure out the path where $myname lives from $0"
+ exit 1
+}
+
+COMMON_ENV=libexec/vespa/common-env.sh
+
+source_common_env () {
+ if [ "$VESPA_HOME" ] && [ -d "$VESPA_HOME" ]; then
+ export VESPA_HOME
+ common_env=$VESPA_HOME/$COMMON_ENV
+ if [ -f "$common_env" ]; then
+ . $common_env
+ return
+ fi
+ fi
+ return 1
+}
+
+findroot () {
+ source_common_env && return
+ if [ "$VESPA_HOME" ]; then
+ echo "FATAL: bad VESPA_HOME value '$VESPA_HOME'"
+ exit 1
+ fi
+ if [ "$ROOT" ] && [ -d "$ROOT" ]; then
+ VESPA_HOME="$ROOT"
+ source_common_env && return
+ fi
+ findpath
+ while [ "$mypath" ]; do
+ VESPA_HOME=${mypath}
+ source_common_env && return
+ mypath=${mypath%/*}
+ done
+ echo "FATAL: missing VESPA_HOME environment variable"
+ echo "Could not locate $COMMON_ENV anywhere"
+ exit 1
+}
+
+findhost () {
+ if [ "${VESPA_HOSTNAME}" = "" ]; then
+ VESPA_HOSTNAME=$(vespa-detect-hostname || hostname -f || hostname || echo "localhost") || exit 1
+ fi
+ validate="${VESPA_HOME}/bin/vespa-validate-hostname"
+ if [ -f "$validate" ]; then
+ "$validate" "${VESPA_HOSTNAME}" || exit 1
+ fi
+ export VESPA_HOSTNAME
+}
+
+findroot
+findhost
+
+# END environment bootstrap section
+
+export MALLOC_ARENA_MAX=1 #Does not need fast allocation
+exec java \
+-Djava.library.path=${VESPA_HOME}/libexec64/native:${VESPA_HOME}/lib64 \
+-Djava.awt.headless=true \
+-Xms128m -Xmx2048m $(getJavaOptionsIPV46) \
+-cp ${VESPA_HOME}/lib/jars/vespa-feed-client-jar-with-dependencies.jar ai.vespa.feed.client.CliClient "$@" \ No newline at end of file