From d02873152656559d66fefc4c36690c70b48ffa09 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Tue, 13 May 2025 18:27:39 -0700 Subject: [PATCH 01/23] [POLARIS] Add script to merge admin and server distributions This script combines the Polaris admin tool and server distributions into a single package: Maintains separate admin and server components, provides a unified run script to launch either component, preserves all necessary dependencies and configurations, and simplifies deployment by having both components in one distribution. --- merge-distributions.sh | 82 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100755 merge-distributions.sh diff --git a/merge-distributions.sh b/merge-distributions.sh new file mode 100755 index 0000000000..5e76e27dfe --- /dev/null +++ b/merge-distributions.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Get version from Gradle +VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') + +# Set paths +ADMIN_DIST="quarkus/admin/build/distributions/polaris-quarkus-admin-${VERSION}.tgz" +SERVER_DIST="quarkus/server/build/distributions/polaris-quarkus-server-${VERSION}.tgz" +OUTPUT_DIR="polaris-quarkus-combined-${VERSION}" + +# Clean up any existing directories +rm -rf temp temp2 "${OUTPUT_DIR}" +mkdir -p temp temp2 + +# Extract both distributions +cd temp +tar xf "../${ADMIN_DIST}" +cd ../temp2 +tar xf "../${SERVER_DIST}" +cd .. + +# Create combined directory structure +mkdir -p "${OUTPUT_DIR}" + +# Copy shared files +cp temp/polaris-quarkus-admin-${VERSION}/LICENSE "${OUTPUT_DIR}/" +cp temp/polaris-quarkus-admin-${VERSION}/NOTICE "${OUTPUT_DIR}/" +cp temp/polaris-quarkus-admin-${VERSION}/README.md "${OUTPUT_DIR}/" + +# Create admin and server directories +mkdir -p "${OUTPUT_DIR}/admin" "${OUTPUT_DIR}/server" + +# Copy the complete application structure for admin +cp -r temp/polaris-quarkus-admin-${VERSION}/{app,lib,quarkus,quarkus-run.jar,quarkus-app-dependencies.txt} "${OUTPUT_DIR}/admin/" + +# Copy the complete application structure for server +cp -r temp2/polaris-quarkus-server-${VERSION}/{app,lib,quarkus,quarkus-run.jar,quarkus-app-dependencies.txt} "${OUTPUT_DIR}/server/" + +# Create combined run script +cat > "${OUTPUT_DIR}/run.sh" << 'EOL' +#!/bin/bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "${SCRIPT_DIR}" + +# Default to server if no component specified +COMPONENT=${1:-server} + +if [ "$COMPONENT" != "server" ] && [ "$COMPONENT" != "admin" ]; then + echo "Usage: $0 [server|admin] [additional arguments...]" + exit 1 +fi + +# Shift off the first argument so $@ contains remaining args +shift + +# Common JVM options +JAVA_OPTS="${JAVA_OPTS} -Dquarkus.http.host=0.0.0.0" + +if [ "$COMPONENT" = "server" ]; then + echo "Starting Polaris Server..." + cd server + java ${JAVA_OPTS} -jar quarkus-run.jar "$@" +else + echo "Starting Polaris Admin Tool..." + cd admin + java ${JAVA_OPTS} -jar quarkus-run.jar "$@" +fi +EOL + +chmod +x "${OUTPUT_DIR}/run.sh" + +# Create combined dependencies file for reference +cat "${OUTPUT_DIR}/admin/quarkus-app-dependencies.txt" "${OUTPUT_DIR}/server/quarkus-app-dependencies.txt" | sort | uniq > "${OUTPUT_DIR}/quarkus-app-dependencies.txt" + +# Create tarball +tar czf "polaris-quarkus-combined-${VERSION}.tgz" "${OUTPUT_DIR}" + +# Clean up +rm -rf temp temp2 "${OUTPUT_DIR}" + +echo "Created combined distribution: polaris-quarkus-combined-${VERSION}.tgz" \ No newline at end of file From 9726cf7fb15ff72a4881f799e8263e0da744abf4 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Tue, 13 May 2025 20:28:05 -0700 Subject: [PATCH 02/23] POLARIS-1: Fix repository configuration in custom plugins and restore run script - Remove repository configuration from plugins, restore run.sh script, fix build issues --- buildSrc/.gitignore | 2 + buildSrc/build.gradle.kts | 12 +++++ .../kotlin/polaris-conventions.gradle.kts | 16 ++++++ .../kotlin/polaris-distribution.gradle.kts | 9 ++++ quarkus/build.gradle.kts | 7 +++ quarkus/combined/build.gradle.kts | 48 +++++++++++++++++ .../combined/src/main/distribution/README.md | 52 +++++++++++++++++++ quarkus/combined/src/main/scripts/run.sh | 28 ++++++++++ 8 files changed, 174 insertions(+) create mode 100644 buildSrc/.gitignore create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/polaris-conventions.gradle.kts create mode 100644 buildSrc/src/main/kotlin/polaris-distribution.gradle.kts create mode 100644 quarkus/build.gradle.kts create mode 100644 quarkus/combined/build.gradle.kts create mode 100644 quarkus/combined/src/main/distribution/README.md create mode 100755 quarkus/combined/src/main/scripts/run.sh diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore new file mode 100644 index 0000000000..35bd3c6303 --- /dev/null +++ b/buildSrc/.gitignore @@ -0,0 +1,2 @@ +.gradle/ +build/ \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000000..4ef362787f --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() + gradlePluginPortal() +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22") +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts b/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts new file mode 100644 index 0000000000..e3e047b915 --- /dev/null +++ b/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts @@ -0,0 +1,16 @@ +plugins { + `java-library` + kotlin("jvm") +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +tasks.withType { + kotlinOptions { + jvmTarget = "17" + javaParameters = true + } +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts b/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts new file mode 100644 index 0000000000..742cf365c7 --- /dev/null +++ b/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts @@ -0,0 +1,9 @@ +plugins { + distribution + `java-library` +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} \ No newline at end of file diff --git a/quarkus/build.gradle.kts b/quarkus/build.gradle.kts new file mode 100644 index 0000000000..60e1203369 --- /dev/null +++ b/quarkus/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + id("polaris-conventions") +} + +subprojects { + group = "org.apache.polaris" +} \ No newline at end of file diff --git a/quarkus/combined/build.gradle.kts b/quarkus/combined/build.gradle.kts new file mode 100644 index 0000000000..66eb80aaec --- /dev/null +++ b/quarkus/combined/build.gradle.kts @@ -0,0 +1,48 @@ +import org.apache.tools.ant.filters.ReplaceTokens + +plugins { + id("polaris-distribution") +} + +description = "Apache Polaris Combined Distribution" + +val adminProject = project(":polaris-quarkus-admin") +val serverProject = project(":polaris-quarkus-server") + +// Create a run script that can launch either admin or server +val runScript = tasks.register("createRunScript") { + from("src/main/scripts/run.sh") + into(layout.buildDirectory.dir("scripts")) + filter("tokens" to mapOf("version" to version)) + fileMode = 0b111101101 // 755 in octal +} + +distributions { + main { + distributionBaseName.set("polaris-quarkus-combined") + contents { + // Add run script + from(runScript) + + // Copy admin distribution contents + into("admin") { + from(adminProject.layout.buildDirectory.dir("quarkus-app")) + } + + // Copy server distribution contents + into("server") { + from(serverProject.layout.buildDirectory.dir("quarkus-app")) + } + + // Add shared files from admin distribution (they're the same in both) + from("${adminProject.projectDir}/distribution/NOTICE") + from("${adminProject.projectDir}/distribution/LICENSE") + from("${adminProject.projectDir}/distribution/README.md") + } + } +} + +// Make sure the admin and server distributions are built before this one +tasks.named("assembleDist") { + dependsOn(":polaris-quarkus-admin:build", ":polaris-quarkus-server:build") +} \ No newline at end of file diff --git a/quarkus/combined/src/main/distribution/README.md b/quarkus/combined/src/main/distribution/README.md new file mode 100644 index 0000000000..5414a00405 --- /dev/null +++ b/quarkus/combined/src/main/distribution/README.md @@ -0,0 +1,52 @@ +# Apache Polaris Combined Distribution + +This distribution contains both the Polaris Server and Admin Tool in a single package. + +## Prerequisites + +- Java SE 21 or higher + +## Directory Structure + +``` +polaris-quarkus-combined-@version@/ +├── LICENSE +├── NOTICE +├── README.md +├── admin/ # Admin tool files +├── server/ # Server files +└── run.sh # Combined run script +``` + +## Usage + +The `run.sh` script can launch either the server or admin tool: + +### Start the Server + +```bash +./run.sh server # or just ./run.sh (server is default) +``` + +### Use the Admin Tool + +```bash +./run.sh admin --help # Show admin commands +./run.sh admin bootstrap -h # Show bootstrap help +./run.sh admin purge -h # Show purge help +``` + +### Configuration + +Both components can be configured using environment variables or system properties. For example: + +```bash +# Configure server port +JAVA_OPTS="-Dquarkus.http.port=8080" ./run.sh server + +# Configure admin tool +JAVA_OPTS="-Dpolaris.persistence.type=relational-jdbc" ./run.sh admin +``` + +For more details on configuration, please refer to the Polaris documentation: +https://polaris.apache.org/ \ No newline at end of file diff --git a/quarkus/combined/src/main/scripts/run.sh b/quarkus/combined/src/main/scripts/run.sh new file mode 100755 index 0000000000..166c28c3e1 --- /dev/null +++ b/quarkus/combined/src/main/scripts/run.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "${SCRIPT_DIR}" + +# Default to server if no component specified +COMPONENT=${1:-server} + +if [ "$COMPONENT" != "server" ] && [ "$COMPONENT" != "admin" ]; then + echo "Usage: $0 [server|admin] [additional arguments...]" + exit 1 +fi + +# Shift off the first argument so $@ contains remaining args +shift + +# Common JVM options +JAVA_OPTS="${JAVA_OPTS} -Dquarkus.http.host=0.0.0.0" + +if [ "$COMPONENT" = "server" ]; then + echo "Starting Polaris Server..." + cd server + java ${JAVA_OPTS} -jar quarkus-run.jar "$@" +else + echo "Starting Polaris Admin Tool..." + cd admin + java ${JAVA_OPTS} -jar quarkus-run.jar "$@" +fi \ No newline at end of file From 60c3fb64132b05f5c16c200bfbde33cdbf1863f4 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Tue, 13 May 2025 20:51:10 -0700 Subject: [PATCH 03/23] POLARIS-1: Remove run-script module - Remove run-script module from projects.main.properties - Remove run-script dependency from admin and server modules - Fix code formatting in build files --- gradle/projects.main.properties | 1 - quarkus/admin/build.gradle.kts | 14 +------------- quarkus/server/build.gradle.kts | 12 +----------- 3 files changed, 2 insertions(+), 25 deletions(-) diff --git a/gradle/projects.main.properties b/gradle/projects.main.properties index 5c1a222d55..8581602da0 100644 --- a/gradle/projects.main.properties +++ b/gradle/projects.main.properties @@ -32,7 +32,6 @@ polaris-quarkus-spark-tests=quarkus/spark-tests polaris-quarkus-admin=quarkus/admin polaris-quarkus-common=quarkus/common polaris-quarkus-test-commons=quarkus/test-commons -polaris-quarkus-run-script=quarkus/run-script polaris-eclipselink=extension/persistence/eclipselink polaris-jpa-model=extension/persistence/jpa-model polaris-relational-jdbc=extension/persistence/relational-jdbc diff --git a/quarkus/admin/build.gradle.kts b/quarkus/admin/build.gradle.kts index 18b998a21b..54dbb2b680 100644 --- a/quarkus/admin/build.gradle.kts +++ b/quarkus/admin/build.gradle.kts @@ -29,8 +29,6 @@ plugins { id("distribution") } -val runScript by configurations.creating { description = "Used to reference the run.sh script" } - val distributionZip by configurations.creating { description = "Used to reference the distribution zip" } @@ -69,8 +67,6 @@ dependencies { testRuntimeOnly(project(":polaris-eclipselink")) testRuntimeOnly("org.postgresql:postgresql") - - runScript(project(":polaris-quarkus-run-script", "runScript")) } quarkus { @@ -93,7 +89,6 @@ quarkus { distributions { main { contents { - from(runScript) from(project.layout.buildDirectory.dir("quarkus-app")) from("distribution/NOTICE") from("distribution/LICENSE") @@ -108,17 +103,10 @@ val quarkusBuild = tasks.named("quarkusBuild") val distTar = tasks.named("distTar") { dependsOn(quarkusBuild) - // Trigger resolution (and build) of the run-script artifact - inputs.files(runScript) compression = Compression.GZIP } -val distZip = - tasks.named("distZip") { - dependsOn(quarkusBuild) - // Trigger resolution (and build) of the run-script artifact - inputs.files(runScript) - } +val distZip = tasks.named("distZip") { dependsOn(quarkusBuild) } val digestDistTar = tasks.register("digestDistTar") { diff --git a/quarkus/server/build.gradle.kts b/quarkus/server/build.gradle.kts index b9af7b98fe..81b672a906 100644 --- a/quarkus/server/build.gradle.kts +++ b/quarkus/server/build.gradle.kts @@ -33,8 +33,6 @@ plugins { val quarkusRunner by configurations.creating { description = "Used to reference the generated runner-jar" } -val runScript by configurations.creating { description = "Used to reference the run.sh script" } - val distributionZip by configurations.creating { description = "Used to reference the distribution zip" } @@ -56,8 +54,6 @@ dependencies { // enforce the Quarkus _platform_ here, to get a consistent and validated set of dependencies implementation(enforcedPlatform(libs.quarkus.bom)) implementation("io.quarkus:quarkus-container-image-docker") - - runScript(project(":polaris-quarkus-run-script", "runScript")) } quarkus { @@ -87,7 +83,6 @@ tasks.named("quarkusRun") { distributions { main { contents { - from(runScript) from(project.layout.buildDirectory.dir("quarkus-app")) from("distribution/NOTICE") from("distribution/LICENSE") @@ -102,15 +97,10 @@ val quarkusBuild = tasks.named("quarkusBuild") val distTar = tasks.named("distTar") { dependsOn(quarkusBuild) - inputs.files(runScript) compression = Compression.GZIP } -val distZip = - tasks.named("distZip") { - dependsOn(quarkusBuild) - inputs.files(runScript) - } +val distZip = tasks.named("distZip") { dependsOn(quarkusBuild) } val digestDistTar = tasks.register("digestDistTar") { From 5409eb733dd0c4b9570bd2ffbc0fc2f1b353e3f8 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Tue, 13 May 2025 20:52:06 -0700 Subject: [PATCH 04/23] delete module run script --- quarkus/run-script/build.gradle.kts | 36 -------------------------- quarkus/run-script/scripts/run.sh | 39 ----------------------------- 2 files changed, 75 deletions(-) delete mode 100644 quarkus/run-script/build.gradle.kts delete mode 100755 quarkus/run-script/scripts/run.sh diff --git a/quarkus/run-script/build.gradle.kts b/quarkus/run-script/build.gradle.kts deleted file mode 100644 index 315e88edda..0000000000 --- a/quarkus/run-script/build.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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. - */ - -val runScript by - configurations.creating { description = "Used to provide the run.sh script" } - -description = "Provides run.sh script for Quarkus fast-jar for distribution tar/zip" - -// This is a separate project that only provides run scripts (run.sh). -// It is a separate project, because it is not good practice to directly -// reference files outside any project. -// -// Artifacts are NOT published as a Maven artifacts. - -artifacts { - add(runScript.name, project.layout.projectDirectory.file("scripts/run.sh")) -} - -// Need this task to be present, there are no checks/tests in this project though -tasks.register("check") diff --git a/quarkus/run-script/scripts/run.sh b/quarkus/run-script/scripts/run.sh deleted file mode 100755 index d7531c66ae..0000000000 --- a/quarkus/run-script/scripts/run.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/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. -# - -# Linux Quarkus fast-jar run script for Apache Polaris - -set -e - -script_dir="$(dirname "$0")" - -if [ -z "$JAVA_HOME" ] ; then - JAVACMD="`\\unset -f command; \\command -v java`" -else - JAVACMD="$JAVA_HOME/bin/java" -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "The JAVA_HOME environment variable is not defined correctly," >&2 - echo "this environment variable is needed to run this program." >&2 - exit 1 -fi - -exec "${JAVACMD}" -jar "${script_dir}/quarkus-run.jar" $@ From 5c4ab8c2c500f4a42024b5a339cf940b9c31e482 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Tue, 13 May 2025 21:01:05 -0700 Subject: [PATCH 05/23] delete unused file --- merge-distributions.sh | 82 ------------------------------------------ 1 file changed, 82 deletions(-) delete mode 100755 merge-distributions.sh diff --git a/merge-distributions.sh b/merge-distributions.sh deleted file mode 100755 index 5e76e27dfe..0000000000 --- a/merge-distributions.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# Get version from Gradle -VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') - -# Set paths -ADMIN_DIST="quarkus/admin/build/distributions/polaris-quarkus-admin-${VERSION}.tgz" -SERVER_DIST="quarkus/server/build/distributions/polaris-quarkus-server-${VERSION}.tgz" -OUTPUT_DIR="polaris-quarkus-combined-${VERSION}" - -# Clean up any existing directories -rm -rf temp temp2 "${OUTPUT_DIR}" -mkdir -p temp temp2 - -# Extract both distributions -cd temp -tar xf "../${ADMIN_DIST}" -cd ../temp2 -tar xf "../${SERVER_DIST}" -cd .. - -# Create combined directory structure -mkdir -p "${OUTPUT_DIR}" - -# Copy shared files -cp temp/polaris-quarkus-admin-${VERSION}/LICENSE "${OUTPUT_DIR}/" -cp temp/polaris-quarkus-admin-${VERSION}/NOTICE "${OUTPUT_DIR}/" -cp temp/polaris-quarkus-admin-${VERSION}/README.md "${OUTPUT_DIR}/" - -# Create admin and server directories -mkdir -p "${OUTPUT_DIR}/admin" "${OUTPUT_DIR}/server" - -# Copy the complete application structure for admin -cp -r temp/polaris-quarkus-admin-${VERSION}/{app,lib,quarkus,quarkus-run.jar,quarkus-app-dependencies.txt} "${OUTPUT_DIR}/admin/" - -# Copy the complete application structure for server -cp -r temp2/polaris-quarkus-server-${VERSION}/{app,lib,quarkus,quarkus-run.jar,quarkus-app-dependencies.txt} "${OUTPUT_DIR}/server/" - -# Create combined run script -cat > "${OUTPUT_DIR}/run.sh" << 'EOL' -#!/bin/bash - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "${SCRIPT_DIR}" - -# Default to server if no component specified -COMPONENT=${1:-server} - -if [ "$COMPONENT" != "server" ] && [ "$COMPONENT" != "admin" ]; then - echo "Usage: $0 [server|admin] [additional arguments...]" - exit 1 -fi - -# Shift off the first argument so $@ contains remaining args -shift - -# Common JVM options -JAVA_OPTS="${JAVA_OPTS} -Dquarkus.http.host=0.0.0.0" - -if [ "$COMPONENT" = "server" ]; then - echo "Starting Polaris Server..." - cd server - java ${JAVA_OPTS} -jar quarkus-run.jar "$@" -else - echo "Starting Polaris Admin Tool..." - cd admin - java ${JAVA_OPTS} -jar quarkus-run.jar "$@" -fi -EOL - -chmod +x "${OUTPUT_DIR}/run.sh" - -# Create combined dependencies file for reference -cat "${OUTPUT_DIR}/admin/quarkus-app-dependencies.txt" "${OUTPUT_DIR}/server/quarkus-app-dependencies.txt" | sort | uniq > "${OUTPUT_DIR}/quarkus-app-dependencies.txt" - -# Create tarball -tar czf "polaris-quarkus-combined-${VERSION}.tgz" "${OUTPUT_DIR}" - -# Clean up -rm -rf temp temp2 "${OUTPUT_DIR}" - -echo "Created combined distribution: polaris-quarkus-combined-${VERSION}.tgz" \ No newline at end of file From 3f0eddfc9a2f5094693af6af076f7c96457ec4bb Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 10:16:34 -0700 Subject: [PATCH 06/23] Add digest and fix the layout --- buildSrc/.gitignore | 2 - buildSrc/build.gradle.kts | 12 ---- .../kotlin/polaris-conventions.gradle.kts | 16 ----- .../kotlin/polaris-distribution.gradle.kts | 9 --- gradle/projects.main.properties | 1 + quarkus/build.gradle.kts | 4 +- quarkus/combined/build.gradle.kts | 62 +++++++++++++------ .../{src/main => }/distribution/README.md | 0 .../combined/{src/main => }/scripts/run.sh | 0 9 files changed, 48 insertions(+), 58 deletions(-) delete mode 100644 buildSrc/.gitignore delete mode 100644 buildSrc/build.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/polaris-conventions.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/polaris-distribution.gradle.kts rename quarkus/combined/{src/main => }/distribution/README.md (100%) rename quarkus/combined/{src/main => }/scripts/run.sh (100%) diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore deleted file mode 100644 index 35bd3c6303..0000000000 --- a/buildSrc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.gradle/ -build/ \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts deleted file mode 100644 index 4ef362787f..0000000000 --- a/buildSrc/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - `kotlin-dsl` -} - -repositories { - mavenCentral() - gradlePluginPortal() -} - -dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22") -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts b/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts deleted file mode 100644 index e3e047b915..0000000000 --- a/buildSrc/src/main/kotlin/polaris-conventions.gradle.kts +++ /dev/null @@ -1,16 +0,0 @@ -plugins { - `java-library` - kotlin("jvm") -} - -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} - -tasks.withType { - kotlinOptions { - jvmTarget = "17" - javaParameters = true - } -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts b/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts deleted file mode 100644 index 742cf365c7..0000000000 --- a/buildSrc/src/main/kotlin/polaris-distribution.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -plugins { - distribution - `java-library` -} - -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} \ No newline at end of file diff --git a/gradle/projects.main.properties b/gradle/projects.main.properties index 8581602da0..d7d55b3102 100644 --- a/gradle/projects.main.properties +++ b/gradle/projects.main.properties @@ -28,6 +28,7 @@ polaris-service-common=service/common polaris-quarkus-defaults=quarkus/defaults polaris-quarkus-service=quarkus/service polaris-quarkus-server=quarkus/server +polaris-quarkus-combined=quarkus/combined polaris-quarkus-spark-tests=quarkus/spark-tests polaris-quarkus-admin=quarkus/admin polaris-quarkus-common=quarkus/common diff --git a/quarkus/build.gradle.kts b/quarkus/build.gradle.kts index 60e1203369..0cab462e8d 100644 --- a/quarkus/build.gradle.kts +++ b/quarkus/build.gradle.kts @@ -1,7 +1,9 @@ plugins { - id("polaris-conventions") + base } +description = "Apache Polaris Quarkus Modules" + subprojects { group = "org.apache.polaris" } \ No newline at end of file diff --git a/quarkus/combined/build.gradle.kts b/quarkus/combined/build.gradle.kts index 66eb80aaec..3ba643760c 100644 --- a/quarkus/combined/build.gradle.kts +++ b/quarkus/combined/build.gradle.kts @@ -1,7 +1,9 @@ import org.apache.tools.ant.filters.ReplaceTokens +import publishing.GenerateDigest plugins { - id("polaris-distribution") + base + id("distribution") } description = "Apache Polaris Combined Distribution" @@ -9,21 +11,10 @@ description = "Apache Polaris Combined Distribution" val adminProject = project(":polaris-quarkus-admin") val serverProject = project(":polaris-quarkus-server") -// Create a run script that can launch either admin or server -val runScript = tasks.register("createRunScript") { - from("src/main/scripts/run.sh") - into(layout.buildDirectory.dir("scripts")) - filter("tokens" to mapOf("version" to version)) - fileMode = 0b111101101 // 755 in octal -} - distributions { main { distributionBaseName.set("polaris-quarkus-combined") contents { - // Add run script - from(runScript) - // Copy admin distribution contents into("admin") { from(adminProject.layout.buildDirectory.dir("quarkus-app")) @@ -34,15 +25,50 @@ distributions { from(serverProject.layout.buildDirectory.dir("quarkus-app")) } - // Add shared files from admin distribution (they're the same in both) + from("scripts/run.sh") + from("distribution/README.md") + + // TODO: combine the LICENSE and NOTICE in a follow-up PR from("${adminProject.projectDir}/distribution/NOTICE") from("${adminProject.projectDir}/distribution/LICENSE") - from("${adminProject.projectDir}/distribution/README.md") } } } -// Make sure the admin and server distributions are built before this one -tasks.named("assembleDist") { - dependsOn(":polaris-quarkus-admin:build", ":polaris-quarkus-server:build") -} \ No newline at end of file +val distTar = tasks.named("distTar") { + dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") + inputs.files(adminProject.layout.buildDirectory.dir("quarkus-app")) + inputs.files(serverProject.layout.buildDirectory.dir("quarkus-app")) + compression = Compression.GZIP +} + +val distZip = tasks.named("distZip") { + dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") + inputs.files(adminProject.layout.buildDirectory.dir("quarkus-app")) + inputs.files(serverProject.layout.buildDirectory.dir("quarkus-app")) +} + +val digestDistTar = + tasks.register("digestDistTar") { + description = "Generate the distribution tar digest" + mustRunAfter(distTar) + file.set { distTar.get().archiveFile.get().asFile } + } + +val digestDistZip = + tasks.register("digestDistZip") { + description = "Generate the distribution zip digest" + mustRunAfter(distZip) + file.set { distZip.get().archiveFile.get().asFile } + } + +distTar.configure { finalizedBy(digestDistTar) } + +distZip.configure { finalizedBy(digestDistZip) } + +//if (project.hasProperty("release") || project.hasProperty("signArtifacts")) { +// signing { +// sign(distTar.get()) +// sign(distZip.get()) +// } +//} \ No newline at end of file diff --git a/quarkus/combined/src/main/distribution/README.md b/quarkus/combined/distribution/README.md similarity index 100% rename from quarkus/combined/src/main/distribution/README.md rename to quarkus/combined/distribution/README.md diff --git a/quarkus/combined/src/main/scripts/run.sh b/quarkus/combined/scripts/run.sh similarity index 100% rename from quarkus/combined/src/main/scripts/run.sh rename to quarkus/combined/scripts/run.sh From a7a73fb10d5804ad3a57822b7f46c8fb670f95d0 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 10:18:32 -0700 Subject: [PATCH 07/23] Remove unused build file --- quarkus/build.gradle.kts | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 quarkus/build.gradle.kts diff --git a/quarkus/build.gradle.kts b/quarkus/build.gradle.kts deleted file mode 100644 index 0cab462e8d..0000000000 --- a/quarkus/build.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -plugins { - base -} - -description = "Apache Polaris Quarkus Modules" - -subprojects { - group = "org.apache.polaris" -} \ No newline at end of file From 94624bb891b7ff338b726fe572fc146dee608ab8 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 10:49:17 -0700 Subject: [PATCH 08/23] Add signing --- quarkus/combined/build.gradle.kts | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/quarkus/combined/build.gradle.kts b/quarkus/combined/build.gradle.kts index 3ba643760c..9303d28461 100644 --- a/quarkus/combined/build.gradle.kts +++ b/quarkus/combined/build.gradle.kts @@ -2,11 +2,11 @@ import org.apache.tools.ant.filters.ReplaceTokens import publishing.GenerateDigest plugins { - base id("distribution") + id("signing") } -description = "Apache Polaris Combined Distribution" +description = "Apache Polaris Binary Distribution" val adminProject = project(":polaris-quarkus-admin") val serverProject = project(":polaris-quarkus-server") @@ -37,15 +37,11 @@ distributions { val distTar = tasks.named("distTar") { dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") - inputs.files(adminProject.layout.buildDirectory.dir("quarkus-app")) - inputs.files(serverProject.layout.buildDirectory.dir("quarkus-app")) compression = Compression.GZIP } val distZip = tasks.named("distZip") { dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") - inputs.files(adminProject.layout.buildDirectory.dir("quarkus-app")) - inputs.files(serverProject.layout.buildDirectory.dir("quarkus-app")) } val digestDistTar = @@ -66,9 +62,9 @@ distTar.configure { finalizedBy(digestDistTar) } distZip.configure { finalizedBy(digestDistZip) } -//if (project.hasProperty("release") || project.hasProperty("signArtifacts")) { -// signing { -// sign(distTar.get()) -// sign(distZip.get()) -// } -//} \ No newline at end of file +if (project.hasProperty("release") || project.hasProperty("signArtifacts")) { + signing { + sign(distTar.get()) + sign(distZip.get()) + } +} \ No newline at end of file From 7280b9f2670e7641b0508c07e4a650808162e9c2 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 11:13:24 -0700 Subject: [PATCH 09/23] Fixed README and moduel name --- gradle/projects.main.properties | 2 +- quarkus/admin/build.gradle.kts | 1 - quarkus/admin/distribution/README.md | 56 ------------------- .../build.gradle.kts | 3 +- .../distribution/README.md | 6 +- .../{combined => distribution}/scripts/run.sh | 0 quarkus/server/build.gradle.kts | 1 - quarkus/server/distribution/README.md | 40 ------------- 8 files changed, 6 insertions(+), 103 deletions(-) delete mode 100644 quarkus/admin/distribution/README.md rename quarkus/{combined => distribution}/build.gradle.kts (95%) rename quarkus/{combined => distribution}/distribution/README.md (89%) rename quarkus/{combined => distribution}/scripts/run.sh (100%) delete mode 100644 quarkus/server/distribution/README.md diff --git a/gradle/projects.main.properties b/gradle/projects.main.properties index d7d55b3102..ed46bf280e 100644 --- a/gradle/projects.main.properties +++ b/gradle/projects.main.properties @@ -28,7 +28,7 @@ polaris-service-common=service/common polaris-quarkus-defaults=quarkus/defaults polaris-quarkus-service=quarkus/service polaris-quarkus-server=quarkus/server -polaris-quarkus-combined=quarkus/combined +polaris-quarkus-distribution=quarkus/distribution polaris-quarkus-spark-tests=quarkus/spark-tests polaris-quarkus-admin=quarkus/admin polaris-quarkus-common=quarkus/common diff --git a/quarkus/admin/build.gradle.kts b/quarkus/admin/build.gradle.kts index 54dbb2b680..3f47b61750 100644 --- a/quarkus/admin/build.gradle.kts +++ b/quarkus/admin/build.gradle.kts @@ -92,7 +92,6 @@ distributions { from(project.layout.buildDirectory.dir("quarkus-app")) from("distribution/NOTICE") from("distribution/LICENSE") - from("distribution/README.md") from("distribution/DISCLAIMER") } } diff --git a/quarkus/admin/distribution/README.md b/quarkus/admin/distribution/README.md deleted file mode 100644 index f50f58c543..0000000000 --- a/quarkus/admin/distribution/README.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Polaris Admin Tool - -The Polaris Admin Tool is a maintenance tool for performing administrative tasks on the Polaris server. - -## Prerequisites - -Polaris admin tool requires a Java SE 21 or higher to run. - -## Getting help - -To get help, simple run (in a command line where you extracted the Polaris tool archive): - -``` -./run.sh help -``` - -## Bootstrap - -You can bootstrap realms and root principal credentials with: - -``` -./run.sh bootstrap -``` - -providing all required arguments. - -## Purge - -You can purge realms and all associated entities with: - -``` -./run.sh purge -``` - -## Documentation - -For more details, please take a look on the documentation: https://polaris.apache.org/in-dev/unreleased/admin-tool/ \ No newline at end of file diff --git a/quarkus/combined/build.gradle.kts b/quarkus/distribution/build.gradle.kts similarity index 95% rename from quarkus/combined/build.gradle.kts rename to quarkus/distribution/build.gradle.kts index 9303d28461..9d20ccd8ff 100644 --- a/quarkus/combined/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -13,7 +13,7 @@ val serverProject = project(":polaris-quarkus-server") distributions { main { - distributionBaseName.set("polaris-quarkus-combined") + distributionBaseName.set("polaris-quarkus-distribution") contents { // Copy admin distribution contents into("admin") { @@ -27,6 +27,7 @@ distributions { from("scripts/run.sh") from("distribution/README.md") + from("../../DISCLAIMER") // TODO: combine the LICENSE and NOTICE in a follow-up PR from("${adminProject.projectDir}/distribution/NOTICE") diff --git a/quarkus/combined/distribution/README.md b/quarkus/distribution/distribution/README.md similarity index 89% rename from quarkus/combined/distribution/README.md rename to quarkus/distribution/distribution/README.md index 5414a00405..9a13837a84 100644 --- a/quarkus/combined/distribution/README.md +++ b/quarkus/distribution/distribution/README.md @@ -1,4 +1,4 @@ -# Apache Polaris Combined Distribution +# Apache Polaris Distribution This distribution contains both the Polaris Server and Admin Tool in a single package. @@ -9,13 +9,13 @@ This distribution contains both the Polaris Server and Admin Tool in a single pa ## Directory Structure ``` -polaris-quarkus-combined-@version@/ +polaris-quarkus-distribution-@version@/ ├── LICENSE ├── NOTICE ├── README.md ├── admin/ # Admin tool files ├── server/ # Server files -└── run.sh # Combined run script +└── run.sh ``` ## Usage diff --git a/quarkus/combined/scripts/run.sh b/quarkus/distribution/scripts/run.sh similarity index 100% rename from quarkus/combined/scripts/run.sh rename to quarkus/distribution/scripts/run.sh diff --git a/quarkus/server/build.gradle.kts b/quarkus/server/build.gradle.kts index 81b672a906..5efe39200a 100644 --- a/quarkus/server/build.gradle.kts +++ b/quarkus/server/build.gradle.kts @@ -86,7 +86,6 @@ distributions { from(project.layout.buildDirectory.dir("quarkus-app")) from("distribution/NOTICE") from("distribution/LICENSE") - from("distribution/README.md") from("distribution/DISCLAIMER") } } diff --git a/quarkus/server/distribution/README.md b/quarkus/server/distribution/README.md deleted file mode 100644 index 00003f1e6f..0000000000 --- a/quarkus/server/distribution/README.md +++ /dev/null @@ -1,40 +0,0 @@ - - -# Apache Polaris - Server - -## Prerequisites - -Polaris server requires a Java SE 21 or higher to run. - -## Start the server - -In a command line, in the directory where you extracted the Polaris server archive, run the following command to start the server: - -``` -./run.sh -``` - -## Stop the server - -In the command line where you started the Polaris server, simply type CTRL-C to stop the server. - -## Documentation - -For more details, please take a look on the documentation: https://polaris.apache.org/in-dev/unreleased/configuring-polaris-for-production/ \ No newline at end of file From 6fbbad8bc99326fe816b509359acdcc9a0d727de Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 11:17:08 -0700 Subject: [PATCH 10/23] Change the distribution base name. --- quarkus/distribution/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 9d20ccd8ff..f4f7588c2a 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -13,7 +13,7 @@ val serverProject = project(":polaris-quarkus-server") distributions { main { - distributionBaseName.set("polaris-quarkus-distribution") + distributionBaseName.set("polaris") contents { // Copy admin distribution contents into("admin") { From 06cd4dedf2e4c9f84b476a23daed8d38009043de Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 13:27:48 -0700 Subject: [PATCH 11/23] Add ASF license header to the new files --- quarkus/distribution/build.gradle.kts | 19 +++++++++++++++++++ quarkus/distribution/distribution/README.md | 17 +++++++++++++++++ quarkus/distribution/scripts/run.sh | 17 +++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index f4f7588c2a..1cfd0e9ea4 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -1,3 +1,22 @@ +/* + * 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. + */ + import org.apache.tools.ant.filters.ReplaceTokens import publishing.GenerateDigest diff --git a/quarkus/distribution/distribution/README.md b/quarkus/distribution/distribution/README.md index 9a13837a84..c4a617041d 100644 --- a/quarkus/distribution/distribution/README.md +++ b/quarkus/distribution/distribution/README.md @@ -1,3 +1,20 @@ +# 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. + # Apache Polaris Distribution This distribution contains both the Polaris Server and Admin Tool in a single package. diff --git a/quarkus/distribution/scripts/run.sh b/quarkus/distribution/scripts/run.sh index 166c28c3e1..b00f0cfbaa 100755 --- a/quarkus/distribution/scripts/run.sh +++ b/quarkus/distribution/scripts/run.sh @@ -1,4 +1,21 @@ #!/bin/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. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}" From 9e57ee8160134f05ba0f182bf1899cb789136cf0 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Wed, 14 May 2025 22:28:23 -0700 Subject: [PATCH 12/23] Resolve comments --- quarkus/distribution/build.gradle.kts | 6 +++--- quarkus/distribution/scripts/run.sh | 9 ++------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 1cfd0e9ea4..89be91c135 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -32,7 +32,7 @@ val serverProject = project(":polaris-quarkus-server") distributions { main { - distributionBaseName.set("polaris") + distributionBaseName.set("polaris-bin") contents { // Copy admin distribution contents into("admin") { @@ -67,14 +67,14 @@ val distZip = tasks.named("distZip") { val digestDistTar = tasks.register("digestDistTar") { description = "Generate the distribution tar digest" - mustRunAfter(distTar) + dependsOn(distTar) file.set { distTar.get().archiveFile.get().asFile } } val digestDistZip = tasks.register("digestDistZip") { description = "Generate the distribution zip digest" - mustRunAfter(distZip) + dependsOn(distZip) file.set { distZip.get().archiveFile.get().asFile } } diff --git a/quarkus/distribution/scripts/run.sh b/quarkus/distribution/scripts/run.sh index b00f0cfbaa..60751ec64b 100755 --- a/quarkus/distribution/scripts/run.sh +++ b/quarkus/distribution/scripts/run.sh @@ -31,15 +31,10 @@ fi # Shift off the first argument so $@ contains remaining args shift -# Common JVM options -JAVA_OPTS="${JAVA_OPTS} -Dquarkus.http.host=0.0.0.0" - if [ "$COMPONENT" = "server" ]; then - echo "Starting Polaris Server..." cd server - java ${JAVA_OPTS} -jar quarkus-run.jar "$@" + java -jar quarkus-run.jar "$@" else - echo "Starting Polaris Admin Tool..." cd admin - java ${JAVA_OPTS} -jar quarkus-run.jar "$@" + java -jar quarkus-run.jar "$@" fi \ No newline at end of file From a80ac3ac1b544df7717782e44266c0dad78e21cf Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 11:04:23 -0700 Subject: [PATCH 13/23] Resolve the comments --- quarkus/distribution/scripts/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkus/distribution/scripts/run.sh b/quarkus/distribution/scripts/run.sh index 60751ec64b..d235f09155 100755 --- a/quarkus/distribution/scripts/run.sh +++ b/quarkus/distribution/scripts/run.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file From 00a6739cdf19d8058ea4d2d9483c3dcd290fd091 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 16:25:42 -0700 Subject: [PATCH 14/23] Use artifact dependency instead of cross-module task dependency --- quarkus/admin/build.gradle.kts | 25 +++++++++++++++++++++ quarkus/distribution/build.gradle.kts | 31 +++++++++++++++++++++------ quarkus/server/build.gradle.kts | 8 +++++++ 3 files changed, 58 insertions(+), 6 deletions(-) diff --git a/quarkus/admin/build.gradle.kts b/quarkus/admin/build.gradle.kts index 3f47b61750..7772f3131f 100644 --- a/quarkus/admin/build.gradle.kts +++ b/quarkus/admin/build.gradle.kts @@ -141,6 +141,31 @@ artifacts { add(distributionZip.name, provider { digestDistZip.get().outputFile }) { builtBy(digestDistZip) } } +// Configuration to expose distribution artifacts +val distributionElements by + configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false + } + +// Register the quarkus app directory as an artifact +artifacts { + add("distributionElements", layout.buildDirectory.dir("quarkus-app")) { builtBy("quarkusBuild") } +} + +// Configuration to expose LICENSE and NOTICE files +val distributionDocs by + configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false + } + +// Add LICENSE and NOTICE as artifacts +artifacts { + add("distributionDocs", file("distribution/LICENSE")) + add("distributionDocs", file("distribution/NOTICE")) +} + afterEvaluate { publishing { publications { diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 89be91c135..334844f76b 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -30,18 +30,40 @@ description = "Apache Polaris Binary Distribution" val adminProject = project(":polaris-quarkus-admin") val serverProject = project(":polaris-quarkus-server") +// Configurations to resolve artifacts from other projects +val adminDistribution by configurations.creating { + isCanBeConsumed = false + isCanBeResolved = true +} + +val serverDistribution by configurations.creating { + isCanBeConsumed = false + isCanBeResolved = true +} + +val adminDocs by configurations.creating { + isCanBeConsumed = false + isCanBeResolved = true +} + +dependencies { + adminDistribution(project(":polaris-quarkus-admin", "distributionElements")) + serverDistribution(project(":polaris-quarkus-server", "distributionElements")) + adminDocs(project(":polaris-quarkus-admin", "distributionDocs")) +} + distributions { main { distributionBaseName.set("polaris-bin") contents { // Copy admin distribution contents into("admin") { - from(adminProject.layout.buildDirectory.dir("quarkus-app")) + from(adminDistribution) } // Copy server distribution contents into("server") { - from(serverProject.layout.buildDirectory.dir("quarkus-app")) + from(serverDistribution) } from("scripts/run.sh") @@ -49,19 +71,16 @@ distributions { from("../../DISCLAIMER") // TODO: combine the LICENSE and NOTICE in a follow-up PR - from("${adminProject.projectDir}/distribution/NOTICE") - from("${adminProject.projectDir}/distribution/LICENSE") + from(adminDocs) } } } val distTar = tasks.named("distTar") { - dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") compression = Compression.GZIP } val distZip = tasks.named("distZip") { - dependsOn(":polaris-quarkus-admin:quarkusBuild", ":polaris-quarkus-server:quarkusBuild") } val digestDistTar = diff --git a/quarkus/server/build.gradle.kts b/quarkus/server/build.gradle.kts index 5efe39200a..9fb4d0a8e5 100644 --- a/quarkus/server/build.gradle.kts +++ b/quarkus/server/build.gradle.kts @@ -39,6 +39,13 @@ val distributionZip by val distributionTar by configurations.creating { description = "Used to reference the distribution tarball" } +// Configuration to expose distribution artifacts +val distributionElements by + configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false + } + dependencies { implementation(project(":polaris-core")) implementation(project(":polaris-api-management-service")) @@ -136,6 +143,7 @@ artifacts { add(distributionTar.name, provider { digestDistTar.get().outputFile }) { builtBy(digestDistTar) } add(distributionZip.name, provider { distZip.get().archiveFile }) { builtBy(distZip) } add(distributionZip.name, provider { digestDistZip.get().outputFile }) { builtBy(digestDistZip) } + add("distributionElements", layout.buildDirectory.dir("quarkus-app")) { builtBy("quarkusBuild") } } afterEvaluate { From a0294048ae82a6c7cb79a3bea23ce39af4dfea69 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 16:34:11 -0700 Subject: [PATCH 15/23] Remove the tarball and zip file build in admin and server module --- quarkus/admin/build.gradle.kts | 76 --------------------------------- quarkus/server/build.gradle.kts | 67 ----------------------------- 2 files changed, 143 deletions(-) diff --git a/quarkus/admin/build.gradle.kts b/quarkus/admin/build.gradle.kts index 7772f3131f..0eeb117807 100644 --- a/quarkus/admin/build.gradle.kts +++ b/quarkus/admin/build.gradle.kts @@ -17,24 +17,14 @@ * under the License. */ -import io.quarkus.gradle.tasks.QuarkusBuild -import publishing.GenerateDigest - plugins { alias(libs.plugins.quarkus) alias(libs.plugins.jandex) alias(libs.plugins.openapi.generator) id("polaris-quarkus") // id("polaris-license-report") - id("distribution") } -val distributionZip by - configurations.creating { description = "Used to reference the distribution zip" } - -val distributionTar by - configurations.creating { description = "Used to reference the distribution tarball" } - dependencies { implementation(project(":polaris-core")) implementation(project(":polaris-version")) @@ -86,61 +76,6 @@ quarkus { ) } -distributions { - main { - contents { - from(project.layout.buildDirectory.dir("quarkus-app")) - from("distribution/NOTICE") - from("distribution/LICENSE") - from("distribution/DISCLAIMER") - } - } -} - -val quarkusBuild = tasks.named("quarkusBuild") - -val distTar = - tasks.named("distTar") { - dependsOn(quarkusBuild) - compression = Compression.GZIP - } - -val distZip = tasks.named("distZip") { dependsOn(quarkusBuild) } - -val digestDistTar = - tasks.register("digestDistTar") { - description = "Generate the distribution tar digest" - mustRunAfter(distTar) - file.set { distTar.get().archiveFile.get().asFile } - } - -val digestDistZip = - tasks.register("digestDistZip") { - description = "Generate the distribution zip digest" - mustRunAfter(distZip) - file.set { distZip.get().archiveFile.get().asFile } - } - -distTar.configure { finalizedBy(digestDistTar) } - -distZip.configure { finalizedBy(digestDistZip) } - -if (project.hasProperty("release") || project.hasProperty("signArtifacts")) { - signing { - sign(distTar.get()) - sign(distZip.get()) - } -} - -// Expose runnable jar via quarkusRunner configuration for integration-tests that require the -// server. -artifacts { - add(distributionTar.name, provider { distTar.get().archiveFile }) { builtBy(distTar) } - add(distributionTar.name, provider { digestDistTar.get().outputFile }) { builtBy(digestDistTar) } - add(distributionZip.name, provider { distZip.get().archiveFile }) { builtBy(distZip) } - add(distributionZip.name, provider { digestDistZip.get().outputFile }) { builtBy(digestDistZip) } -} - // Configuration to expose distribution artifacts val distributionElements by configurations.creating { @@ -165,14 +100,3 @@ artifacts { add("distributionDocs", file("distribution/LICENSE")) add("distributionDocs", file("distribution/NOTICE")) } - -afterEvaluate { - publishing { - publications { - named("maven") { - artifact(distTar.get().archiveFile) { builtBy(distTar) } - artifact(distZip.get().archiveFile) { builtBy(distZip) } - } - } - } -} diff --git a/quarkus/server/build.gradle.kts b/quarkus/server/build.gradle.kts index 9fb4d0a8e5..b486914c4f 100644 --- a/quarkus/server/build.gradle.kts +++ b/quarkus/server/build.gradle.kts @@ -19,7 +19,6 @@ import io.quarkus.gradle.tasks.QuarkusBuild import io.quarkus.gradle.tasks.QuarkusRun -import publishing.GenerateDigest plugins { alias(libs.plugins.quarkus) @@ -27,18 +26,11 @@ plugins { alias(libs.plugins.openapi.generator) id("polaris-quarkus") // id("polaris-license-report") - id("distribution") } val quarkusRunner by configurations.creating { description = "Used to reference the generated runner-jar" } -val distributionZip by - configurations.creating { description = "Used to reference the distribution zip" } - -val distributionTar by - configurations.creating { description = "Used to reference the distribution tarball" } - // Configuration to expose distribution artifacts val distributionElements by configurations.creating { @@ -87,72 +79,13 @@ tasks.named("quarkusRun") { listOf("-Dpolaris.bootstrap.credentials=POLARIS,root,secret", "-Dquarkus.console.color=true") } -distributions { - main { - contents { - from(project.layout.buildDirectory.dir("quarkus-app")) - from("distribution/NOTICE") - from("distribution/LICENSE") - from("distribution/DISCLAIMER") - } - } -} - val quarkusBuild = tasks.named("quarkusBuild") -val distTar = - tasks.named("distTar") { - dependsOn(quarkusBuild) - compression = Compression.GZIP - } - -val distZip = tasks.named("distZip") { dependsOn(quarkusBuild) } - -val digestDistTar = - tasks.register("digestDistTar") { - description = "Generate the distribution tar digest" - mustRunAfter(distTar) - file.set { distTar.get().archiveFile.get().asFile } - } - -val digestDistZip = - tasks.register("digestDistZip") { - description = "Generate the distribution zip digest" - mustRunAfter(distZip) - file.set { distZip.get().archiveFile.get().asFile } - } - -distTar.configure { finalizedBy(digestDistTar) } - -distZip.configure { finalizedBy(digestDistZip) } - -if (project.hasProperty("release") || project.hasProperty("signArtifacts")) { - signing { - sign(distTar.get()) - sign(distZip.get()) - } -} - // Expose runnable jar via quarkusRunner configuration for integration-tests that require the // server. artifacts { add(quarkusRunner.name, provider { quarkusBuild.get().fastJar.resolve("quarkus-run.jar") }) { builtBy(quarkusBuild) } - add(distributionTar.name, provider { distTar.get().archiveFile }) { builtBy(distTar) } - add(distributionTar.name, provider { digestDistTar.get().outputFile }) { builtBy(digestDistTar) } - add(distributionZip.name, provider { distZip.get().archiveFile }) { builtBy(distZip) } - add(distributionZip.name, provider { digestDistZip.get().outputFile }) { builtBy(digestDistZip) } add("distributionElements", layout.buildDirectory.dir("quarkus-app")) { builtBy("quarkusBuild") } } - -afterEvaluate { - publishing { - publications { - named("maven") { - artifact(distTar.get().archiveFile) { builtBy(distTar) } - artifact(distZip.get().archiveFile) { builtBy(distZip) } - } - } - } -} From 62db142660e75ffe1897dcd7917b280f8528c8b8 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 16:49:58 -0700 Subject: [PATCH 16/23] Split run.sh to two commands server, admin. --- quarkus/distribution/build.gradle.kts | 7 +++++- quarkus/distribution/distribution/README.md | 20 +++++++++-------- .../distribution/scripts/{run.sh => admin} | 22 ++----------------- quarkus/distribution/scripts/server | 22 +++++++++++++++++++ 4 files changed, 41 insertions(+), 30 deletions(-) rename quarkus/distribution/scripts/{run.sh => admin} (66%) create mode 100755 quarkus/distribution/scripts/server diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 334844f76b..0d62b941be 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -66,7 +66,12 @@ distributions { from(serverDistribution) } - from("scripts/run.sh") + // Copy scripts to bin directory + into("bin") { + from("scripts/server") + from("scripts/admin") + } + from("distribution/README.md") from("../../DISCLAIMER") diff --git a/quarkus/distribution/distribution/README.md b/quarkus/distribution/distribution/README.md index c4a617041d..05ff8032cb 100644 --- a/quarkus/distribution/distribution/README.md +++ b/quarkus/distribution/distribution/README.md @@ -30,27 +30,29 @@ polaris-quarkus-distribution-@version@/ ├── LICENSE ├── NOTICE ├── README.md +├── bin/ # Executable scripts +│ ├── admin +│ └── server +└── server/ # Server files ├── admin/ # Admin tool files -├── server/ # Server files -└── run.sh ``` ## Usage -The `run.sh` script can launch either the server or admin tool: +The distribution includes separate scripts for running the server and admin tool: ### Start the Server ```bash -./run.sh server # or just ./run.sh (server is default) +./bin/server ``` ### Use the Admin Tool ```bash -./run.sh admin --help # Show admin commands -./run.sh admin bootstrap -h # Show bootstrap help -./run.sh admin purge -h # Show purge help +./bin/admin --help # Show admin commands +./bin/admin bootstrap -h # Show bootstrap help +./bin/admin purge -h # Show purge help ``` ### Configuration @@ -59,10 +61,10 @@ Both components can be configured using environment variables or system properti ```bash # Configure server port -JAVA_OPTS="-Dquarkus.http.port=8080" ./run.sh server +JAVA_OPTS="-Dquarkus.http.port=8080" ./bin/server # Configure admin tool -JAVA_OPTS="-Dpolaris.persistence.type=relational-jdbc" ./run.sh admin +JAVA_OPTS="-Dpolaris.persistence.type=relational-jdbc" ./bin/admin ``` For more details on configuration, please refer to the Polaris documentation: diff --git a/quarkus/distribution/scripts/run.sh b/quarkus/distribution/scripts/admin similarity index 66% rename from quarkus/distribution/scripts/run.sh rename to quarkus/distribution/scripts/admin index d235f09155..c01c50ee48 100755 --- a/quarkus/distribution/scripts/run.sh +++ b/quarkus/distribution/scripts/admin @@ -18,23 +18,5 @@ # under the License. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "${SCRIPT_DIR}" - -# Default to server if no component specified -COMPONENT=${1:-server} - -if [ "$COMPONENT" != "server" ] && [ "$COMPONENT" != "admin" ]; then - echo "Usage: $0 [server|admin] [additional arguments...]" - exit 1 -fi - -# Shift off the first argument so $@ contains remaining args -shift - -if [ "$COMPONENT" = "server" ]; then - cd server - java -jar quarkus-run.jar "$@" -else - cd admin - java -jar quarkus-run.jar "$@" -fi \ No newline at end of file +cd "${SCRIPT_DIR}/../admin" || exit +java -jar quarkus-run.jar "$@" \ No newline at end of file diff --git a/quarkus/distribution/scripts/server b/quarkus/distribution/scripts/server new file mode 100755 index 0000000000..2fc391fda4 --- /dev/null +++ b/quarkus/distribution/scripts/server @@ -0,0 +1,22 @@ +#!/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. + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "${SCRIPT_DIR}/../server" || exit +java -jar quarkus-run.jar "$@" \ No newline at end of file From be866e7ad80fa582c85673cf4ac32db45995d7aa Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 16:56:49 -0700 Subject: [PATCH 17/23] Split run.sh to two commands server, admin. --- quarkus/{admin => }/distribution/DISCLAIMER | 0 quarkus/distribution/{distribution => }/README.md | 2 +- quarkus/distribution/{scripts => bin}/admin | 0 quarkus/distribution/{scripts => bin}/server | 0 quarkus/distribution/build.gradle.kts | 8 ++++---- quarkus/server/distribution/DISCLAIMER | 10 ---------- 6 files changed, 5 insertions(+), 15 deletions(-) rename quarkus/{admin => }/distribution/DISCLAIMER (100%) rename quarkus/distribution/{distribution => }/README.md (100%) rename quarkus/distribution/{scripts => bin}/admin (100%) rename quarkus/distribution/{scripts => bin}/server (100%) delete mode 100644 quarkus/server/distribution/DISCLAIMER diff --git a/quarkus/admin/distribution/DISCLAIMER b/quarkus/distribution/DISCLAIMER similarity index 100% rename from quarkus/admin/distribution/DISCLAIMER rename to quarkus/distribution/DISCLAIMER diff --git a/quarkus/distribution/distribution/README.md b/quarkus/distribution/README.md similarity index 100% rename from quarkus/distribution/distribution/README.md rename to quarkus/distribution/README.md index 05ff8032cb..6e2e957a62 100644 --- a/quarkus/distribution/distribution/README.md +++ b/quarkus/distribution/README.md @@ -30,11 +30,11 @@ polaris-quarkus-distribution-@version@/ ├── LICENSE ├── NOTICE ├── README.md +├── admin/ # Admin tool files ├── bin/ # Executable scripts │ ├── admin │ └── server └── server/ # Server files -├── admin/ # Admin tool files ``` ## Usage diff --git a/quarkus/distribution/scripts/admin b/quarkus/distribution/bin/admin similarity index 100% rename from quarkus/distribution/scripts/admin rename to quarkus/distribution/bin/admin diff --git a/quarkus/distribution/scripts/server b/quarkus/distribution/bin/server similarity index 100% rename from quarkus/distribution/scripts/server rename to quarkus/distribution/bin/server diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 0d62b941be..536508de09 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -68,12 +68,12 @@ distributions { // Copy scripts to bin directory into("bin") { - from("scripts/server") - from("scripts/admin") + from("bin/server") + from("bin/admin") } - from("distribution/README.md") - from("../../DISCLAIMER") + from("README.md") + from("DISCLAIMER") // TODO: combine the LICENSE and NOTICE in a follow-up PR from(adminDocs) diff --git a/quarkus/server/distribution/DISCLAIMER b/quarkus/server/distribution/DISCLAIMER deleted file mode 100644 index e78e79b242..0000000000 --- a/quarkus/server/distribution/DISCLAIMER +++ /dev/null @@ -1,10 +0,0 @@ -Apache Polaris (incubating) is an effort undergoing incubation at The Apache -Software Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. \ No newline at end of file From 8744252a95bcdfaeff186f78e2c9ba9b39a4423c Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 17:10:12 -0700 Subject: [PATCH 18/23] Update README.md --- quarkus/distribution/README.md | 36 ++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/quarkus/distribution/README.md b/quarkus/distribution/README.md index 6e2e957a62..9bb9dfadc2 100644 --- a/quarkus/distribution/README.md +++ b/quarkus/distribution/README.md @@ -1,23 +1,25 @@ -# 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. + # Apache Polaris Distribution -This distribution contains both the Polaris Server and Admin Tool in a single package. +This distribution contains both the Polaris Server and Admin Tool. ## Prerequisites From c62c61b541cd928c2dd01df678f9d6e48904540f Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Thu, 22 May 2025 18:07:19 -0700 Subject: [PATCH 19/23] Add back DISCLAIMER --- quarkus/admin/distribution/DISCLAIMER | 10 ++++++++++ quarkus/server/distribution/DISCLAIMER | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 quarkus/admin/distribution/DISCLAIMER create mode 100644 quarkus/server/distribution/DISCLAIMER diff --git a/quarkus/admin/distribution/DISCLAIMER b/quarkus/admin/distribution/DISCLAIMER new file mode 100644 index 0000000000..e78e79b242 --- /dev/null +++ b/quarkus/admin/distribution/DISCLAIMER @@ -0,0 +1,10 @@ +Apache Polaris (incubating) is an effort undergoing incubation at The Apache +Software Foundation (ASF), sponsored by the Apache Incubator PMC. + +Incubation is required of all newly accepted projects until a further review +indicates that the infrastructure, communications, and decision making process +have stabilized in a manner consistent with other successful ASF projects. + +While incubation status is not necessarily a reflection of the completeness +or stability of the code, it does indicate that the project has yet to be +fully endorsed by the ASF. \ No newline at end of file diff --git a/quarkus/server/distribution/DISCLAIMER b/quarkus/server/distribution/DISCLAIMER new file mode 100644 index 0000000000..e78e79b242 --- /dev/null +++ b/quarkus/server/distribution/DISCLAIMER @@ -0,0 +1,10 @@ +Apache Polaris (incubating) is an effort undergoing incubation at The Apache +Software Foundation (ASF), sponsored by the Apache Incubator PMC. + +Incubation is required of all newly accepted projects until a further review +indicates that the infrastructure, communications, and decision making process +have stabilized in a manner consistent with other successful ASF projects. + +While incubation status is not necessarily a reflection of the completeness +or stability of the code, it does indicate that the project has yet to be +fully endorsed by the ASF. \ No newline at end of file From 76df496bbf94ed171ad1c9d888ec556a79d8388f Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Fri, 23 May 2025 09:29:41 -0700 Subject: [PATCH 20/23] Resolve comments --- quarkus/distribution/bin/admin | 2 +- quarkus/distribution/bin/server | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/quarkus/distribution/bin/admin b/quarkus/distribution/bin/admin index c01c50ee48..b1ff00fb52 100755 --- a/quarkus/distribution/bin/admin +++ b/quarkus/distribution/bin/admin @@ -19,4 +19,4 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}/../admin" || exit -java -jar quarkus-run.jar "$@" \ No newline at end of file +java -jar quarkus-run.jar "$@" diff --git a/quarkus/distribution/bin/server b/quarkus/distribution/bin/server index 2fc391fda4..1b958494a0 100755 --- a/quarkus/distribution/bin/server +++ b/quarkus/distribution/bin/server @@ -19,4 +19,4 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}/../server" || exit -java -jar quarkus-run.jar "$@" \ No newline at end of file +java -jar quarkus-run.jar "$@" From f9451c8a48d95b53e4ee45aec401b9283729e641 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Fri, 23 May 2025 13:28:38 -0700 Subject: [PATCH 21/23] Resolve comments --- quarkus/distribution/README.md | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/quarkus/distribution/README.md b/quarkus/distribution/README.md index 9bb9dfadc2..23dc92cb08 100644 --- a/quarkus/distribution/README.md +++ b/quarkus/distribution/README.md @@ -46,28 +46,15 @@ The distribution includes separate scripts for running the server and admin tool ### Start the Server ```bash -./bin/server +bin/server ``` ### Use the Admin Tool ```bash -./bin/admin --help # Show admin commands -./bin/admin bootstrap -h # Show bootstrap help -./bin/admin purge -h # Show purge help +bin/admin --help # Show admin commands +bin/admin bootstrap -h # Show bootstrap help +bin/admin purge -h # Show purge help ``` -### Configuration - -Both components can be configured using environment variables or system properties. For example: - -```bash -# Configure server port -JAVA_OPTS="-Dquarkus.http.port=8080" ./bin/server - -# Configure admin tool -JAVA_OPTS="-Dpolaris.persistence.type=relational-jdbc" ./bin/admin -``` - -For more details on configuration, please refer to the Polaris documentation: -https://polaris.apache.org/ \ No newline at end of file +For full usage instructions and configuration details, see the official Polaris docs at https://polaris.apache.org/. \ No newline at end of file From 8d0b09d491c43d753c99bb5b3065f31bbae69db2 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Fri, 23 May 2025 15:57:25 -0700 Subject: [PATCH 22/23] Resolve comments --- quarkus/distribution/build.gradle.kts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/quarkus/distribution/build.gradle.kts b/quarkus/distribution/build.gradle.kts index 536508de09..1552b534c0 100644 --- a/quarkus/distribution/build.gradle.kts +++ b/quarkus/distribution/build.gradle.kts @@ -58,12 +58,16 @@ distributions { contents { // Copy admin distribution contents into("admin") { - from(adminDistribution) + from(adminDistribution) { + exclude("quarkus-app-dependencies.txt") + } } // Copy server distribution contents into("server") { - from(serverDistribution) + from(serverDistribution) { + exclude("quarkus-app-dependencies.txt") + } } // Copy scripts to bin directory From 545d886d05749aa1797c2f2bab59ac3565e3d859 Mon Sep 17 00:00:00 2001 From: Yufei Gu Date: Fri, 23 May 2025 18:20:43 -0700 Subject: [PATCH 23/23] Support command line java options --- quarkus/distribution/README.md | 21 ++++++++++++++++++++- quarkus/distribution/bin/admin | 14 ++++++++++++-- quarkus/distribution/bin/server | 14 ++++++++++++-- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/quarkus/distribution/README.md b/quarkus/distribution/README.md index 23dc92cb08..69a4ee4c82 100644 --- a/quarkus/distribution/README.md +++ b/quarkus/distribution/README.md @@ -57,4 +57,23 @@ bin/admin bootstrap -h # Show bootstrap help bin/admin purge -h # Show purge help ``` -For full usage instructions and configuration details, see the official Polaris docs at https://polaris.apache.org/. \ No newline at end of file +For full usage instructions and configuration details, see the official Polaris docs at https://polaris.apache.org/. + +### Configuration + +Both components can be configured using environment variables or system properties. For example: + +```bash +# Configure server port +POLARIS_JAVA_OPTS="-Dquarkus.http.port=8080" bin/server + +# Configure admin tool +POLARIS_JAVA_OPTS="-Dpolaris.persistence.type=relational-jdbc" bin/admin + +# You can also set JAVA_OPTS as an environment variable +export POLARIS_JAVA_OPTS="-Xms512m -Xmx1g -Dquarkus.http.port=8080" +bin/server +``` + +For more details on configuration, please refer to the Polaris documentation: +https://polaris.apache.org/ \ No newline at end of file diff --git a/quarkus/distribution/bin/admin b/quarkus/distribution/bin/admin index b1ff00fb52..7e7aa2b4c2 100755 --- a/quarkus/distribution/bin/admin +++ b/quarkus/distribution/bin/admin @@ -17,6 +17,16 @@ # specific language governing permissions and limitations # under the License. +set -euo pipefail + +# Get the directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "${SCRIPT_DIR}/../admin" || exit -java -jar quarkus-run.jar "$@" +cd "$SCRIPT_DIR/../admin" + +# Get the Java command +JAVA_CMD="${JAVA_HOME:+${JAVA_HOME%/}/bin/java}" +JAVA_CMD="${JAVA_CMD:-$(command -v java)}" +[ -x "$JAVA_CMD" ] || { echo "Java not found – set JAVA_HOME or add java to PATH." >&2; exit 1; } + +# Launch Quarkus +exec "$JAVA_CMD" ${POLARIS_JAVA_OPTS:-} -jar quarkus-run.jar "$@" diff --git a/quarkus/distribution/bin/server b/quarkus/distribution/bin/server index 1b958494a0..526357f3cb 100755 --- a/quarkus/distribution/bin/server +++ b/quarkus/distribution/bin/server @@ -17,6 +17,16 @@ # specific language governing permissions and limitations # under the License. +set -euo pipefail + +# Get the directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "${SCRIPT_DIR}/../server" || exit -java -jar quarkus-run.jar "$@" +cd "$SCRIPT_DIR/../server" + +# Get the Java command +JAVA_CMD="${JAVA_HOME:+${JAVA_HOME%/}/bin/java}" +JAVA_CMD="${JAVA_CMD:-$(command -v java)}" +[ -x "$JAVA_CMD" ] || { echo "Java not found – set JAVA_HOME or add java to PATH." >&2; exit 1; } + +# Launch Quarkus +exec "$JAVA_CMD" ${POLARIS_JAVA_OPTS:-} -jar quarkus-run.jar