-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApplication.java
41 lines (31 loc) · 1.25 KB
/
Application.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package controllers;
import actors.TwitterActor;
import akka.actor.ActorRef;
import akka.actor.Props;
import akka.japi.Function;
import akka.routing.FromConfig;
import play.libs.Akka;
import play.libs.F;
import play.mvc.Controller;
import play.mvc.Result;
import akka.pattern.Patterns;
import scala.Function1;
import scala.concurrent.Future;
import scala.runtime.AbstractFunction1;
public class Application extends Controller {
static final ActorRef twitterPool = Akka.system().actorOf(
Props.create(TwitterActor.class).withRouter(
new FromConfig()).withDispatcher("my-dispatcher"), "twitterpool");
public static Result index() {
return ok(views.html.index.render("Hello Play Framework"));
}
public static F.Promise<Result> searchTwitter(String query) {
Future<Object> twitterResultsFuture = Patterns.ask(twitterPool, new TwitterActor.Search(query), 10000);
Future<Result> resultFuture = twitterResultsFuture.map(new AbstractFunction1<Object, Result>() {
public Result apply(Object twitterResults) {
return ok("hello");
}
}, Akka.system().dispatcher());
return F.Promise.wrap(resultFuture);
}
}