in slick/src/main/scala/org/apache/pekko/projection/slick/internal/SlickProjectionImpl.scala [75:101]
private def copy(
settingsOpt: Option[ProjectionSettings] = this.settingsOpt,
restartBackoffOpt: Option[RestartSettings] = this.restartBackoffOpt,
offsetStrategy: OffsetStrategy = this.offsetStrategy,
handlerStrategy: HandlerStrategy = this.handlerStrategy,
statusObserver: StatusObserver[Envelope] = this.statusObserver): SlickProjectionImpl[Offset, Envelope, P] =
new SlickProjectionImpl(
projectionId,
sourceProvider,
databaseConfig,
settingsOpt,
restartBackoffOpt,
offsetStrategy,
handlerStrategy,
statusObserver,
offsetStore)
/*
* Build the final ProjectionSettings to use, if currently set to None fallback to values in config file
*/
private def settingsOrDefaults(implicit system: ActorSystem[_]): ProjectionSettings = {
val settings = settingsOpt.getOrElse(ProjectionSettings(system))
restartBackoffOpt match {
case None => settings
case Some(r) => settings.copy(restartBackoff = r)
}
}