#!/bin/sh
set -e
JAVABUILDER="/usr/share/bazel/tools/java_tools/JavaBuilder_deploy.jar"
WORKDIR=$(mktemp -d)
trap 'rm -rf "$WORKDIR"' EXIT

cd "$WORKDIR"
echo "public class B { public static void main(String[] args) { System.out.println(\"Hello from JavaBuilder\"); } }" > B.java

echo "Running JavaBuilder..."
java \
    --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
    --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED \
    --add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
    -jar $JAVABUILDER \
    --target_label //test:test \
    --output ./B.jar \
    --sources B.java

echo "Running compiled jar..."
java -cp ./B.jar B | grep -q "Hello from JavaBuilder"
echo "JavaBuilder functional test passed."
