Repository navigation
Use Gradle's default javac source path and processor settings - #500
Open
tonygermano wants to merge 1 commit into
Open
tonygermano wants to merge 1 commit into
tonygermano wants to merge 1 commit into
Conversation
The compile tasks pointed -sourcepath at the source directories and used the compile classpath as the annotation processor path. Neither is needed, and running every processor found on the classpath becomes a liability once dependency resolution turns transitive: any newly arrived jar that ships a processor would start running. The only processors on any classpath today are log4j-core's (PluginProcessor, GraalVmProcessor; no other resolved or vendored jar ships a META-INF/services/javax.annotation.processing.Processor), and no source uses @plugin, so they generated nothing. Drop both overrides and let Gradle pass -proc:none with its own (empty) source path. As a side benefit, log4j-core's processors are not registered as incremental, so every change forced a full recompile of the module; incremental compilation now works. Removing -sourcepath cannot change what is compiled: every source file is passed to javac explicitly, and the only file a source-set exclude hides (generator's HL7ModelGeneratorTest under **/test/**) is referenced by nothing. Effect on the distribution, checked with oie-build-parity's compare_builds.py against a build of the parent commit (both built with clean build dist -PdisableSigning=true): - 711 files on both sides, same file set; 699 byte-identical; 478 of 490 jars/zips have identical entry contents. - 34 entries differ, 24 distinct classes in 12 jars, all anonymous inner classes: client-lib/mirth-client.jar (12) ChannelPanel$GroupAssignmentDialog$1, ChannelSetup$25, CustomAttachmentDialog$2, RegexAttachmentDialog$1/$3, MessageBrowserAdvancedFilter$1/$3, MirthPropertiesTable$1, BaseEditorPane$NameEditor$1, SourceSettingsPanel$1/$2, org.fife.ui.rtextarea.RTextArea$1 {server,client,cli}-lib/mirth-client-core.jar MirthMapperWrapper$1, net.lingala.zip4j.unzip.Unzip$1/$2 server-lib/mirth-server.jar: MirthMapperWrapper$1 {client,cli}-lib/donkey-model.jar, server-lib/donkey/donkey-model.jar, server-lib/donkey/donkey-server.jar: XStreamSerializer$1 extensions/http/http-client.jar: HttpListener$1, HttpSender$5/$7 extensions/smtp/smtp-client.jar: SmtpSender$1/$3 extensions/tcp/tcp-server.jar: TcpDispatcher$1/$2, TcpReceiver$1 compare_builds.py reports these as real differences (exit 1) because it treats any class content change as real. - For all 34 entries, javap -c -p -s output (bytecode, signatures, flags) is identical. The javap -v diff contains only Utf8 constants and LocalVariableTable rows: the anonymous class constructor's parameters, which javac copies from the superclass constructor (data, columnNames, name, wrapped, ...) while annotation processing is enabled, are now named arg0..N. The LocalVariableTable is debug information only. No -parameters flag is used, so no MethodParameters attribute is emitted either way and reflection (Parameter.getName) is unaffected; the default serialVersionUID computation does not include it. The only visible change is debugger variable names in those constructors. Also drop CONTRIBUTING.md's parenthetical claiming the parity tooling reproduces a byte-identical comparison, which no longer holds. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Tony Germano <tony@germano.name>
tonygermano
requested review from
a team,
NicoPiel,
gibson9583,
jonbartels,
kayyagari,
kpalang,
mgaffigan and
ssrowe
October 17, 2026 19:31
mgaffigan
approved these changes
Oct 17, 2026
NicoPiel
approved these changes
Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The compile tasks pointed -sourcepath at the source directories and used the compile classpath as the annotation processor path. Neither is needed, and running every processor found on the classpath becomes a liability once dependency resolution turns transitive: any newly arrived jar that ships a processor would start running.
The only processors on any classpath today are log4j-core's (PluginProcessor, GraalVmProcessor; no other resolved or vendored jar ships a META-INF/services/javax.annotation.processing.Processor), and no source uses @plugin, so they generated nothing. Drop both overrides and let Gradle pass -proc:none with its own (empty) source path. As a side benefit, log4j-core's processors are not registered as incremental, so every change forced a full recompile of the module; incremental compilation now works.
Removing -sourcepath cannot change what is compiled: every source file is passed to javac explicitly, and the only file a source-set exclude hides (generator's HL7ModelGeneratorTest under /test/) is referenced by nothing.
Effect on the distribution, checked with oie-build-parity's compare_builds.py against a build of the parent commit (both built with clean build dist -PdisableSigning=true):
The LocalVariableTable is debug information only. No -parameters flag is used, so no MethodParameters attribute is emitted either way and reflection (Parameter.getName) is unaffected; the default serialVersionUID computation does not include it. The only visible change is debugger variable names in those constructors.
Also drop CONTRIBUTING.md's parenthetical claiming the parity tooling reproduces a byte-identical comparison, which no longer holds.
Assisted-by: Claude:claude-opus-5-5