diff --git a/java/google/registry/dns/DnsModule.java b/java/google/registry/dns/DnsModule.java index bfce0670a..befc77d27 100644 --- a/java/google/registry/dns/DnsModule.java +++ b/java/google/registry/dns/DnsModule.java @@ -27,6 +27,7 @@ import static google.registry.request.RequestParameters.extractSetOfParameters; import com.google.appengine.api.taskqueue.Queue; import com.google.appengine.api.taskqueue.QueueFactory; +import dagger.Binds; import dagger.Module; import dagger.Provides; @@ -42,13 +43,11 @@ import javax.servlet.http.HttpServletRequest; /** Dagger module for the dns package. */ @Module -public final class DnsModule { +public abstract class DnsModule { - @Provides + @Binds @DnsWriterZone - static String provideZoneName(@Parameter(RequestParameters.PARAM_TLD) String tld) { - return tld; - } + abstract String provideZoneName(@Parameter(RequestParameters.PARAM_TLD) String tld); @Provides @Named(DNS_PULL_QUEUE_NAME) diff --git a/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java b/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java index 23b7445ab..58005cb9a 100644 --- a/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java +++ b/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java @@ -14,6 +14,7 @@ package google.registry.dns.writer.dnsupdate; +import dagger.Binds; import dagger.Module; import dagger.Provides; @@ -23,12 +24,10 @@ import javax.net.SocketFactory; /** Dagger module that provides a DnsUpdateWriter. */ @Module -public final class DnsUpdateWriterModule { +public abstract class DnsUpdateWriterModule { - @Provides - static DnsWriter provideDnsWriter(DnsUpdateWriter dnsWriter) { - return dnsWriter; - } + @Binds + abstract DnsWriter provideDnsWriter(DnsUpdateWriter dnsWriter); @Provides static SocketFactory provideSocketFactory() { diff --git a/java/google/registry/groups/GroupsModule.java b/java/google/registry/groups/GroupsModule.java index 970914cb8..3a0b5dd9e 100644 --- a/java/google/registry/groups/GroupsModule.java +++ b/java/google/registry/groups/GroupsModule.java @@ -14,15 +14,13 @@ package google.registry.groups; +import dagger.Binds; import dagger.Module; -import dagger.Provides; /** Dagger module for groups package. */ @Module -public final class GroupsModule { +public abstract class GroupsModule { - @Provides - static GroupsConnection provideGroupsConnection(DirectoryGroupsConnection connection) { - return connection; - } + @Binds + abstract GroupsConnection provideGroupsConnection(DirectoryGroupsConnection connection); } diff --git a/java/google/registry/request/Modules.java b/java/google/registry/request/Modules.java index 59943a2b6..9151e8b83 100644 --- a/java/google/registry/request/Modules.java +++ b/java/google/registry/request/Modules.java @@ -32,6 +32,7 @@ import com.google.appengine.api.urlfetch.URLFetchServiceFactory; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory; +import dagger.Binds; import dagger.Module; import dagger.Provides; @@ -138,11 +139,9 @@ public final class Modules { *
You must also use the {@link AppIdentityCredential} module. */ @Module - public static final class UseAppIdentityCredentialForGoogleApisModule { - @Provides - static HttpRequestInitializer provideHttpRequestInitializer(AppIdentityCredential credential) { - return credential; - } + public abstract static class UseAppIdentityCredentialForGoogleApisModule { + @Binds + abstract HttpRequestInitializer provideHttpRequestInitializer(AppIdentityCredential credential); } /** diff --git a/java/google/registry/tools/RegistryToolModule.java b/java/google/registry/tools/RegistryToolModule.java index b1a1e12a3..9d08369cf 100644 --- a/java/google/registry/tools/RegistryToolModule.java +++ b/java/google/registry/tools/RegistryToolModule.java @@ -14,6 +14,7 @@ package google.registry.tools; +import dagger.Binds; import dagger.Module; import dagger.Provides; @@ -24,17 +25,15 @@ import java.util.Random; /** Dagger module for Registry Tool. */ @Module -final class RegistryToolModule { +abstract class RegistryToolModule { @Provides static RegistryToolEnvironment provideRegistryToolEnvironment() { return RegistryToolEnvironment.get(); } - @Provides - static PasswordGenerator providePasswordGenerator(RandomPasswordGenerator passwordGenerator) { - return passwordGenerator; - } + @Binds + abstract PasswordGenerator providePasswordGenerator(RandomPasswordGenerator passwordGenerator); @Provides static Random provideRandom() {