我正在学习 Ratpack 并使用多种资源。我有以下在 Ratpack v0.9.18 中工作的接口和类,但在 v1.1.1 中由于 ExecControl 接口的删除而失败。
//file: src/main/groovy/app/UserService.groovy
package app
import ratpack.exec.Promise
interface UserService {
Promise<Void> save (User user)
Promise<List<User>> getUsers ()
}
//file: src/main/groovy/app/DefaultUserService.groovy
package app
import ratpack.exec.ExecControl
import ratpack.exec.Promise
class DefaultUserService implements UserService {
private final List storage = []
@Override
Promise<Void> save (User user) {
storage << user
ExecControl.current ().promiseOf (null)
}
@Override
Promise<List<User>> getUsers () {
ExecControl.current ().promiseOf (storage)
}
}
我认为用 ExecControl 更改行:
Promise.of (storage)
会起作用,但会导致
MissingMethodException: No signature of method: static ratpack.exec.Promise.of() is applicable for argument types: (java.util.ArrayList).
Promise.of () 方法需要一种 ratpack.exec.Upstream 类型。
应该如何修改上述 DefaultUserService 类以与 Ratpack v1.1.1 一起使用?