public static Result routeAndCall(Class<? extends Router> router, RequestBuilder requestBuilder, long timeout) { try { Request request = requestBuilder.build(); Router routes = (Router) router.getClassLoader().loadClass(router.getName() + "$").getDeclaredField("MODULE$").get(null); if(routes.routes().isDefinedAt(request._underlyingRequest())) { return invokeHandler(routes.routes().apply(request._underlyingRequest()), request, timeout); } else { return null; } } catch(RuntimeException e) { throw e; } catch(Throwable t) { throw new RuntimeException(t); } }
public static Result routeAndCall(Router router, RequestBuilder requestBuilder, long timeout) { try { Request request = requestBuilder.build(); if(router.routes().isDefinedAt(request._underlyingRequest())) { return invokeHandler(router.routes().apply(request._underlyingRequest()), request, timeout); } else { return null; } } catch(RuntimeException e) { throw e; } catch(Throwable t) { throw new RuntimeException(t); } }
/** * Use the Router to determine the Action to call for this request and executes it. * @deprecated * @see #route instead */ public static Result routeAndCall(Class<? extends play.core.Router.Routes> router, FakeRequest fakeRequest) { try { play.core.Router.Routes routes = (play.core.Router.Routes)router.getClassLoader().loadClass(router.getName() + "$").getDeclaredField("MODULE$").get(null); if(routes.routes().isDefinedAt(fakeRequest.getWrappedRequest())) { return invokeHandler(routes.routes().apply(fakeRequest.getWrappedRequest()), fakeRequest); } else { return null; } } catch(RuntimeException e) { throw e; } catch(Throwable t) { throw new RuntimeException(t); } }
private Receive lockBehavior(final Receive receive) { checkNotNull(receive, "actor's message handler"); return ReceiveBuilder.create() .matchEquals(Control.UNLOCK, unlock -> { locked = false; cancelLockTimeout(); unstashAll(); }) .matchAny(message -> { final PartialFunction<Object, ?> handler = receive.onMessage(); if (locked) { stash(); } else if (handler.isDefinedAt(message)) { handler.apply(message); } else { unhandled(message); } }) .build(); }