List of usage examples for org.springframework.web.context.request.async DeferredResult DeferredResult
public DeferredResult()
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicController.java
/** * Unregister an SNS topic with Dispatchr. * * @param topicName the name of the topic to delete * @param httpRequest http request// w w w .j ava 2s . co m * @return an HTTP 204 response if the request was successful */ @RequestMapping(method = RequestMethod.DELETE, value = "/registered", produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> unregister(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.unregister(topicName).lift(new RequestContextStashOperator<>()).last() .map(UnregisterTopicResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:com.chessix.vas.web.ClasController.java
/** * Validate if for given {@code classId} the speed layer is in sync. *//*from w w w . ja v a 2s . c om*/ @RequestMapping(value = "/{clasId}/validate/speed", method = RequestMethod.GET) public DeferredResult<Object> validateSpeedLayer(@PathVariable final String clasId) { log.debug("fastValidate({})", clasId); final DeferredResult<Object> deferredResult = new DeferredResult<Object>(); final ActorRef clas = clasService.getClas(clasId); if (clas != null) { final Future<Object> future = Patterns.ask(clas, new Validate.RequestBuilder(clasId).build(), timeout); future.onComplete(new OnComplete<Object>() { @Override public void onComplete(final Throwable failure, final Object result) { if (failure != null) { // We got a failure, handle it here deferredResult.setErrorResult(failure); } else { // We got a result, do something with it deferredResult.setResult(result); } } }, system.dispatcher()); } else { deferredResult.setResult( new Validate.ResponseBuilder(false).clasId(clasId).message("CLAS does not exist").build()); } return deferredResult; }
From source file:comsat.sample.actuator.SampleController.java
@RequestMapping("/deferred/foo") @ResponseBody/*w ww . j ava2s .c o m*/ public DeferredResult<String> fooDeferred() { final DeferredResult<String> ret = new DeferredResult<>(); new Fiber(new SuspendableCallable<String>() { @Override public String run() throws SuspendExecution, InterruptedException { try { return fooCallable(ret).call(); } catch (Exception ex) { ret.setErrorResult(ret); throw new RuntimeException(ex); } } }).start(); return ret; }
From source file:com.fengduo.bee.commons.result.JsonResultUtils.java
public static <T> DeferredResult<IResult> deferredResult(GenericsResult<T> iResult) { DeferredResult<IResult> dr = new DeferredResult<IResult>(); dr.setResult(iResult);/*from ww w . j a va 2 s . c o m*/ return dr; }
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicsController.java
/** * Find all SNS topics that are not registered with Dispatchr. * * @param offset index of item to start returning when using pagination * @param limit number of items to return when using pagination * @param sortDir sort order in which to return items when using pagination * @return an HTTP 200 response if the request was successful *//*w w w . ja v a2 s. co m*/ @RequestMapping(method = RequestMethod.GET, value = "/unregistered", produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<FindTopicsResponse>> findUnregistered( @RequestParam(value = "offset", defaultValue = "0") Long offset, @RequestParam(value = "limit", defaultValue = "25") Long limit, @RequestParam(value = "sort_dir", defaultValue = "asc") String sortDir, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<FindTopicsResponse>> deferredResult = new DeferredResult<>(); Observable.fromCallable(() -> SortDirectionValidator.validate(sortDir)) .lift(new RequestContextStashOperator<>()) .flatMap(valid -> Observable.create(new Observable.OnSubscribe<List<Topic>>() { List<Topic> topicMetadatas = new ArrayList<>(); @Override public void call(Subscriber<? super List<Topic>> subscriber) { service.findUnregistered(offset, limit, sortDir).collect(() -> topicMetadatas, List::add) .subscribe(topicMetadatas -> { subscriber.onNext(topicMetadatas); subscriber.onCompleted(); }); } })).map(FindTopicsResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:com.chessix.vas.web.AccountController.java
@RequestMapping(value = "/{clasId}/{accountId}/balance", method = RequestMethod.GET) public DeferredResult<Object> balance(@PathVariable final String clasId, @PathVariable final String accountId) { log.debug("balance({},{})", clasId, accountId); final ActorRef clas = clasService.getClas(clasId); final DeferredResult<Object> deferredResult = new DeferredResult<Object>(); if (clas != null) { final Future<Object> future = Patterns.ask(clas, new Balance.RequestBuilder(accountService.getAccountId(accountId)).build(), timeout); future.onComplete(new OnComplete<Object>() { @Override/*from w w w.j a va 2 s . com*/ public void onComplete(final Throwable failure, final Object result) { if (failure != null) { // We got a failure, handle it here deferredResult.setErrorResult(failure); } else { // We got a result, do something with it deferredResult.setResult(result); } } }, system.dispatcher()); } else { deferredResult.setErrorResult(new SaldoDTO(clasId, accountId, null, false, "CLAS does not exist")); } return deferredResult; }
From source file:com.mmj.app.web.controller.topic.TopicController.java
@RequestMapping(value = "/checknewfeed", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST) @ResponseBody// ww w . jav a 2s .co m public DeferredResult<String> checknewfeed(Long maxId) { DeferredResult<String> deferredResult = new DeferredResult<String>(); if (maxId == null) { deferredResult.setResult("0"); return deferredResult; } Integer count = topicService.refreshcount(maxId); deferredResult.setResult(count + ""); return deferredResult; }
From source file:com.kixeye.chassis.transport.websocket.WebSocketAction.java
/** * Invokes this action.//from ww w . j a v a 2 s. co m * * @param handler * @param message * @param envelope * @param session * @return * @throws MethodArgumentNotValidException * * @throws InvocationTargetException * @throws IllegalArgumentException * @throws IllegalAccessException */ public DeferredResult<?> invoke(Object handler, RawWebSocketMessage<?> message, WebSocketEnvelope envelope, WebSocketSession session) throws Exception { Object response = null; // invoke the method Object[] parameters = new Object[method.getParameterTypes().length]; Integer payloadParamIndex = parameterTypes.get(ParameterType.ACTION_PAYLOAD); if (payloadParamIndex != null) { parameters[payloadParamIndex] = message.deserialize(this); } Integer sessionParamIndex = parameterTypes.get(ParameterType.WEB_SOCKET_SESSION); if (sessionParamIndex != null) { parameters[sessionParamIndex] = session; } Integer transactionParamIndex = parameterTypes.get(ParameterType.TRANSACTION_ID); if (transactionParamIndex != null) { parameters[transactionParamIndex] = envelope.getTransactionId(); } Integer envelopeParamIndex = parameterTypes.get(ParameterType.ENVELOPE); if (envelopeParamIndex != null) { parameters[envelopeParamIndex] = envelope; } resolveCustomArguments(parameters, method, session, envelope); // now do actual invoke response = method.invoke(handler, parameters); // otherwise there was no error if (response != null) { // find a converter for (WebSocketResponseConverter converter : responseConverters.get()) { if (converter.canConvertResponse(response)) { return converter.convertToDeferredResult(response); } } // default to using the object as is final DeferredResult<Object> deferredResult = new DeferredResult<>(); deferredResult.setResult(response); return deferredResult; } else { return null; } }
From source file:be.solidx.hot.data.rest.RestDataStore.java
private DeferredResult<ResponseEntity<byte[]>> blockingCall(final Callable<ResponseEntity<byte[]>> dbCall) { final DeferredResult<ResponseEntity<byte[]>> deferredResult = new DeferredResult<>(); DeferredManager deferredManager = new DefaultDeferredManager(blockingTaskThreadPool); deferredManager.when(dbCall).done(new DoneCallback<ResponseEntity<byte[]>>() { @Override//from w w w . java 2 s. com public void onDone(ResponseEntity<byte[]> result) { deferredResult.setResult(result); } }).fail(new FailCallback<Throwable>() { @Override public void onFail(Throwable e) { deferredResult.setErrorResult(new ResponseEntity<byte[]>(extractStackTrace(e).getBytes(), HttpStatus.INTERNAL_SERVER_ERROR)); } }); return deferredResult; }
From source file:net.tenorite.web.TempoController.java
@RequestMapping("/t/{tempo}/channels") public DeferredResult<ModelAndView> channels(@PathVariable("tempo") Tempo tempo) { DeferredResult<ModelAndView> deferred = new DeferredResult<>(); channelsRegistry.listChannels(tempo).whenComplete((channels, throwable) -> { if (throwable != null) { deferred.setErrorResult(throwable); } else {//from w ww. ja v a 2s . co m List<Channel> sorted = channels.stream().sorted(new PropertyComparator<>("name", true, true)) .collect(toList()); ModelAndView mav = new ModelAndView("channels").addObject("tempo", tempo) .addObject("gameModes", gameModes).addObject("channels", sorted); deferred.setResult(mav); } }); return deferred; }