From a0eff00031ed4c2c2613482d04e85cec6a93afd8 Mon Sep 17 00:00:00 2001 From: Weimin Yu Date: Mon, 9 Jun 2025 14:46:54 +0000 Subject: [PATCH] Add an aggregate module for DNS writers (#2769) Add a new DnsWritersModule for use by the component classes. To override the set of writers installed, we can easily overwrite this file with a private version. --- .../registry/dns/writer/DnsWritersModule.java | 29 +++++++++++++++++++ .../registry/module/RequestComponent.java | 8 ++--- .../module/backend/BackendComponent.java | 2 -- .../backend/BackendRequestComponent.java | 8 ++--- .../registry/tools/RegistryToolComponent.java | 8 ++--- 5 files changed, 35 insertions(+), 20 deletions(-) create mode 100644 core/src/main/java/google/registry/dns/writer/DnsWritersModule.java diff --git a/core/src/main/java/google/registry/dns/writer/DnsWritersModule.java b/core/src/main/java/google/registry/dns/writer/DnsWritersModule.java new file mode 100644 index 000000000..e25f5837d --- /dev/null +++ b/core/src/main/java/google/registry/dns/writer/DnsWritersModule.java @@ -0,0 +1,29 @@ +// Copyright 2025 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.dns.writer; + +import dagger.Module; +import google.registry.dns.writer.clouddns.CloudDnsWriterModule; +import google.registry.dns.writer.dnsupdate.DnsUpdateWriterModule; + +/** + * Groups all {@link DnsWriter} implementations to be installed. + * + *

To cherry-pick the DNS writers to install, overwrite this file with your private version in + * the release process. + */ +@Module( + includes = {CloudDnsWriterModule.class, DnsUpdateWriterModule.class, VoidDnsWriterModule.class}) +public class DnsWritersModule {} diff --git a/core/src/main/java/google/registry/module/RequestComponent.java b/core/src/main/java/google/registry/module/RequestComponent.java index b865edd43..446a988b7 100644 --- a/core/src/main/java/google/registry/module/RequestComponent.java +++ b/core/src/main/java/google/registry/module/RequestComponent.java @@ -38,10 +38,8 @@ import google.registry.dns.PublishDnsUpdatesAction; import google.registry.dns.ReadDnsRefreshRequestsAction; import google.registry.dns.RefreshDnsAction; import google.registry.dns.RefreshDnsOnHostRenameAction; -import google.registry.dns.writer.VoidDnsWriterModule; -import google.registry.dns.writer.clouddns.CloudDnsWriterModule; +import google.registry.dns.writer.DnsWritersModule; import google.registry.dns.writer.dnsupdate.DnsUpdateConfigModule; -import google.registry.dns.writer.dnsupdate.DnsUpdateWriterModule; import google.registry.export.ExportDomainListsAction; import google.registry.export.ExportPremiumTermsAction; import google.registry.export.ExportReservedTermsAction; @@ -140,14 +138,13 @@ import google.registry.whois.WhoisModule; BatchModule.class, BillingModule.class, CheckApiModule.class, - CloudDnsWriterModule.class, ConsoleModule.class, CronModule.class, CustomLogicModule.class, DnsCountQueryCoordinatorModule.class, DnsModule.class, DnsUpdateConfigModule.class, - DnsUpdateWriterModule.class, + DnsWritersModule.class, EppTlsModule.class, EppToolModule.class, IcannReportingModule.class, @@ -160,7 +157,6 @@ import google.registry.whois.WhoisModule; Spec11Module.class, TmchModule.class, ToolsServerModule.class, - VoidDnsWriterModule.class, WhiteboxModule.class, WhoisModule.class, }) diff --git a/core/src/main/java/google/registry/module/backend/BackendComponent.java b/core/src/main/java/google/registry/module/backend/BackendComponent.java index e698b86d8..5c8b96a70 100644 --- a/core/src/main/java/google/registry/module/backend/BackendComponent.java +++ b/core/src/main/java/google/registry/module/backend/BackendComponent.java @@ -22,7 +22,6 @@ import google.registry.bigquery.BigqueryModule; import google.registry.config.CloudTasksUtilsModule; import google.registry.config.CredentialModule; import google.registry.config.RegistryConfig.ConfigModule; -import google.registry.dns.writer.VoidDnsWriterModule; import google.registry.export.DriveModule; import google.registry.export.sheet.SheetsServiceModule; import google.registry.flows.ServerTridProviderModule; @@ -73,7 +72,6 @@ import jakarta.inject.Singleton; SheetsServiceModule.class, StackdriverModule.class, UrlConnectionServiceModule.class, - VoidDnsWriterModule.class, UtilsModule.class }) interface BackendComponent { diff --git a/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java b/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java index 91a9863a9..f0ba49c6c 100644 --- a/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java +++ b/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java @@ -34,10 +34,8 @@ import google.registry.dns.PublishDnsUpdatesAction; import google.registry.dns.ReadDnsRefreshRequestsAction; import google.registry.dns.RefreshDnsAction; import google.registry.dns.RefreshDnsOnHostRenameAction; -import google.registry.dns.writer.VoidDnsWriterModule; -import google.registry.dns.writer.clouddns.CloudDnsWriterModule; +import google.registry.dns.writer.DnsWritersModule; import google.registry.dns.writer.dnsupdate.DnsUpdateConfigModule; -import google.registry.dns.writer.dnsupdate.DnsUpdateWriterModule; import google.registry.export.ExportDomainListsAction; import google.registry.export.ExportPremiumTermsAction; import google.registry.export.ExportReservedTermsAction; @@ -82,13 +80,12 @@ import google.registry.tmch.TmchSmdrlAction; modules = { BatchModule.class, BillingModule.class, - CloudDnsWriterModule.class, CronModule.class, CustomLogicModule.class, DnsCountQueryCoordinatorModule.class, DnsModule.class, DnsUpdateConfigModule.class, - DnsUpdateWriterModule.class, + DnsWritersModule.class, IcannReportingModule.class, RdeModule.class, ReportingModule.class, @@ -96,7 +93,6 @@ import google.registry.tmch.TmchSmdrlAction; SheetModule.class, Spec11Module.class, TmchModule.class, - VoidDnsWriterModule.class, WhiteboxModule.class, }) public interface BackendRequestComponent { diff --git a/core/src/main/java/google/registry/tools/RegistryToolComponent.java b/core/src/main/java/google/registry/tools/RegistryToolComponent.java index fd4b6ddbf..7264706f4 100644 --- a/core/src/main/java/google/registry/tools/RegistryToolComponent.java +++ b/core/src/main/java/google/registry/tools/RegistryToolComponent.java @@ -23,9 +23,7 @@ import google.registry.config.CloudTasksUtilsModule; import google.registry.config.CredentialModule.LocalCredentialJson; import google.registry.config.RegistryConfig.Config; import google.registry.config.RegistryConfig.ConfigModule; -import google.registry.dns.writer.VoidDnsWriterModule; -import google.registry.dns.writer.clouddns.CloudDnsWriterModule; -import google.registry.dns.writer.dnsupdate.DnsUpdateWriterModule; +import google.registry.dns.writer.DnsWritersModule; import google.registry.keyring.KeyringModule; import google.registry.keyring.api.KeyModule; import google.registry.model.ModelModule; @@ -56,9 +54,8 @@ import javax.annotation.Nullable; BatchModule.class, BigqueryModule.class, ConfigModule.class, - CloudDnsWriterModule.class, CloudTasksUtilsModule.class, - DnsUpdateWriterModule.class, + DnsWritersModule.class, GsonModule.class, KeyModule.class, KeyringModule.class, @@ -71,7 +68,6 @@ import javax.annotation.Nullable; SecretManagerModule.class, UrlConnectionServiceModule.class, UtilsModule.class, - VoidDnsWriterModule.class, NonCachingWhoisModule.class }) interface RegistryToolComponent {