This is an automated email from the ASF dual-hosted git repository.
mattcasters pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 2be0bd393e fixes #7748: stop Docker Hop Web COPY of removed lib-beam
path (#7749)
2be0bd393e is described below
commit 2be0bd393ee2a28fdb7bdcb0afd8d641a2f99ba4
Author: Matt Casters <[email protected]>
AuthorDate: Sat Aug 1 20:35:03 2026 +0200
fixes #7748: stop Docker Hop Web COPY of removed lib-beam path (#7749)
After #7721/#7722 the Beam marketplace plugin unpacks SDKs into lib/core
instead of plugins/engines/beam/lib-beam. docker/web.Dockerfile still
unconditionally COPY'd the old path, so main CI failed at Build Hop Web
Docker Image and never reached Deploy (blocking SNAPSHOT publish).
Drop the obsolete COPY (lib/core already includes Beam when the plugin is
installed), remove the no-op lib-beam copy from unified.Dockerfile, and
align Hop Web / marketplace docs and comments with the current layout.
---
assemblies/static/src/main/resources/hop | 5 +++--
docker/unified.Dockerfile | 3 ++-
docker/web.Dockerfile | 5 ++++-
docs/hop-dev-manual/modules/ROOT/pages/hopweb/index.adoc | 13 ++++++-------
.../modules/ROOT/pages/hop-tools/hop-marketplace.adoc | 4 ++--
.../org/apache/hop/marketplace/optional-plugins.yaml | 2 +-
.../misc/marketplace/src/main/samples/hop-env.example.yaml | 2 +-
tools/install-wave1-plugins.sh | 2 +-
8 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/assemblies/static/src/main/resources/hop
b/assemblies/static/src/main/resources/hop
index ed52c6936f..d96dd77b4c 100755
--- a/assemblies/static/src/main/resources/hop
+++ b/assemblies/static/src/main/resources/hop
@@ -108,8 +108,9 @@ if [ -n "${HOP_SPARK_CLIENT_VERSION:-}" ] && [ -d
"lib/spark-clients/${HOP_SPARK
CLASSPATH="${CLASSPATH}:lib/spark-clients/${HOP_SPARK_CLIENT_VERSION}/*"
fi
-# Beam SDKs/runners live with the optional Beam plugin (not lib/beam).
-# Only on the system classpath when marketplace (or -Pbeam) has installed them.
+# Beam plugin jar (and any legacy lib-beam/ tree). Current marketplace
packaging (#7721/#7722)
+# unpacks Beam SDKs into lib/core (already on CLASSPATH above); lib-beam is
kept only for older
+# installs that still have that layout.
if [ -d "plugins/engines/beam/lib-beam" ]; then
CLASSPATH="${CLASSPATH}:plugins/engines/beam/lib-beam/*"
fi
diff --git a/docker/unified.Dockerfile b/docker/unified.Dockerfile
index 037a3915e5..71effa7a45 100644
--- a/docker/unified.Dockerfile
+++ b/docker/unified.Dockerfile
@@ -243,7 +243,8 @@ RUN mkdir -p /build/hop-web-prepared/webapps/ROOT && \
cp -r /build/assemblies/client/target/hop/config
/build/hop-web-prepared/webapps/ROOT/ && \
cp -r /build/assemblies/client/target/hop/plugins /build/hop-web-prepared/
&& \
cp -r /build/assemblies/client/target/hop/lib/jdbc/
/build/hop-web-prepared/jdbc-drivers && \
- if [ -d /build/assemblies/client/target/hop/plugins/engines/beam/lib-beam
]; then cp -r
/build/assemblies/client/target/hop/plugins/engines/beam/lib-beam/*
/build/hop-web-prepared/webapps/ROOT/WEB-INF/lib/; fi && \
+ # Beam SDKs unpack under lib/core when the marketplace Beam plugin is
installed (#7721/#7722).
+ # Legacy plugins/engines/beam/lib-beam is no longer produced; do not
require it (apache/hop#7748).
cp -r /build/assemblies/client/target/hop/lib/core/*
/build/hop-web-prepared/webapps/ROOT/WEB-INF/lib/ && \
rm /build/hop-web-prepared/webapps/ROOT/WEB-INF/lib/hop-ui-rcp* && \
cp /build/docker/resources/run-web.sh /build/hop-web-prepared/run-web.sh
&& \
diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile
index abe4a9ae07..93a681e243 100644
--- a/docker/web.Dockerfile
+++ b/docker/web.Dockerfile
@@ -74,10 +74,13 @@ RUN groupadd -r hop -g ${HOP_GID} \
&& mkdir "${HOP_AUDIT_FOLDER}"
# Copy resources
+# lib/core includes Beam SDKs when the Beam marketplace plugin is installed
into the client
+# (e.g. tools/install-wave1-plugins.sh). Do not COPY
plugins/engines/beam/lib-beam: that path
+# was removed in #7721 / #7722 (SDKs now unpack under lib/core). An
unconditional COPY fails
+# docker buildx when the directory is missing (apache/hop#7748).
COPY ./assemblies/web/target/webapp/ "${CATALINA_HOME}"/webapps/ROOT/
COPY ./assemblies/client/target/hop/config
"${CATALINA_HOME}"/webapps/ROOT/config
COPY ./assemblies/client/target/hop/lib/core
"${CATALINA_HOME}"/webapps/ROOT/WEB-INF/lib
-COPY ./assemblies/client/target/hop/plugins/engines/beam/lib-beam
"${CATALINA_HOME}"/webapps/ROOT/WEB-INF/lib
COPY ./assemblies/client/target/hop/plugins "${CATALINA_HOME}"/plugins
COPY ./assemblies/client/target/hop/lib/jdbc/ "${CATALINA_HOME}"/jdbc-drivers
COPY --chown=hop ./docker/resources/run-web.sh /tmp/
diff --git a/docs/hop-dev-manual/modules/ROOT/pages/hopweb/index.adoc
b/docs/hop-dev-manual/modules/ROOT/pages/hopweb/index.adoc
index 5af4905ea6..cd79496385 100644
--- a/docs/hop-dev-manual/modules/ROOT/pages/hopweb/index.adoc
+++ b/docs/hop-dev-manual/modules/ROOT/pages/hopweb/index.adoc
@@ -74,22 +74,21 @@ unzip -o assemblies/client/target/hop-client-*.zip -d
/tmp/hop-client/
cp -r /tmp/hop-client/hop/config $CATALINA_HOME/webapps/ROOT/
# Step 4: Copy core libraries
+# lib/core already includes Beam SDKs when the Beam marketplace plugin is
installed into the
+# client (plugins/engines/beam/lib-beam is a legacy path and is no longer
created).
cp -r /tmp/hop-client/hop/lib/core/* $CATALINA_HOME/webapps/ROOT/WEB-INF/lib/
# Step 4b: Remove RCP jar (RCP is for desktop GUI, not web)
rm -f $CATALINA_HOME/webapps/ROOT/WEB-INF/lib/hop-ui-rcp-*.jar
-# Step 5: Copy beam libraries
-cp -r /tmp/hop-client/hop/plugins/engines/beam/lib-beam/*
$CATALINA_HOME/webapps/ROOT/WEB-INF/lib/
-
-# Step 6: Copy plugins
+# Step 5: Copy plugins
cp -r /tmp/hop-client/hop/plugins $CATALINA_HOME/
-# Step 7: Copy JDBC drivers
+# Step 6: Copy JDBC drivers
mkdir -p $CATALINA_HOME/jdbc-drivers
cp -r /tmp/hop-client/hop/lib/jdbc/* $CATALINA_HOME/jdbc-drivers/
-# Step 8: Cleanup
+# Step 7: Cleanup
rm -rf /tmp/hop-client
----
@@ -200,7 +199,7 @@ sed -i ''
's&lib/core/*&../../lib/*:WEB-INF/lib/*:lib/core/*&g' ${CATALINA_HOME}
The `CLASSPATH` lines in the various scripts should look similar to the one
below after editing:
-`CLASSPATH="../../lib/*:WEB-INF/lib/*:lib/core/**:plugins/engines/beam/lib-beam/*:lib/swt/osx/arm64/*"`
+`CLASSPATH="../../lib/*:WEB-INF/lib/*:lib/core/**:lib/swt/osx/arm64/*"`
Once the classpaths have been updated, make sure to make the scripts
executable:
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-marketplace.adoc
b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-marketplace.adoc
index f80049a632..e22f7be2a1 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-marketplace.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-marketplace.adoc
@@ -46,7 +46,7 @@ cd /path/to/hop
* Do *NOT* pass `--prune` unless you also want other marketplace installs
removed.
* `full-client-env.yaml` is generated at build time from marketplace plugin
source file `optional-plugins.yaml` (source of truth).
-Beam SDKs/runners live under `plugins/engines/beam/lib-beam` (installed with
the Beam plugin), not under `lib/beam`. Launch scripts add that folder to the
classpath only when it exists. Developers who want Beam baked into a local
hop-client build can use Maven profile `-Pbeam` (for example `./mvnw -pl
assemblies/client -am package -Pbeam`).
+Beam SDKs/runners install with the Beam marketplace plugin into top-level
`lib/core` (and Spark client jars into `lib/spark-client`). The older
`plugins/engines/beam/lib-beam` layout is no longer produced. Developers who
want Beam baked into a local hop-client build can use Maven profile `-Pbeam`
(for example `./mvnw -pl assemblies/client -am package -Pbeam`).
== Defaults
@@ -364,7 +364,7 @@ plugins:
- groupId: org.apache.hop # optional; default org.apache.hop
artifactId: hop-engines-spark
version: "2.19.0"
- # Beam engine plugin only (Beam SDKs ship under
plugins/engines/beam/lib-beam with the plugin):
+ # Beam engine plugin only (Beam SDKs unpack into lib/core with the plugin):
# - artifactId: hop-engines-beam
# version: "2.19.0"
diff --git
a/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/optional-plugins.yaml
b/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/optional-plugins.yaml
index d38681230d..4c4c8fd68b 100644
---
a/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/optional-plugins.yaml
+++
b/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/optional-plugins.yaml
@@ -32,7 +32,7 @@ plugins:
- artifactId: hop-engines-beam
name: Apache Beam engine
category: Engines
- description: Beam pipeline engine and transforms; SDKs under
plugins/engines/beam/lib-beam.
+ description: Beam pipeline engine and transforms; SDKs unpack into
lib/core with the plugin.
installPath: plugins/engines/beam
modulePath: plugins/engines/beam
#
diff --git a/plugins/misc/marketplace/src/main/samples/hop-env.example.yaml
b/plugins/misc/marketplace/src/main/samples/hop-env.example.yaml
index 740c04ff62..9d66611fc0 100644
--- a/plugins/misc/marketplace/src/main/samples/hop-env.example.yaml
+++ b/plugins/misc/marketplace/src/main/samples/hop-env.example.yaml
@@ -42,7 +42,7 @@ plugins:
version: "2.19.0-SNAPSHOT"
- artifactId: hop-engines-spark
version: "2.19.0-SNAPSHOT"
- # Beam engine plugin only (Beam SDKs ship under
plugins/engines/beam/lib-beam with the plugin):
+ # Beam engine plugin only (Beam SDKs unpack into lib/core with the plugin):
# - artifactId: hop-engines-beam
# version: "2.19.0-SNAPSHOT"
diff --git a/tools/install-wave1-plugins.sh b/tools/install-wave1-plugins.sh
index 56869a781e..2e258232ec 100755
--- a/tools/install-wave1-plugins.sh
+++ b/tools/install-wave1-plugins.sh
@@ -67,4 +67,4 @@ for entry in ${PLUGINS[@]+"${PLUGINS[@]}"}; do
done
echo "Marketplace plugins: installed=${installed} skipped=${skipped} into
${INSTALL_DIR}"
-# Note: beam plugin zip includes lib-beam (Beam SDKs).
+# Note: the Beam plugin zip unpacks SDKs into lib/core (and Spark client jars
into lib/spark-client).