From be60a7c345e94f295db7b0300a968f48f0ae214c Mon Sep 17 00:00:00 2001 From: Simon Massey <322608+simbo1905@users.noreply.github.com> Date: Mon, 31 Aug 2026 01:19:42 +0100 Subject: [PATCH] Issue #163 rename jdt2jar to jtd2jar Mechanical rename of the misspelled schema-to-validator-JAR tool: module directory and artifactId, Java package json.java21.jdt2jar -> json.java21.jtd2jar, class Jdt2Jar -> Jtd2Jar, helper script, GHCR image name (release workflow), and all documentation references. The old image name is frozen on GHCR; jtd2jar/README.md notes the transition. Full reactor verify green with unchanged test counts. --- .github/workflows/ci.yml | 6 ++-- .github/workflows/maven.yml | 6 ++-- .github/workflows/release-on-tag.yml | 12 ++++---- README.md | 6 ++-- {jdt2jar => jtd2jar}/.dockerignore | 2 +- {jdt2jar => jtd2jar}/Dockerfile | 8 +++--- {jdt2jar => jtd2jar}/README.md | 28 ++++++++++--------- {jdt2jar => jtd2jar}/pom.xml | 10 +++---- .../java/json/java21/jtd2jar/Jtd2Jar.java | 24 ++++++++-------- .../jtd2jar}/build/DockerImageBuilder.java | 4 +-- .../jtd2jar}/runtime/ValidatorMain.java | 4 +-- .../json/java21/jtd2jar/Jtd2JarCliTest.java | 14 +++++----- .../json/java21/jtd2jar/Jtd2JarTestBase.java | 8 +++--- pom.xml | 2 +- scripts/{jdt2jar.sh => jtd2jar.sh} | 12 ++++---- 15 files changed, 74 insertions(+), 72 deletions(-) rename {jdt2jar => jtd2jar}/.dockerignore (89%) rename {jdt2jar => jtd2jar}/Dockerfile (60%) rename {jdt2jar => jtd2jar}/README.md (73%) rename {jdt2jar => jtd2jar}/pom.xml (93%) rename jdt2jar/src/main/java/json/java21/jdt2jar/Jdt2Jar.java => jtd2jar/src/main/java/json/java21/jtd2jar/Jtd2Jar.java (95%) rename {jdt2jar/src/main/java/json/java21/jdt2jar => jtd2jar/src/main/java/json/java21/jtd2jar}/build/DockerImageBuilder.java (97%) rename {jdt2jar/src/main/java/json/java21/jdt2jar => jtd2jar/src/main/java/json/java21/jtd2jar}/runtime/ValidatorMain.java (98%) rename jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarCliTest.java => jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarCliTest.java (89%) rename jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarTestBase.java => jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarTestBase.java (90%) rename scripts/{jdt2jar.sh => jtd2jar.sh} (61%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc3a45af..a5dbde69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,11 +68,11 @@ jobs: uses: docker/build-push-action@v6 with: context: . - file: jdt2jar/Dockerfile + file: jtd2jar/Dockerfile push: false load: true - tags: jdt2jar:ci + tags: jtd2jar:ci - name: Smoke test run: | - docker run --rm jdt2jar:ci --help + docker run --rm jtd2jar:ci --help diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 08f63de0..0b21345a 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -76,11 +76,11 @@ jobs: uses: docker/build-push-action@v6 with: context: . - file: jdt2jar/Dockerfile + file: jtd2jar/Dockerfile push: false load: true - tags: jdt2jar:ci + tags: jtd2jar:ci - name: Smoke test run: | - docker run --rm jdt2jar:ci --help + docker run --rm jtd2jar:ci --help diff --git a/.github/workflows/release-on-tag.yml b/.github/workflows/release-on-tag.yml index 17a9dc5c..1f019380 100644 --- a/.github/workflows/release-on-tag.yml +++ b/.github/workflows/release-on-tag.yml @@ -56,11 +56,11 @@ jobs: Pre-built distroless container image available on GitHub Container Registry: ```bash - docker pull ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jdt2jar:${{ steps.version.outputs.version }} - docker pull ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jdt2jar:latest + docker pull ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jtd2jar:${{ steps.version.outputs.version }} + docker pull ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jtd2jar:latest ``` - See [jdt2jar/README.md](https://github.com/${{ github.repository }}/blob/main/jdt2jar/README.md) for usage. + See [jtd2jar/README.md](https://github.com/${{ github.repository }}/blob/main/jtd2jar/README.md) for usage. - name: Build and Deploy to Central (release profile) id: deploy @@ -150,8 +150,8 @@ jobs: uses: docker/build-push-action@v6 with: context: . - file: jdt2jar/Dockerfile + file: jtd2jar/Dockerfile push: true tags: | - ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jdt2jar:${{ steps.version.outputs.version }} - ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jdt2jar:latest + ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jtd2jar:${{ steps.version.outputs.version }} + ghcr.io/${{ github.repository_owner }}/java.util.json.java21/jtd2jar:latest diff --git a/README.md b/README.md index 44d5e50f..bb58b0d5 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ This repo is organized into the following modules: | `json-java21` | Core `java.util.json` backport (parser, immutable types, `Json` API) | 21+ | | `json-java21-jtd` | JTD (RFC 8927) stack-machine interpreter — ideal for infrequent config parsing and one-time validation | 21+ | | `json-java21-jtd-codegen` | Bytecode code generator for JTD schemas — ahead-of-time compiled validators for repeated hot-path validation | 24+ (auto-skipped on JDK 21) | -| `jdt2jar` | CLI + distroless container to pre-compile JTD schemas into standalone validator JARs (eliminates JDK 24+ runtime requirement) | 24+ (auto-skipped on JDK 21) | +| `jtd2jar` | CLI + distroless container to pre-compile JTD schemas into standalone validator JARs (eliminates JDK 24+ runtime requirement) | 24+ (auto-skipped on JDK 21) | | `json-java21-jsonpath` | JsonPath query engine over `jdk.incubator.java.util.json` values (Goessner-style: filters, slices, recursive descent, unions) | 21+ | | `json-compatibility-suite` | JSON Test Suite conformance reporter (tests against [nst/JSONTestSuite](https://github.com/nst/JSONTestSuite)) | 21+ | | `json-java21-api-tracker` | Daily upstream API drift detector — fetches OpenJDK sandbox sources, compares public API signatures, reports differences | 25+ | @@ -393,9 +393,9 @@ Jtd.Result result = validator.validate(schema, data); ## JTD to JAR Compiler (Optional) -An optional `jdt2jar` CLI tool and distroless Docker image are available for pre-compiling JTD schemas into standalone validator JARs at build time. This eliminates the JDK 24+ runtime requirement for generated validators — the JARs run on JDK 21+. +An optional `jtd2jar` CLI tool and distroless Docker image are available for pre-compiling JTD schemas into standalone validator JARs at build time. This eliminates the JDK 24+ runtime requirement for generated validators — the JARs run on JDK 21+. -See [`jdt2jar/README.md`](jdt2jar/README.md) for build instructions, container usage, and the pre-built image on GitHub Container Registry (`ghcr.io`). +See [`jtd2jar/README.md`](jtd2jar/README.md) for build instructions, container usage, and the pre-built image on GitHub Container Registry (`ghcr.io`). ## Building diff --git a/jdt2jar/.dockerignore b/jtd2jar/.dockerignore similarity index 89% rename from jdt2jar/.dockerignore rename to jtd2jar/.dockerignore index 10675a45..6d9638cc 100644 --- a/jdt2jar/.dockerignore +++ b/jtd2jar/.dockerignore @@ -18,4 +18,4 @@ .env # Local test artifacts -/tmp/jdt2jar-*/ +/tmp/jtd2jar-*/ diff --git a/jdt2jar/Dockerfile b/jtd2jar/Dockerfile similarity index 60% rename from jdt2jar/Dockerfile rename to jtd2jar/Dockerfile index 959a1f66..54308833 100644 --- a/jdt2jar/Dockerfile +++ b/jtd2jar/Dockerfile @@ -3,8 +3,8 @@ FROM eclipse-temurin:25-jdk AS build WORKDIR /build COPY . . -RUN ["./mvnw", "-pl", "jdt2jar", "-am", "package", "-DskipTests", "-Dsurefire.failIfNoSpecifiedTests=false"] -RUN ["java", "-cp", "/build/jdt2jar/target/jdt2jar.jar", "json.java21.jdt2jar.build.DockerImageBuilder", "/build/jdt2jar/target/jdt2jar.jar", "/opt/jre"] +RUN ["./mvnw", "-pl", "jtd2jar", "-am", "package", "-DskipTests", "-Dsurefire.failIfNoSpecifiedTests=false"] +RUN ["java", "-cp", "/build/jtd2jar/target/jtd2jar.jar", "json.java21.jtd2jar.build.DockerImageBuilder", "/build/jtd2jar/target/jtd2jar.jar", "/opt/jre"] RUN ["mkdir", "-p", "/empty-work/tmp", "/empty-app"] FROM gcr.io/distroless/base-debian13:nonroot @@ -13,5 +13,5 @@ COPY --from=build --chown=65532:65532 /empty-app /app WORKDIR /work ENV JAVA_TOOL_OPTIONS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -Djava.io.tmpdir=/work/tmp -XX:+ExitOnOutOfMemoryError" COPY --from=build /opt/jre /jre -COPY --from=build /build/jdt2jar/target/jdt2jar.jar /app/jdt2jar.jar -ENTRYPOINT ["/jre/bin/java","-jar","/app/jdt2jar.jar"] +COPY --from=build /build/jtd2jar/target/jtd2jar.jar /app/jtd2jar.jar +ENTRYPOINT ["/jre/bin/java","-jar","/app/jtd2jar.jar"] diff --git a/jdt2jar/README.md b/jtd2jar/README.md similarity index 73% rename from jdt2jar/README.md rename to jtd2jar/README.md index 8aef2d29..1918d5a8 100644 --- a/jdt2jar/README.md +++ b/jtd2jar/README.md @@ -1,6 +1,6 @@ -# jdt2jar +# jtd2jar -`jdt2jar` compiles a JTD schema into a standalone validator JAR at build time. The generated JAR runs on JDK 21+ with no JDK 25+ runtime dependency. +`jtd2jar` compiles a JTD schema into a standalone validator JAR at build time. The generated JAR runs on JDK 21+ with no JDK 25+ runtime dependency. ## Use Case @@ -8,14 +8,14 @@ This tool bridges the gap between the interpreter and codegen paths: - **Interpreter** ([`json-java21-jtd`](../json-java21-jtd/README.md)): ideal for infrequent config parsing — simple, no build step, runs on JDK 21+. - **Codegen** ([`json-java21-jtd-codegen`](../json-java21-jtd-codegen/README.md)): ideal for repeated hot-path validation — ~9x faster, but requires JDK 25+ at runtime. -- **jdt2jar**: pre-compiles schemas into validator JARs at build time (using JDK 25+), then deploys them to any JDK 21+ runtime. Best for CI/CD pipelines, distroless containers, or environments where you want JIT-optimised validators without shipping a JDK 25+ runtime. +- **jtd2jar**: pre-compiles schemas into validator JARs at build time (using JDK 25+), then deploys them to any JDK 21+ runtime. Best for CI/CD pipelines, distroless containers, or environments where you want JIT-optimised validators without shipping a JDK 25+ runtime. > **Future note**: `java.util.json` has entered the JDK incubator (`jdk.incubator.json`). Once the API stabilises in the JDK itself, generated bytecode validators can depend directly on future JDK classes rather than this backport, making them even more efficient with zero library overhead. ## CLI ```bash -jdt2jar [options] +jtd2jar [options] ``` Options: @@ -35,16 +35,18 @@ A minimal distroless container image is available for offline schema compilation ### Pre-built Image (GitHub Container Registry) ```bash -docker pull ghcr.io/simbo1905/java.util.json.java21/jdt2jar:latest -docker pull ghcr.io/simbo1905/java.util.json.java21/jdt2jar:2026.05.20 +docker pull ghcr.io/simbo1905/java.util.json.java21/jtd2jar:latest +docker pull ghcr.io/simbo1905/java.util.json.java21/jtd2jar:2026.05.20 ``` +> **Name change**: releases up to and including `2026.08.30` published this image under the misspelled name `ghcr.io/simbo1905/java.util.json.java21/jdt2jar`. Those tags remain on GHCR but are frozen; re-point to `jtd2jar`. + ### Build Locally Requires Docker and JDK 25+ (for the build stage). Build from the repository root: ```bash -docker build -t jdt2jar -f jdt2jar/Dockerfile . +docker build -t jtd2jar -f jtd2jar/Dockerfile . ``` ### Usage @@ -52,7 +54,7 @@ docker build -t jdt2jar -f jdt2jar/Dockerfile . The container's working directory is `/work`. Mount your project directory there: ```bash -docker run --rm -v "$(pwd):/work" jdt2jar:latest schema.jtd.json --output schema-validator.jar --main +docker run --rm -v "$(pwd):/work" jtd2jar:latest schema.jtd.json --output schema-validator.jar --main ``` Validate a payload with the generated JAR: @@ -64,7 +66,7 @@ java -jar schema-validator.jar --validate payload.json Or validate inside a container: ```bash -docker run --rm -v "$(pwd):/work" --entrypoint /jre/bin/java jdt2jar:latest -jar /work/schema-validator.jar --validate /work/payload.json +docker run --rm -v "$(pwd):/work" --entrypoint /jre/bin/java jtd2jar:latest -jar /work/schema-validator.jar --validate /work/payload.json ``` ### Helper Script @@ -72,10 +74,10 @@ docker run --rm -v "$(pwd):/work" --entrypoint /jre/bin/java jdt2jar:latest -jar For environments where volume mounts are restricted (e.g., Colima on macOS with projects outside `~/`), use the helper script: ```bash -./scripts/jdt2jar.sh schema.jtd.json --output schema-validator.jar --main +./scripts/jtd2jar.sh schema.jtd.json --output schema-validator.jar --main ``` -The script syncs source to `~/tmp/jdt2jar-work`, runs the container, and syncs output back. +The script syncs source to `~/tmp/jtd2jar-work`, runs the container, and syncs output back. ### Image Properties @@ -89,6 +91,6 @@ The script syncs source to `~/tmp/jdt2jar-work`, runs the container, and syncs o ### Security Scanning ```bash -syft packages image:ghcr.io/simbo1905/java.util.json.java21/jdt2jar:latest -grype ghcr.io/simbo1905/java.util.json.java21/jdt2jar:latest +syft packages image:ghcr.io/simbo1905/java.util.json.java21/jtd2jar:latest +grype ghcr.io/simbo1905/java.util.json.java21/jtd2jar:latest ``` diff --git a/jdt2jar/pom.xml b/jtd2jar/pom.xml similarity index 93% rename from jdt2jar/pom.xml rename to jtd2jar/pom.xml index bbaa46f0..87ba7e34 100644 --- a/jdt2jar/pom.xml +++ b/jtd2jar/pom.xml @@ -11,15 +11,15 @@ 2026.08.30 - jdt2jar + jtd2jar jar - jdt2jar CLI + jtd2jar CLI Offline JTD-to-JAR compiler that packages generated validators into standalone JAR files. UTF-8 24 - jdt2jar + jtd2jar @@ -86,10 +86,10 @@ false false - jdt2jar + jtd2jar - json.java21.jdt2jar.Jdt2Jar + json.java21.jtd2jar.Jtd2Jar diff --git a/jdt2jar/src/main/java/json/java21/jdt2jar/Jdt2Jar.java b/jtd2jar/src/main/java/json/java21/jtd2jar/Jtd2Jar.java similarity index 95% rename from jdt2jar/src/main/java/json/java21/jdt2jar/Jdt2Jar.java rename to jtd2jar/src/main/java/json/java21/jtd2jar/Jtd2Jar.java index 232ef459..f5acec3b 100644 --- a/jdt2jar/src/main/java/json/java21/jdt2jar/Jdt2Jar.java +++ b/jtd2jar/src/main/java/json/java21/jtd2jar/Jtd2Jar.java @@ -1,4 +1,4 @@ -package json.java21.jdt2jar; +package json.java21.jtd2jar; import jdk.incubator.java.util.json.Json; import json.java21.jtd.codegen.JtdCodegen; @@ -23,18 +23,18 @@ /// /// Builds a standalone validator JAR from a schema file and can optionally /// include a `java -jar` entry point and a companion source file. -public final class Jdt2Jar { +public final class Jtd2Jar { - static final Logger LOG = Logger.getLogger(Jdt2Jar.class.getName()); + static final Logger LOG = Logger.getLogger(Jtd2Jar.class.getName()); private static final int DEFAULT_RUNTIME = 21; private static final String DEFAULT_PACKAGE = "jtd.generated"; private static final String DEFAULT_CLASS = "SchemaValidator"; - private static final String PROPERTIES_ENTRY = "jdt2jar.properties"; + private static final String PROPERTIES_ENTRY = "jtd2jar.properties"; private static final String SCHEMA_ENTRY = "jtd/schema.json"; - private static final String MAIN_CLASS = "json.java21.jdt2jar.runtime.ValidatorMain"; + private static final String MAIN_CLASS = "json.java21.jtd2jar.runtime.ValidatorMain"; - private Jdt2Jar() {} + private Jtd2Jar() {} public static void main(String[] args) { System.exit(run(args)); @@ -42,7 +42,7 @@ public static void main(String[] args) { public static int run(String[] args) { try { - return new Jdt2Jar().execute(args); + return new Jtd2Jar().execute(args); } catch (UsageException e) { System.err.println(e.getMessage()); System.err.println(); @@ -86,7 +86,7 @@ private static void writeValidatorJar(Path output, Options options, String schem final var manifest = new Manifest(); final var attrs = manifest.getMainAttributes(); attrs.putValue("Manifest-Version", "1.0"); - attrs.putValue("Created-By", "jdt2jar"); + attrs.putValue("Created-By", "jtd2jar"); if (options.main()) { attrs.putValue("Main-Class", MAIN_CLASS); } @@ -163,7 +163,7 @@ private static boolean shouldCopyRuntime(String path) { || path.startsWith("json/java21/jtd/")) && !path.startsWith("json/java21/jtd/codegen/") || path.startsWith("json/java21/jtd/codegen/JtdValidator.class") - || path.startsWith("json/java21/jdt2jar/runtime/"); + || path.startsWith("json/java21/jtd2jar/runtime/"); } private static void writeEntry(JarOutputStream out, Set written, String name, byte[] bytes) @@ -184,7 +184,7 @@ private static byte[] propertiesBytes(Options options) { props.setProperty("schemaEntry", SCHEMA_ENTRY); props.setProperty("runtime", Integer.toString(options.runtime())); try (final var out = new ByteArrayOutputStream()) { - props.store(out, "jdt2jar"); + props.store(out, "jtd2jar"); return out.toByteArray(); } catch (IOException e) { throw new UncheckedIOException(e); @@ -204,7 +204,7 @@ private static void writeSourceFile(Path sourcePath, Options options) throws IOE import jdk.incubator.java.util.json.JsonValue; import json.java21.jtd.JtdValidationResult; - import json.java21.jdt2jar.runtime.ValidatorMain; + import json.java21.jtd2jar.runtime.ValidatorMain; public final class %s implements json.java21.jtd.JtdValidator { private final String schemaJson; @@ -308,7 +308,7 @@ private static String toQualifiedName(String packageName, String className) { private static void printUsage() { System.out.println(""" - jdt2jar [options] + jtd2jar [options] Options: --output Output JAR path (default: -validator.jar) diff --git a/jdt2jar/src/main/java/json/java21/jdt2jar/build/DockerImageBuilder.java b/jtd2jar/src/main/java/json/java21/jtd2jar/build/DockerImageBuilder.java similarity index 97% rename from jdt2jar/src/main/java/json/java21/jdt2jar/build/DockerImageBuilder.java rename to jtd2jar/src/main/java/json/java21/jtd2jar/build/DockerImageBuilder.java index 311cca79..acb992ad 100644 --- a/jdt2jar/src/main/java/json/java21/jdt2jar/build/DockerImageBuilder.java +++ b/jtd2jar/src/main/java/json/java21/jtd2jar/build/DockerImageBuilder.java @@ -1,4 +1,4 @@ -package json.java21.jdt2jar.build; +package json.java21.jtd2jar.build; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -16,7 +16,7 @@ private DockerImageBuilder() {} public static void main(String[] args) throws Exception { if (args.length != 2) { - throw new IllegalArgumentException("Usage: DockerImageBuilder "); + throw new IllegalArgumentException("Usage: DockerImageBuilder "); } final var jar = Path.of(args[0]); final var jreOutput = Path.of(args[1]); diff --git a/jdt2jar/src/main/java/json/java21/jdt2jar/runtime/ValidatorMain.java b/jtd2jar/src/main/java/json/java21/jtd2jar/runtime/ValidatorMain.java similarity index 98% rename from jdt2jar/src/main/java/json/java21/jdt2jar/runtime/ValidatorMain.java rename to jtd2jar/src/main/java/json/java21/jtd2jar/runtime/ValidatorMain.java index c2af0fba..56330337 100644 --- a/jdt2jar/src/main/java/json/java21/jdt2jar/runtime/ValidatorMain.java +++ b/jtd2jar/src/main/java/json/java21/jtd2jar/runtime/ValidatorMain.java @@ -1,4 +1,4 @@ -package json.java21.jdt2jar.runtime; +package json.java21.jtd2jar.runtime; import jdk.incubator.java.util.json.Json; import jdk.incubator.java.util.json.JsonObject; @@ -19,7 +19,7 @@ /// The CLI jar copies this class into the generated output when `--main` is /// requested and points the manifest `Main-Class` at it. public final class ValidatorMain { - private static final String CONFIG_RESOURCE = "jdt2jar.properties"; + private static final String CONFIG_RESOURCE = "jtd2jar.properties"; private ValidatorMain() {} diff --git a/jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarCliTest.java b/jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarCliTest.java similarity index 89% rename from jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarCliTest.java rename to jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarCliTest.java index 75ab5dc1..1c026af6 100644 --- a/jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarCliTest.java +++ b/jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarCliTest.java @@ -1,4 +1,4 @@ -package json.java21.jdt2jar; +package json.java21.jtd2jar; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -11,7 +11,7 @@ import static org.assertj.core.api.Assertions.assertThat; -class Jdt2JarCliTest extends Jdt2JarTestBase { +class Jtd2JarCliTest extends Jtd2JarTestBase { @TempDir Path tempDir; @@ -28,16 +28,16 @@ void compilesStandaloneValidatorJar() throws Exception { {"name":"Alice"} """, StandardCharsets.UTF_8); - assertThat(Jdt2Jar.run(new String[] {schema.toString(), "--output", output.toString(), "--main"})).isZero(); + assertThat(Jtd2Jar.run(new String[] {schema.toString(), "--output", output.toString(), "--main"})).isZero(); assertThat(output).exists(); try (final var jar = new JarFile(output.toFile())) { assertThat(jar.getEntry("jtd/generated/SchemaValidator.class")).isNotNull(); assertThat(jar.getEntry("jtd/schema.json")).isNotNull(); - assertThat(jar.getEntry("jdt2jar.properties")).isNotNull(); - assertThat(jar.getEntry("json/java21/jdt2jar/runtime/ValidatorMain.class")).isNotNull(); + assertThat(jar.getEntry("jtd2jar.properties")).isNotNull(); + assertThat(jar.getEntry("json/java21/jtd2jar/runtime/ValidatorMain.class")).isNotNull(); assertThat(jar.getManifest().getMainAttributes().getValue("Main-Class")) - .isEqualTo("json.java21.jdt2jar.runtime.ValidatorMain"); + .isEqualTo("json.java21.jtd2jar.runtime.ValidatorMain"); } final var validResult = runJavaJar(output, "--validate", payload.toString()); @@ -61,7 +61,7 @@ void writesCompanionSourceWhenRequested() throws Exception { """, StandardCharsets.UTF_8); final var output = tempDir.resolve("widget-validator.jar"); - assertThat(Jdt2Jar.run(new String[] { + assertThat(Jtd2Jar.run(new String[] { schema.toString(), "--output", output.toString(), "--package", "demo.validator", diff --git a/jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarTestBase.java b/jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarTestBase.java similarity index 90% rename from jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarTestBase.java rename to jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarTestBase.java index 30cd414d..cd37988a 100644 --- a/jdt2jar/src/test/java/json/java21/jdt2jar/Jdt2JarTestBase.java +++ b/jtd2jar/src/test/java/json/java21/jtd2jar/Jtd2JarTestBase.java @@ -1,4 +1,4 @@ -package json.java21.jdt2jar; +package json.java21.jtd2jar; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; @@ -9,10 +9,10 @@ import java.util.logging.Level; import java.util.logging.Logger; -/// Shared JUL bootstrap for jdt2jar tests. -public class Jdt2JarTestBase { +/// Shared JUL bootstrap for jtd2jar tests. +public class Jtd2JarTestBase { - static final Logger LOG = Logger.getLogger("json.java21.jdt2jar"); + static final Logger LOG = Logger.getLogger("json.java21.jtd2jar"); @BeforeAll static void configureJul() { diff --git a/pom.xml b/pom.xml index 5af8be44..71fb7d71 100644 --- a/pom.xml +++ b/pom.xml @@ -228,7 +228,7 @@ json-java21-jtd-codegen - jdt2jar + jtd2jar diff --git a/scripts/jdt2jar.sh b/scripts/jtd2jar.sh similarity index 61% rename from scripts/jdt2jar.sh rename to scripts/jtd2jar.sh index 7f979cb0..17993fe8 100755 --- a/scripts/jdt2jar.sh +++ b/scripts/jtd2jar.sh @@ -1,24 +1,24 @@ #!/usr/bin/env bash -# jdt2jar helper script for environments where volume mounts are restricted +# jtd2jar helper script for environments where volume mounts are restricted # (e.g., Colima on macOS with projects outside ~/). # # Usage: -# ./scripts/jdt2jar.sh [options...] +# ./scripts/jtd2jar.sh [options...] # # Example: -# ./scripts/jdt2jar.sh .tmp/test.jtd.json --output .tmp/test.jar --main +# ./scripts/jtd2jar.sh .tmp/test.jtd.json --output .tmp/test.jar --main set -euo pipefail -WORK_DIR="$HOME/tmp/jdt2jar-work" -IMAGE="${JDT2JAR_IMAGE:-jdt2jar:latest}" +WORK_DIR="$HOME/tmp/jtd2jar-work" +IMAGE="${JDT2JAR_IMAGE:-jtd2jar:latest}" mkdir -p "$WORK_DIR" # Sync source (respecting .gitignore) rsync -a --filter=':- .gitignore' --exclude='.git/' . "$WORK_DIR/" -# Run jdt2jar in container +# Run jtd2jar in container docker run --rm -v "$WORK_DIR:/work" "$IMAGE" "$@" # Sync output back (any new .jar or .java files in the work dir)