diff --git a/app/dagger/ApplicationComponent.java b/app/dagger/ApplicationComponent.java index d32be15..404012d 100644 --- a/app/dagger/ApplicationComponent.java +++ b/app/dagger/ApplicationComponent.java @@ -14,4 +14,10 @@ }) public interface ApplicationComponent { play.Application application(); + + @Component.Builder + interface Builder { + @BindsInstance Builder context(play.ApplicationLoader.Context context); + ApplicationComponent build(); + } } diff --git a/app/dagger/ApplicationLoaderContextModule.java b/app/dagger/ApplicationLoaderContextModule.java index f13a4f6..df4e948 100644 --- a/app/dagger/ApplicationLoaderContextModule.java +++ b/app/dagger/ApplicationLoaderContextModule.java @@ -1,29 +1,11 @@ package dagger; -import javax.inject.Inject; -import javax.inject.Singleton; -import java.util.Objects; - @Module -public class ApplicationLoaderContextModule { - - private final play.ApplicationLoader.Context javaContext; - - @Inject - public ApplicationLoaderContextModule(play.ApplicationLoader.Context context){ - this.javaContext = Objects.requireNonNull(context); - } - - @Singleton - @Provides - public play.api.ApplicationLoader.Context providesScalaContext() { - return this.javaContext.asScala(); - } +public abstract class ApplicationLoaderContextModule { - @Singleton @Provides - public play.ApplicationLoader.Context providesJavaContext() { - return javaContext; + public static play.api.ApplicationLoader.Context providesScalaContext(play.ApplicationLoader.Context context) { + return context.asScala(); } } diff --git a/app/dagger/ApplicationModule.java b/app/dagger/ApplicationModule.java index efae1bd..c9380ab 100644 --- a/app/dagger/ApplicationModule.java +++ b/app/dagger/ApplicationModule.java @@ -3,10 +3,10 @@ import play.Application; @Module -public class ApplicationModule { +public abstract class ApplicationModule { @Provides - public Application providesApplication(MyComponentsFromContext myComponentsFromContext) { + public static Application providesApplication(MyComponentsFromContext myComponentsFromContext) { return myComponentsFromContext.application(); } diff --git a/app/dagger/ClockModule.java b/app/dagger/ClockModule.java index a0f7596..a534fd3 100644 --- a/app/dagger/ClockModule.java +++ b/app/dagger/ClockModule.java @@ -6,10 +6,10 @@ * A module that provides a clock implementation. */ @Module -public class ClockModule { +public abstract class ClockModule { @Provides - public Clock clock() { + public static Clock clock() { return java.time.Clock.systemUTC(); } diff --git a/app/dagger/MyApplicationLoader.java b/app/dagger/MyApplicationLoader.java index 4cc5b40..ed07d2e 100644 --- a/app/dagger/MyApplicationLoader.java +++ b/app/dagger/MyApplicationLoader.java @@ -21,7 +21,7 @@ public Application load(Context context) opt.ifPresent(lc -> lc.configure(context.environment(), context.initialConfig(), emptyMap())); ApplicationComponent applicationComponent = DaggerApplicationComponent.builder() - .applicationLoaderContextModule(new ApplicationLoaderContextModule(context)) + .context(context) .build(); return applicationComponent.application(); diff --git a/build.sbt b/build.sbt index 619d8a0..fe72ca9 100644 --- a/build.sbt +++ b/build.sbt @@ -8,8 +8,8 @@ scalaVersion := "2.12.2" libraryDependencies += ws -libraryDependencies += "com.google.dagger" % "dagger" % "2.10" -libraryDependencies += "com.google.dagger" % "dagger-compiler" % "2.10" +libraryDependencies += "com.google.dagger" % "dagger" % "2.11" +libraryDependencies += "com.google.dagger" % "dagger-compiler" % "2.11" javacOptions in Compile := { (managedSourceDirectories in Compile).value.head.mkdirs(); javacOptions.value }