Commit 511b0cc
committed
Migrate TMCH, SMD, Mark models, EPP InfoData, and Fee Extensions to use java.time.Instant
This commit completes the java.time migration for the Trademark Clearinghouse (TMCH), Signed Mark Data (SMD), and Mark models, the EPP Response & InfoData Objects, and the Fee Extension ecosystem, transitioning them from Joda-Time's DateTime to java.time.Instant.
Changes made:
1. Core Models Migration:
- ClaimsList: Converted tmdbGenerationTime to Instant. Removed deprecated toDateTime bridge methods and replaced them directly with Instant getters.
- TmchCrl: Converted updated to Instant, utilizing tm().getTxTime() natively for accurate database transaction time injection.
- SignedMark: Updated creationTime and expirationTime to use Instant.
- SignedMarkRevocationList: Changed creationTime to Instant and the map values of revokes from DateTime to Instant.
- Mark Models (ProtectedMark, Trademark, TreatyOrStatuteMark): Migrated all date properties (protectionDate, applicationDate, registrationDate, expirationDate, executionDate) to Instant.
- PremiumPricingEngine & PricingEngineProxy: Migrated priceTime parameters and DomainPrices outputs to Instant.
2. Fee Extensions & EPP Response Models:
- BaseFee & Fee: Converted validDateRange to Range<Instant> and eliminated getValidDateRangeInstant bridge methods.
- All Fee Extension Versions (v06, v11, v12, stdv1): Migrated effectiveDate and notAfterDate fields to Instant.
- DomainInfoData, HostInfoData, ContactInfoData, CreateData, Greeting, MessageQueueInfo: Migrated all date fields to Instant.
3. JAXB XML Adapter Updates:
- Added and applied UtcInstantAdapter.class in package-info.java definitions (smd, mark, contact, eppoutput, fee*) to natively marshall/unmarshall Instant properties instead of DateTime.
4. Parsers & Flow Integrations:
- SmdrlCsvParser & ClaimsListParser: Modified to invoke Instant.parse() when parsing external CSV artifacts. Added new strict header validation and row consistency checks to ClaimsListParser to ensure records match expected fields before parsing.
- DomainPricingLogic: Updated to natively pass and compute Instant for all domain pricing, renewals, and restore logic.
- DomainFlowTmchUtils and DomainCreateFlow: Adapted method signatures and callers to natively receive and validate against Instant instead of relying on conversions, updating chronological comparisons to leverage isBefore() and isAfter().
- Stripped out toDateTime() conversions previously necessary when mapping between core entities and these EPP response objects across multiple flow classes (e.g. DomainInfoFlow, HostInfoFlow, DomainCreateFlow, HostCreateFlow, PollRequestFlow, and HelloFlow).
5. Test Suite Refactoring:
- Transformed org.joda.time.DateTime usage into java.time.Instant in associated tests (SmdrlCsvParserTest, TmchTestDataExpirationTest, UploadClaimsListCommandTest, SignedMarkRevocationListTest, DomainPricingLogicTest, etc.).
- Replaced uses of fakeClock.nowUtc() with the idiomatic fakeClock.now().
- Fixed broken tests in UploadClaimsListCommandTest where invalid formats like "foo" previously generated Joda IllegalArgumentException on the first row, hiding the fact that subsequent header/body validation logic was never exercised. The tests now use a valid timestamp header row to properly trigger IllegalArgumentException for structural assertions, and assert DateTimeParseException correctly where applicable.
6. Refinement:
- Added explicit guidelines to GEMINI.md to avoid calling toInstant() and toDateTime() when equivalent native alternatives like tm().getTxTime() exist.
- Added guidelines on avoiding Python scripts for formatting in favor of ./gradlew javaIncrementalFormatApply.
- Added guidelines on checking exceptions in test suites when migrating parsing logic.1 parent 3de790f commit 511b0cc
77 files changed
Lines changed: 875 additions & 957 deletions
File tree
- core/src
- main/java/google/registry
- beam/billing
- flows
- domain
- host
- poll
- session
- model
- contact
- domain
- fee06
- fee11
- fee12
- feestdv1
- fee
- eppoutput
- host
- mark
- poll
- pricing
- smd
- tmch
- pricing
- tmch
- test/java/google/registry
- flows
- domain
- token
- model
- adapters
- smd
- tmch
- pricing
- tmch
- tools
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
93 | | - | |
94 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
95 | 100 | | |
96 | 101 | | |
97 | 102 | | |
| |||
116 | 121 | | |
117 | 122 | | |
118 | 123 | | |
| 124 | + | |
119 | 125 | | |
120 | 126 | | |
121 | 127 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
402 | 402 | | |
403 | 403 | | |
404 | 404 | | |
405 | | - | |
| 405 | + | |
406 | 406 | | |
407 | 407 | | |
408 | 408 | | |
| |||
Lines changed: 5 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
| |||
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
316 | | - | |
| 317 | + | |
317 | 318 | | |
318 | 319 | | |
319 | 320 | | |
| |||
440 | 441 | | |
441 | 442 | | |
442 | 443 | | |
443 | | - | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
444 | 447 | | |
445 | 448 | | |
446 | 449 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
44 | | - | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
504 | 504 | | |
505 | 505 | | |
506 | 506 | | |
507 | | - | |
| 507 | + | |
508 | 508 | | |
509 | 509 | | |
510 | 510 | | |
| |||
515 | 515 | | |
516 | 516 | | |
517 | 517 | | |
518 | | - | |
| 518 | + | |
519 | 519 | | |
520 | 520 | | |
521 | 521 | | |
| |||
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
662 | | - | |
| 662 | + | |
663 | 663 | | |
664 | 664 | | |
665 | 665 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| |||
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
| 73 | + | |
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
| 197 | + | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
| |||
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
220 | | - | |
| 220 | + | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
275 | | - | |
| 275 | + | |
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
352 | | - | |
| 352 | + | |
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
144 | | - | |
| 145 | + | |
145 | 146 | | |
146 | 147 | | |
147 | 148 | | |
| |||
Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | 22 | | |
24 | 23 | | |
25 | 24 | | |
| |||
81 | 80 | | |
82 | 81 | | |
83 | 82 | | |
84 | | - | |
| 83 | + | |
85 | 84 | | |
86 | 85 | | |
87 | 86 | | |
88 | 87 | | |
89 | 88 | | |
90 | 89 | | |
91 | | - | |
| 90 | + | |
92 | 91 | | |
93 | 92 | | |
94 | 93 | | |
| |||
98 | 97 | | |
99 | 98 | | |
100 | 99 | | |
101 | | - | |
| 100 | + | |
102 | 101 | | |
103 | | - | |
| 102 | + | |
104 | 103 | | |
105 | 104 | | |
106 | 105 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
77 | 78 | | |
78 | 79 | | |
79 | 80 | | |
80 | | - | |
| 81 | + | |
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| |||
0 commit comments