blob: 3a4a498fd0bfceab911d1c82f6ac400c72c30748 [file]
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Builds the storm-metrics-prometheus reporter and collects it plus its runtime
# dependencies into ./extlib-daemon, which docker-compose mounts onto the Nimbus
# container's daemon classpath. Re-run after changing the module or Storm version.
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${HERE}/../.." && pwd)"
MODULE="external/storm-metrics-prometheus"
OUT="${HERE}/extlib-daemon"
# Resolve the Storm version from the same source as docker-compose: the .env that
# build-image.sh writes from the repo root pom.xml. Hardcoding a default would cp
# a wrong-named jar after a version bump. Override with STORM_VERSION.
if [[ -z "${STORM_VERSION:-}" ]]; then
if [[ -f "${HERE}/.env" ]]; then
# shellcheck disable=SC1091
source "${HERE}/.env"
fi
fi
VERSION="${STORM_VERSION:-}"
if [[ -z "${VERSION}" ]]; then
echo "error: STORM_VERSION not set and ${HERE}/.env missing or empty." >&2
echo " run ./build-image.sh first (it writes .env from pom.xml), or set STORM_VERSION." >&2
exit 1
fi
cd "${REPO_ROOT}"
echo "==> Building ${MODULE} (${VERSION})"
mvn -q -pl "${MODULE}" -am install -DskipTests
echo "==> Collecting runtime dependencies into ${OUT}"
rm -f "${OUT}"/*.jar
mvn -q -pl "${MODULE}" dependency:copy-dependencies \
-DincludeScope=runtime -DexcludeScope=provided \
-DoutputDirectory="${OUT}"
cp "${REPO_ROOT}/${MODULE}/target/storm-metrics-prometheus-${VERSION}.jar" "${OUT}/"
echo "==> ${OUT} now contains:"
ls -1 "${OUT}"/*.jar