Adds example to Source.completionStageSource (#28639)
This commit is contained in:
parent
26c333b52c
commit
8ba9fda183
5 changed files with 89 additions and 11 deletions
|
|
@ -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
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue