List of usage examples for org.springframework.web.context.request.async DeferredResult setResult
public boolean setResult(T result)
From source file:com.kixeye.chassis.transport.http.ListenableFutureReturnValueHandler.java
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return;//from www . j a v a 2s . co m } final DeferredResult<Object> deferredResult = new DeferredResult<>(); Futures.addCallback((ListenableFuture<?>) returnValue, new FutureCallback<Object>() { @Override public void onSuccess(@Nullable Object result) { deferredResult.setResult(result); } @Override public void onFailure(Throwable t) { deferredResult.setErrorResult(t); } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }
From source file:org.trustedanalytics.kafka.adminapi.api.ApiController.java
@RequestMapping(method = RequestMethod.GET, value = "/topics/{topic}") @ResponseBody//w w w .jav a 2 s. c o m public DeferredResult<List<String>> readTopic(@PathVariable final String topic) { LOG.info("readTopic invoked: {}", topic); if (StringUtils.isEmpty(topic)) { throw new InvalidTopicException("Missing mandatory topic name"); } Topic.validate(topic); if (!kafkaService.topicExists(topic)) { throw new UnknownTopicOrPartitionException("Topic does not exist: " + topic); } DeferredResult<List<String>> deferredResult = new DeferredResult<>(); CompletableFuture.supplyAsync(() -> kafkaService.readTopic(topic)) .whenCompleteAsync((result, throwable) -> { deferredResult.setResult(result); deferredResult.setErrorResult(throwable); }); return deferredResult; }
From source file:com.kixeye.chassis.transport.websocket.responseconverter.ObservableResponseConverter.java
@Override public DeferredResult<Object> convertToDeferredResult(Object response) { final DeferredResult<Object> deferredResult = new DeferredResult<>(); ((Observable<?>) response).subscribe(new Observer<Object>() { @Override/* w w w. j a va2 s. c om*/ public void onCompleted() { if (!deferredResult.hasResult()) { deferredResult.setResult(null); } } @Override public void onError(Throwable e) { deferredResult.setErrorResult(e); } @Override public void onNext(Object args) { deferredResult.setResult(args); } }); return deferredResult; }
From source file:com.carlomicieli.jtrains.infrastructure.web.CompletableFutureReturnValueHandler.java
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { final DeferredResult<Object> deferredResult = new DeferredResult<>(); final CompletableFuture<?> future = (CompletableFuture<?>) returnValue; final CompletableFuture<Object> completedFuture = future.handle((ret, err) -> { if (ret != null) { deferredResult.setResult(ret); return ret; } else {/*from w w w .j a v a 2 s.co m*/ deferredResult.setErrorResult(err); return null; } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }
From source file:com.mmj.app.web.controller.comet.CometController.java
/** * <pre>/* w w w .j a va 2 s . c o m*/ * [ * { * "id": "1", * "minimumVersion": "1.0", * "supportedConnectionTypes": [ * "callback-polling", * "long-polling" * ], * "successful": true, * "channel": "/meta/handshake", * "clientId": "ukpp1rfmxc8az72gwx3skxu2ythnl", * "version": "1.0" * } * ] * </pre> * * @return */ @RequestMapping(value = "/comet/handshake", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST) @ResponseBody public DeferredResult<String> handshake() { DeferredResult<String> deferredResult = new DeferredResult<String>(); HandShakeVO handShake = new HandShakeVO("1", "1.0", true, "/meta/handshake", "ukpp1rfmxc8az72gwx3skxu2ythnl", "1.0", "callback-polling", "long-polling"); deferredResult.setResult(new Gson().toJson(Arrays.asList(handShake))); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.client.ClientController.java
/** * Deletes a specific client./*from ww w . j av a 2s . c om*/ * * @param clientId client identifier * @return an HTTP 204 response if the client was deleted or an HTTP 404 if the client does not exist */ @RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> unregister(@PathVariable("clientId") String clientId, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.unregister(clientId).lift(new RequestContextStashOperator<>()).last().subscribeOn(Schedulers.io()) .subscribe(complete -> { deferredResult.setResult(ResponseEntity.noContent().build()); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:com.fengduo.bee.web.controller.upload.FileUploadController.java
@RequestMapping(value = "/Upload", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST) @ResponseBody/*ww w .j a va2 s.c o m*/ public DeferredResult<String> Upload(MultipartFile upload) { DeferredResult<String> deferredResult = new DeferredResult<String>(); long size = upload.getSize(); if (size == 0) { deferredResult.setResult("-1"); return deferredResult; } PicsInfoEnum picInfoEnum = PicsInfoEnum.AVATAR_IMG; if (picInfoEnum == null) { deferredResult.setResult("-1"); return deferredResult; } int maxSize = picInfoEnum.getMaxSize(); if (size > maxSize) { deferredResult.setResult("-1"); return deferredResult; } // ??? String suffix = getSuffix(upload.getOriginalFilename()); boolean isLegal = checkSuffixLegal(picInfoEnum.getSuffixs(), suffix); if (!isLegal) { deferredResult.setResult("-1"); return deferredResult; } long userId = getCurrentUserId(); String relativeUrl = null; relativeUrl = picInfoEnum.getDirPrefix() + "/" + userId + "/"; final String _filePath = relativeUrl; Result result = fileService.createFilePath(upload, new IFileCreate() { public String build(String filePath, String suffix) { return _filePath + filePath + suffix; } }); if (result.isSuccess()) { deferredResult.setResult("http://fengduo.co" + result.getData().toString()); return deferredResult; } else { deferredResult.setResult("IOError"); return deferredResult; } }
From source file:io.ignitr.dispatchr.manager.controller.client.ClientController.java
/** * Finds a specific client.//from w ww. j a va2 s. c om * * @param clientId client identifier * @return an HTTP 200 response containing the client metadata or an HTTP 404 if the client does not exist */ @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<FindClientResponse>> findOne(@PathVariable("clientId") String clientId, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<FindClientResponse>> deferredResult = new DeferredResult<>(); service.findOne(clientId).lift(new RequestContextStashOperator<>()).last().map(FindClientResponse::from) .subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:com.mmj.app.web.controller.comet.CometController.java
@RequestMapping(value = "/comet/", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST) @ResponseBody/* w ww . j a v a2 s.c o m*/ public DeferredResult<String> comet() { DeferredResult<String> deferredResult = new DeferredResult<String>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("id", "2"); map.put("subscription", "/service/chouti-new"); map.put("successful", true); map.put("channel", "/meta/subscribe"); deferredResult.setResult(new Gson().toJson(Arrays.asList(map))); return deferredResult; }
From source file:org.mimacom.sample.integration.patterns.user.service.web.AsyncUserController.java
@ResponseStatus(CREATED) @RequestMapping(method = POST)//from w w w . j ava 2s . c om public DeferredResult<String> createUser(@RequestBody User user, @RequestParam(required = false) Integer waitTime) { DeferredResult<String> deferredResult = new DeferredResult<>(); LOG.info("created user '{}' '{}'", user.getFirstName(), user.getLastName()); this.userRepository.put(user.getId(), user); if (waitTime == null) { this.asyncSearchServiceIntegration.indexUser(user, ignored -> deferredResult.setResult(user.getId()), deferredResult::setErrorResult); } else { this.asyncSearchServiceIntegration.indexUserSlow(user, waitTime, ignored -> deferredResult.setResult(user.getId()), deferredResult::setErrorResult); } return deferredResult; }