Add dagger map for injecting DnsWriter implementations

This is one of several CLs in a sequence for allowing per-TLD DNS
implementations.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129445641
This commit is contained in:
Greg Shikhman 2016-08-05 08:45:02 -07:00 committed by Justine Tunney
parent 770fd35e20
commit a620d06239
24 changed files with 173 additions and 215 deletions

View file

@ -21,6 +21,7 @@ java_library(
"//third_party/java/dagger",
"//third_party/java/joda_time",
"//java/google/registry/config",
"//java/google/registry/dns/writer",
"//java/google/registry/model",
"//java/google/registry/util",
],

View file

@ -22,7 +22,10 @@ import com.google.api.services.dns.DnsScopes;
import com.google.common.base.Function;
import dagger.Module;
import dagger.Provides;
import dagger.multibindings.IntoMap;
import dagger.multibindings.StringKey;
import google.registry.config.ConfigModule.Config;
import google.registry.dns.writer.DnsWriter;
import java.util.Set;
/** Dagger module for Google Cloud DNS service connection objects. */
@ -39,4 +42,11 @@ public final class CloudDnsModule {
.setApplicationName(projectId)
.build();
}
@Provides
@IntoMap
@StringKey(CloudDnsWriter.NAME)
static DnsWriter provideCloudDnsWriter(CloudDnsWriter writer) {
return writer;
}
}

View file

@ -32,8 +32,8 @@ import com.google.common.collect.ImmutableSet.Builder;
import com.google.common.net.InternetDomainName;
import com.google.common.util.concurrent.RateLimiter;
import google.registry.config.ConfigModule.Config;
import google.registry.model.dns.DnsWriter;
import google.registry.model.dns.DnsWriterZone;
import google.registry.dns.writer.DnsWriter;
import google.registry.dns.writer.DnsWriterZone;
import google.registry.model.domain.DomainResource;
import google.registry.model.domain.secdns.DelegationSignerData;
import google.registry.model.host.HostResource;
@ -59,6 +59,12 @@ import org.joda.time.Duration;
*/
class CloudDnsWriter implements DnsWriter {
/**
* The name of the pricing engine, as used in {@code Registry.dnsWriter}. Remember to change
* the value on affected Registry objects to prevent runtime failures.
*/
public static final String NAME = "CloudDnsWriter";
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
// This is the default max QPS for Cloud DNS. It can be increased by contacting the team