Skip to content

Commit 150b958

Browse files
Copilotsimbo1905
andauthored
Issue #0 address jdt2jar review feedback
Agent-Logs-Url: https://github.com/simbo1905/java.util.json.Java21/sessions/46541410-0395-47ca-bf41-41ba6d0a8dc6 Co-authored-by: simbo1905 <322608+simbo1905@users.noreply.github.com>
1 parent bca1b6e commit 150b958

4 files changed

Lines changed: 23 additions & 20 deletions

File tree

jdt2jar/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363
<artifactId>maven-compiler-plugin</artifactId>
6464
<version>3.13.0</version>
6565
<configuration>
66-
<release>24</release>
6766
<compilerArgs>
6867
<arg>-Xlint:all</arg>
6968
<arg>-Xdiags:verbose</arg>

jdt2jar/src/main/java/json/java21/jdt2jar/Jdt2Jar.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.nio.charset.StandardCharsets;
1010
import java.nio.file.Files;
1111
import java.nio.file.Path;
12+
import java.util.ArrayDeque;
1213
import java.util.HashSet;
1314
import java.util.Properties;
1415
import java.util.Set;
@@ -254,16 +255,17 @@ private static Options parseOptions(String[] args) {
254255
var includeSources = false;
255256
var help = false;
256257

257-
for (var i = 0; i < args.length; i++) {
258-
final var arg = args[i];
258+
final var remaining = new ArrayDeque<>(java.util.List.of(args));
259+
while (!remaining.isEmpty()) {
260+
final var arg = remaining.removeFirst();
259261
switch (arg) {
260262
case "--help" -> help = true;
261263
case "--main" -> main = true;
262264
case "--include-sources" -> includeSources = true;
263-
case "--output" -> output = Path.of(requireValue(args, ++i, "--output"));
264-
case "--package" -> packageName = requireValue(args, ++i, "--package");
265-
case "--class" -> className = requireValue(args, ++i, "--class");
266-
case "--runtime" -> runtime = Integer.parseInt(requireValue(args, ++i, "--runtime"));
265+
case "--output" -> output = Path.of(requireValue(remaining, "--output"));
266+
case "--package" -> packageName = requireValue(remaining, "--package");
267+
case "--class" -> className = requireValue(remaining, "--class");
268+
case "--runtime" -> runtime = Integer.parseInt(requireValue(remaining, "--runtime"));
267269
default -> {
268270
if (arg.startsWith("--")) {
269271
throw new UsageException("Unknown option: " + arg);
@@ -288,11 +290,11 @@ private static Options parseOptions(String[] args) {
288290
return new Options(schema, output, packageName, className, main, runtime, includeSources, false);
289291
}
290292

291-
private static String requireValue(String[] args, int index, String option) {
292-
if (index >= args.length) {
293+
private static String requireValue(ArrayDeque<String> args, String option) {
294+
if (args.isEmpty()) {
293295
throw new UsageException("Missing value for " + option);
294296
}
295-
return args[index];
297+
return args.removeFirst();
296298
}
297299

298300
private static String toInternalName(String packageName, String className) {

jdt2jar/src/main/java/json/java21/jdt2jar/runtime/ValidatorMain.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.nio.charset.StandardCharsets;
1313
import java.nio.file.Files;
1414
import java.nio.file.Path;
15+
import java.util.ArrayDeque;
1516
import java.util.Properties;
1617

1718
/// Runtime launcher for compiled validator JARs.
@@ -133,13 +134,14 @@ private static CliOptions parseArgs(String[] args) {
133134
boolean json = false;
134135
boolean help = false;
135136

136-
for (int i = 0; i < args.length; i++) {
137-
final var arg = args[i];
137+
final var remaining = new ArrayDeque<>(java.util.List.of(args));
138+
while (!remaining.isEmpty()) {
139+
final var arg = remaining.removeFirst();
138140
switch (arg) {
139141
case "--help" -> help = true;
140-
case "--validate" -> input = Path.of(requireValue(args, ++i, "--validate"));
142+
case "--validate" -> input = Path.of(requireValue(remaining, "--validate"));
141143
case "--format" -> {
142-
final var value = requireValue(args, ++i, "--format");
144+
final var value = requireValue(remaining, "--format");
143145
if ("json".equalsIgnoreCase(value)) {
144146
json = true;
145147
} else {
@@ -153,11 +155,11 @@ private static CliOptions parseArgs(String[] args) {
153155
return new CliOptions(input, json, help);
154156
}
155157

156-
private static String requireValue(String[] args, int index, String option) {
157-
if (index >= args.length) {
158+
private static String requireValue(ArrayDeque<String> args, String option) {
159+
if (args.isEmpty()) {
158160
throw new IllegalArgumentException("Missing value for " + option);
159161
}
160-
return args[index];
162+
return args.removeFirst();
161163
}
162164

163165
private static void printUsage() {

json-java21-jtd-codegen/src/main/java/json/java21/jtd/codegen/JtdCodegen.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public final class JtdCodegen {
2727
private JtdCodegen() {}
2828

2929
/// Result of compilation including the validator and generated class statistics.
30-
public record CompileResult(JtdValidator validator, int classfileBytes, byte[] classBytes) {}
30+
public record CompileResult(JtdValidator validator, int classfileBytes) {}
3131

3232
/// Public factory invoked by [JtdValidator.compileGenerated] via reflection.
3333
public static JtdValidator compile(JsonValue schema) {
@@ -49,7 +49,7 @@ public static CompileResult compileWithStats(JsonValue schema) {
4949
/// @param className Generated validator class name
5050
/// @return the generated class bytes
5151
public static byte[] compileBytes(JsonValue schema, String packageName, String className) {
52-
return buildBytes(schema, packageName, className).clone();
52+
return buildBytes(schema, packageName, className);
5353
}
5454

5555
private static CompileResult instantiate(JsonValue schema, byte[] bytes, String packageName, String className) {
@@ -60,7 +60,7 @@ private static CompileResult instantiate(JsonValue schema, byte[] bytes, String
6060
final var clazz = lookup.defineClass(bytes);
6161
final var ctor = clazz.getConstructor(String.class);
6262
final var validator = (JtdValidator) ctor.newInstance(schemaJson);
63-
return new CompileResult(validator, bytes.length, bytes.clone());
63+
return new CompileResult(validator, bytes.length);
6464
} catch (Exception e) {
6565
throw new RuntimeException("Failed to load generated validator: " + internalName, e);
6666
}

0 commit comments

Comments
 (0)