Migrate EPP XML generation from Soy to JAXB and emails to FreeMarker#3038
Open
CydeWeys wants to merge 1 commit intogoogle:masterfrom
Open
Migrate EPP XML generation from Soy to JAXB and emails to FreeMarker#3038CydeWeys wants to merge 1 commit intogoogle:masterfrom
CydeWeys wants to merge 1 commit intogoogle:masterfrom
Conversation
41188ab to
1268bcc
Compare
This commit eliminates the dependency on deprecated Soy templates by migrating EPP XML generation to JAXB and abuse emails to FreeMarker. It also introduces a fluent EPP DSL to simplify command construction and improve type safety. Key changes: - Migration: Replaced all Soy-based EPP and email templates with JAXB models and FreeMarker (.ftl) templates, removing the Soy compiler from the build. - Fluent DSL: Introduced EppInputs and EppExtensions utility classes to centralize resource command generation, significantly reducing boilerplate. - Type Safety: Enforced the use of Guava ImmutableList and ImmutableSet across all EPP API boundaries, ensuring structural integrity and immutability. - Ergonomics: Refactored extension helpers to handle null/empty inputs gracefully, removing noisy ternary operators and conditional logic at callsites. - SecDNS Optimization: Standardized DS record management, allowing for surgical updates and simplified URS (Uniform Rapid Suspension) logic. - Verification: Added a new unit test suite (EppInputsTest) and verified functional parity across 5,260+ core tests. This modernization improves codebase maintainability and aligns the registry's EPP generation with modern Java idioms.
|
|
||
| /** The inner change type on a contact update command. */ | ||
| public static class AddRemove extends ResourceUpdate.AddRemove {} | ||
| public static class AddRemove extends ResourceUpdate.AddRemove { |
| } | ||
|
|
||
| /** The inner add type on the update extension. */ | ||
| public static class Add extends AddRemoveBase { |
| @XmlElement(name = "id"), | ||
| @XmlElement(name = "name") }) | ||
| List<String> targetUniqueIds; | ||
| public class ResourceCheck extends ImmutableObject implements ResourceCommand { |
|
|
||
| /** The inner change type on a contact update command. */ | ||
| public static class AddRemove extends ResourceUpdate.AddRemove {} | ||
| public static class AddRemove extends ResourceUpdate.AddRemove { |
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.
This CL eliminates the deprecated Closure Template (Soy) engine from the Nomulus codebase.
Key changes:
Verified with ./gradlew :core:test and specialized tool command tests.
This change is