This completes the exhaustive refactoring of foundational temporal types from Joda-Time to the native java.time API across the entire codebase. - Replaced org.joda.time.DateTime, Instant, LocalDate, and Duration with java.time equivalents. - Audited and updated Clock implementations (FakeClock, SystemClock). Added nowMillis(), nowDate(), and nowDateTime() to eliminate repetitive conversions and maintain parallel naming. - Replaced ZonedDateTime with OffsetDateTime globally per go/avoid-zdt. OffsetDateTime is a better fit as we use a hardcoded ZoneOffset.UTC throughout the system, making geographical time zone rules (like daylight saving time) irrelevant and preventing serialization ambiguities. Added a presubmit check. - Completely removed all transitional bridge methods from DateTimeUtils and deleted obsolete converters (e.g., DateTimeConverter). - Updated testing infrastructure, Apache Beam pipelines, custom JCommander parameters, and networking modules to solely rely on java.time primitives. - Retained the lone necessary org.joda.time.Instant usage in SafeBrowsingTransforms required by the Apache Beam API. - Cleared Gradle lockfiles and removed the joda-time dependency entirely from the build configuration.
EPP Load Testing Client
This project contains an EPP client that can be use for load testing the full registry platform. All the below commands should be run from the merged root.
Setting up the test instances
-
If you have not done s yet, you will need to set up ssh keys in your GCE metadata:
-
To create however many GCE instances you want to run on, modify the
instanceSetUp.shfile to include the correct number of instances. -
Run the instance set up script to create and configure each of the GCE instances to be used for load testing:
$ load-testing/instanceSetUp.sh -
Verify that the IP address of any created instances is in the allowlist of the proxy registrar user.
-
Use the below command to get the IP addresses of the created instances.
$ (gcloud compute instances list | awk '/^loadtest/ { print $5 }') -
Check the proxy registrar's current allow list
$ nomulus -e sandbox get_registrar proxy | grep ipAddressAllowList -
All of your host ip addresses should match a netmask specified in the proxy allow list. If not, you'll need to redefine the list:
$ nomulus -e sandbox update_registrar proxy --ip_allow_list=<new-comma-separated-allowlist>
-
Running the client
-
From the merged root build the load testing client:
$ ./nom_build :load-testing:buildLoadTestClient -
Deploy the client to the GCE instances (this will create a local staging directory and deploy it to each of your previously created loadtest GCE instances):
$ ./nom_build :load-testing:deployLoadTestsToInstances -
Run the load test. Configurations of the load test can be made by configuring this
run.shfile locally.$ load-testing/run.sh
Cleanup
-
Run the instance clean up script to delete the created instances
$ load-testing/instanceCleanUp.sh -
You may want to remove any host key fingerprints for those hosts from your ~/.ssh/known_hosts file (these IPs tend to get reused with new host keys)