Adds example to Source.completionStageSource (#28639)

This commit is contained in:
Ignasi Marimon-Clos 2020-02-27 17:59:01 +01:00 committed by GitHub
parent 26c333b52c
commit 8ba9fda183
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 89 additions and 11 deletions

View file

@ -0,0 +1,28 @@
/*
* Copyright (C) 2020 Lightbend Inc. <https://www.lightbend.com>
*/
package jdocs.stream.operators.source;
// #sourceCompletionStageSource
import akka.NotUsed;
import akka.stream.javadsl.Source;
import java.util.concurrent.CompletionStage;
public class CompletionStageSource {
public static void sourceCompletionStageSource() {
UserRepository userRepository = null; // an abstraction over the remote service
Source<User, CompletionStage<NotUsed>> userCompletionStageSource =
Source.completionStageSource(userRepository.loadUsers());
// ...
}
interface UserRepository {
CompletionStage<Source<User, NotUsed>> loadUsers();
}
static class User {}
}
// #sourceCompletionStageSource

View file

@ -0,0 +1,28 @@
/*
* Copyright (C) 2020 Lightbend Inc. <https://www.lightbend.com>
*/
package docs.stream.operators.source
// #sourceFutureSource
import akka.NotUsed
import akka.stream.scaladsl.Source
import scala.concurrent.Future
object FutureSource {
def sourceCompletionStageSource(): Unit = {
val userRepository: UserRepository = ??? // an abstraction over the remote service
val userFutureSource = Source.futureSource(userRepository.loadUsers)
// ...
}
trait UserRepository {
def loadUsers: Future[Source[User, NotUsed]]
}
case class User()
}
// #sourceFutureSource