Sign inSign up

jfeeneydemo3/dubjug-java-kit:1.1.2

Manifest digest

sha256:f85e207c2c20570cfb881b90e31ea0160af834f2d63587b88cdc2999215fe55d

Last pushed

about 23 hours by jfeeneydemo3

Type

Sandbox Kit

Manifest digest

sha256:f85e207c2c20570cfb881b90e31ea0160af834f2d63587b88cdc2999215fe55d

yaml
schemaVersion: "2"
kind: mixin
name: java-maven-junit
version: 1.1.2
displayName: Java, Maven, and JUnit toolchain
description: Pinned current Java, Maven, Gradle, and JUnit tooling for JVM demos.
sourceURL: https://gitlab.com/dubjug/sandbox-mixin-kits
licenses:
    - Apache-2.0
args:
    gradle-version:
        default: 9.8.1
        pattern: ^[0-9]+\.[0-9]+(?:\.[0-9]+)?$
    java-version:
        default: 26.0.2.1+1
        pattern: ^[0-9]+(?:\.[0-9]+){1,3}\+[0-9]+$
    junit-version:
        default: 6.1.3
        pattern: ^[0-9]+\.[0-9]+\.[0-9]+$
    maven-version:
        default: 3.10.0
        pattern: ^[0-9]+\.[0-9]+\.[0-9]+$
agentInstructions:
    content: |
        Java, Maven, Gradle, and the JUnit Platform Console are installed.

        Always use Maven to build and run applications, even though Gradle is
        installed. The demo depends on a specific Maven plugin that has no Gradle
        equivalent. Use the project's Maven wrapper (`./mvnw`) when present;
        otherwise use `mvn`. Do not build with Gradle, even when a `build.gradle`
        or `gradlew` is present.

        Keep JUnit dependencies declared in the project POM rather than relying on
        the standalone console jar.
permissions:
    network:
        allow:
            - api.adoptium.net:443
            - archive.apache.org:443
            - repo.maven.apache.org:443
            - repo1.maven.org:443
            - nexus.acme.internal:443
            - plugins.gradle.org:443
            - gitlab.com:443
            - gitlab.com:22
            - downloads.gradle.org:443
            - github.com:443
            - objects.githubusercontent.com:443
            - release-assets.githubusercontent.com:443
            - central.sonatype.com:443
            - repository.apache.org:443
            - repository.ow2.org:443
            - oss.sonatype.org:443
setup:
    install:
        - command: |-
            set -eu; JAVA_VERSION='${{ kit.args.java-version }}'; MAVEN_VERSION='${{ kit.args.maven-version }}'; GRADLE_VERSION='${{ kit.args.gradle-version }}'; JUNIT_VERSION='${{ kit.args.junit-version }}'; case "$(uname -m)" in
              x86_64) ADOPTIUM_ARCH=x64 ;;
              aarch64|arm64) ADOPTIUM_ARCH=aarch64 ;;
              *) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;;
            esac; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl tar unzip; rm -rf /opt/java/temurin-current /opt/maven/apache-maven-current /opt/gradle/gradle-current /opt/junit; mkdir -p /opt/java/temurin-current /opt/maven/apache-maven-current /opt/gradle/gradle-current /opt/junit; curl -fsSL "https://api.adoptium.net/v3/binary/version/jdk-${JAVA_VERSION}/linux/${ADOPTIUM_ARCH}/jdk/hotspot/normal/eclipse" -o /tmp/temurin.tar.gz; tar -xzf /tmp/temurin.tar.gz -C /opt/java/temurin-current --strip-components=1; test -f /etc/ssl/certs/java/cacerts; rm -f /opt/java/temurin-current/lib/security/cacerts; ln -s /etc/ssl/certs/java/cacerts /opt/java/temurin-current/lib/security/cacerts; curl -fsSLO "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz"; curl -fsSLO "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512"; echo "$(awk '{print $1}' apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512)  apache-maven-${MAVEN_VERSION}-bin.tar.gz" | sha512sum -c -; tar -xzf "apache-maven-${MAVEN_VERSION}-bin.tar.gz" -C /opt/maven/apache-maven-current --strip-components=1; curl -fsSLO "https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip"; curl -fsSLO "https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip.sha256"; echo "$(awk '{print $1}' gradle-${GRADLE_VERSION}-bin.zip.sha256)  gradle-${GRADLE_VERSION}-bin.zip" | sha256sum -c -; unzip -q "gradle-${GRADLE_VERSION}-bin.zip" -d /tmp/gradle-extract; cp -a /tmp/gradle-extract/gradle-*/. /opt/gradle/gradle-current/; JUNIT_URL="https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-console-standalone/${JUNIT_VERSION}/junit-platform-console-standalone-${JUNIT_VERSION}.jar"; curl -fsSL "${JUNIT_URL}" -o /opt/junit/junit-platform-console-standalone.jar; curl -fsSL "${JUNIT_URL}.sha256" -o /tmp/junit.sha256; echo "$(awk '{print $1}' /tmp/junit.sha256)  /opt/junit/junit-platform-console-standalone.jar" | sha256sum -c -; for TOOL_PATH in /opt/java/temurin-current/bin/*; do
              TOOL="$(basename "${TOOL_PATH}")";
              update-alternatives --install "/usr/bin/${TOOL}" "${TOOL}" "${TOOL_PATH}" 2600;
            done; ln -sfn /opt/maven/apache-maven-current/bin/mvn /usr/local/bin/mvn; ln -sfn /opt/maven/apache-maven-current/bin/mvnDebug /usr/local/bin/mvnDebug; ln -sfn /opt/gradle/gradle-current/bin/gradle /usr/local/bin/gradle; printf '%s\n' '#!/bin/sh' 'exec java -jar /opt/junit/junit-platform-console-standalone.jar "$@"' > /usr/local/bin/junit; chmod 0755 /usr/local/bin/junit; printf '%s\n' 'export JAVA_HOME=/opt/java/temurin-current' 'export MAVEN_HOME=/opt/maven/apache-maven-current' 'export GRADLE_HOME=/opt/gradle/gradle-current' >> /etc/sandbox-persistent.sh; rm -rf /var/lib/apt/lists/* /tmp/gradle-extract; rm -f /tmp/temurin.tar.gz /tmp/junit.sha256 "apache-maven-${MAVEN_VERSION}-bin.tar.gz" "apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512" "gradle-${GRADLE_VERSION}-bin.zip" "gradle-${GRADLE_VERSION}-bin.zip.sha256"; java --version; mvn --version; gradle --version; junit --version
          user: "0"
          description: Install the pinned Temurin JDK, Maven, Gradle, and JUnit Console