/*
* COMSAT
* Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 3.0
* as published by the Free Software Foundation.
*/
/*
* Based on the corresponding class in Spring Boot Samples.
* Copyright the original author(s).
* Released under the ASF 2.0 license.
*/
package comsat.sample.undertow.web;
import co.paralleluniverse.fibers.SuspendExecution;
import co.paralleluniverse.fibers.Suspendable;
import java.util.concurrent.Callable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import comsat.sample.undertow.service.HelloWorldService;
@RestController
public class SampleController {
@Autowired
private HelloWorldService helloWorldService;
@RequestMapping("/")
public String helloWorld() throws InterruptedException, SuspendExecution {
return this.helloWorldService.getHelloMessage();
}
@RequestMapping("/async")
public Callable<String> helloWorldAsync() throws SuspendExecution {
return new Callable<String>() {
@Override
@Suspendable
public String call() throws Exception {
return "async: " + SampleController.this.helloWorldService.getHelloMessage();
}
};
}
}