Conversation
The Pkl-based JavaRenderer intentionally generates only I*.java interfaces for abstract category types (BI, EventStore, NoSQL, ObjectStore, SaaS, AWS, Azure, Google, Incident). These types are listed in `interfaceOnlyTypes` in JavaRenderer.pkl and never get concrete class output. The 9 concrete classes and their 9 test classes here are leftovers from the old ModelGeneratorV2 Java generator used before the Pkl migration. The sync workflow preserves files it has no generated replacement for, so these were never cleaned up. They are now stale: - No other file imports or extends any of them - All child asset types implement the I* interfaces directly and extend Asset, never these concrete classes - The AssetDeserializer falls back to IndistinctAsset gracefully for any typeName not found in the ClassGraph registry The immediate trigger is that the new `catalogDatasetGuid` attribute added to the Catalog supertype (GOVFOUN-212) is correctly picked up by INoSQL, IEventStore, IObjectStore, ISaaS, and IBI interfaces, but the stale concrete classes don't implement the new getter — causing 5 compile errors in every subsequent sync PR. Deleting all 9 concrete classes and their tests now prevents this class of breakage from recurring as supertypes evolve. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Chris (He/Him) <cgrote@gmail.com>
Signed-off-by: Chris (He/Him) <cgrote@gmail.com>
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.
Summary
ModelGeneratorV2Java generator that were never cleaned up after the Pkl migrationJavaRendererintentionally lists these types ininterfaceOnlyTypes(generates onlyI*.javainterfaces, never concrete classes), but the sync workflow preserves any file it has no generated replacement for, so these orphans survived every syncDeleted concrete classes:
BI,EventStore,NoSQL,ObjectStore,SaaS,AWS,Azure,Google,IncidentWhy these are safe to delete
KafkaTopic implements IEventStore,PowerBIDashboard implements IBI) extendAssetdirectly and implement theI*interfaces — never these concrete classesAssetDeserializerfalls back gracefully toIndistinctAssetfor anytypeNamenot found in the ClassGraph registryWhat triggered this
The new
catalogDatasetGuidattribute added to the Catalog supertype inatlanhq/models(GOVFOUN-212, commit0e95aaa0cc) is correctly propagated toINoSQL,IEventStore,IObjectStore,ISaaS, andIBIinterfaces, but the stale concrete classes don't implement the new getter — causing 5 compile errors in PR #2357 and every subsequent sync PR.Deleting all 9 concrete classes and their tests prevents this class of breakage from recurring as supertypes evolve.
Relationship to PR #2357
Once this merges to
main, PR #2357 (sync-models-20260324-175607) will need to be closed and retriggered from the models repo — its diff currently includes+4modifications to the 5 now-deleted files.Test plan
./gradlew assemble shadowJarpasses./gradlew testpasses