यह अभी तक प्रकाशित नहीं हुआ है, लेकिन अल्पाका की मास्टर शाखा में, MongoSource.apply
एक प्रकार का पैरामीटर लेता है:
object MongoSource {
def apply[T](query: Observable[T]): Source[T, NotUsed] =
Source.fromPublisher(ObservableToPublisher(query))
}
इसलिए, अल्पाक्का की आगामी 0.18 रिलीज़ के साथ, आप निम्न कार्य करने में सक्षम होंगे:
val source: Source[TodoMongo, NotUsed] = MongoSource[TodoMongo](todoCollection.find())
ध्यान दें कि source यहाँ मान लिया गया है कि todoCollection.find() एक Observable[TodoMongo] returns देता है; आवश्यकतानुसार प्रकार समायोजित करें।
इस बीच, आप बस उपरोक्त कोड को मैन्युअल रूप से जोड़ सकते हैं। उदाहरण के लिए:
package akka.stream.alpakka.mongodb.scaladsl
import akka.NotUsed
import akka.stream.alpakka.mongodb.ObservableToPublisher
import akka.stream.scaladsl.Source
import org.mongodb.scala.Observable
object MyMongoSource {
def apply[T](query: Observable[T]): Source[T, NotUsed] =
Source.fromPublisher(ObservableToPublisher(query))
}
ध्यान दें कि MyMongoSource akka.stream.alpakka.mongodb.scaladsl में रहने के लिए परिभाषित किया गया है पैकेज (जैसे MongoSource ), क्योंकि ObservableToPublisher
एक पैकेज-निजी वर्ग है। आप MyMongoSource . का उपयोग करेंगे उसी तरह जैसे आप MongoSource . का उपयोग करेंगे :
val source: Source[TodoMongo, NotUsed] = MyMongoSource[TodoMongo](todoCollection.find())