List of usage examples for org.springframework.web.context.request.async DeferredResult setErrorResult
public boolean setErrorResult(Object result)
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicController.java
/** * Get the metadata for a specific topic. * * @param topicName the name of the topic for which to retrieve metadata * @return an HTTP 200 response if the request was successful */// w w w . j a va 2s. c o m @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<FindTopicResponse>> findOne(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<FindTopicResponse>> deferredResult = new DeferredResult<>(); service.findOne(topicName).lift(new RequestContextStashOperator<>()).last().map(topicMetadata -> { if (topicMetadata == null) { throw new TopicNotFoundException(topicName); } return topicMetadata; }).map(FindTopicResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.subscription.SubscriptionsController.java
/** * * @param topicName//w w w.ja v a 2 s . c om * @param httpRequest * @return */ @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<FindSubscriptionsResponse>> findAll(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<FindSubscriptionsResponse>> deferredResult = new DeferredResult<>(); topicService.findOne(topicName).lift(new RequestContextStashOperator<>()).flatMap(topicMetadata -> { List<Subscription> subscriptionMetadatas = new ArrayList<>(); return subscriptionService.findAll(topicMetadata.getName()).collect(() -> subscriptionMetadatas, List::add); }).map(FindSubscriptionsResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicController.java
/** * Checks whether or not the supplied topic is registered with Dispatchr. * * @param topicName the name of the topic to check * @param httpRequest http request/*from ww w . j a v a 2s .c o m*/ * @return an HTTP 204 response if the topic is registered; otherwise an HTTP 404 if the topic is not registered */ @RequestMapping(method = RequestMethod.GET, value = "/registered", produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> isRegistered(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.isRegistered(topicName).lift(new RequestContextStashOperator<>()).last() .subscribeOn(Schedulers.io()).subscribe(isRegistered -> { if (isRegistered) { deferredResult.setResult(ResponseEntity.noContent().build()); } else { deferredResult.setResult(ResponseEntity.notFound().build()); } }, 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 . c om*/ 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.chessix.vas.web.ClasController.java
/** * Count the number of records for the CLAS with id {@code classId}. *//*from w ww . ja v a 2 s.c o m*/ @RequestMapping(value = "/{clasId}/count", method = RequestMethod.GET) public DeferredResult<Object> count(@PathVariable final String clasId) { log.debug("count({})", 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 Count.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 Count.ResponseBuilder(false).clasId(clasId).message("CLAS does not exist").build()); } return deferredResult; }
From source file:com.chessix.vas.web.ClasController.java
/** * Validate if for given {@code classId} the speed layer is in sync. *//*ww w .j a va2 s. 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:com.chessix.vas.web.ClasController.java
/** * Remove all accounts and transactions for the CLAS with the given id {@code clasId}. *//*w ww . j a v a 2 s . co m*/ @RequestMapping(value = "/{clasId}/clean", method = RequestMethod.POST) public DeferredResult<Object> clean(@PathVariable final String clasId) { log.debug("clean({})", clasId); batchStorage.tell(new JournalMessage.CleanBuilder(clasId).build(), ActorRef.noSender()); final DeferredResult<Object> deferredResult = new DeferredResult<Object>(); final ActorRef clas = clasService.getClas(clasId); if (clas != null) { // there is data final Future<Object> future = Patterns.ask(clas, new Clean.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 Clean.ResponseBuilder(true).clasId(clasId).message("Clas was already removed").build()); } return deferredResult; }
From source file:comsat.sample.actuator.SampleController.java
private Callable<Map<String, String>> helloCallable(final DeferredResult<Map<String, String>> optDeferred) throws SuspendExecution { return new Callable<Map<String, String>>() { @Override//from ww w . jav a 2 s . com @Suspendable public Map<String, String> call() throws Exception { try { Fiber.sleep(10); Map<String, String> ret = Collections.singletonMap("message", helloWorldService.getHelloMessage()); if (optDeferred != null) optDeferred.setResult(ret); return ret; } catch (Throwable t) { if (optDeferred != null) optDeferred.setErrorResult(t); throw t; } } }; }
From source file:me.j360.trace.example.consumer2.ZipkinServerConfiguration.java
DeferredResult<ResponseEntity<?>> validateAndStoreSpans(String encoding, Codec codec, byte[] body) { DeferredResult<ResponseEntity<?>> result = new DeferredResult<>(); metrics.incrementMessages();//from ww w . j a v a2 s . co m if (encoding != null && encoding.contains("gzip")) { try { body = gunzip(body); } catch (IOException e) { metrics.incrementMessagesDropped(); result.setResult(ResponseEntity.badRequest().body("Cannot gunzip spans: " + e.getMessage() + "\n")); return result; } } collector.acceptSpans(body, codec, new Callback<Void>() { @Override public void onSuccess(@Nullable Void value) { result.setResult(SUCCESS); } @Override public void onError(Throwable t) { String message = t.getMessage(); result.setErrorResult( message.startsWith("Cannot store") ? ResponseEntity.status(500).body(message + "\n") : ResponseEntity.status(400).body(message + "\n")); } }); return result; }
From source file:comsat.sample.actuator.SampleController.java
private Callable<Map<String, Object>> ollehCallable(final Message message, final DeferredResult<Map<String, Object>> optDeferred) throws SuspendExecution { return new Callable<Map<String, Object>>() { @Override/* ww w.j av a2 s.co m*/ @Suspendable public Map<String, Object> call() throws Exception { try { Fiber.sleep(10); Map<String, Object> model = new LinkedHashMap<>(); model.put("message", message.getValue()); model.put("title", "Hello Home"); model.put("date", new Date()); if (optDeferred != null) optDeferred.setResult(model); return model; } catch (Throwable t) { if (optDeferred != null) optDeferred.setErrorResult(t); throw t; } } }; }