Chen Qian
Chen Qian
### Expected behavior Thread-safe & fast ### Actual behavior - `Router` state(`mappingLookups` & `uriLookups`) can not be guaranteed - expect `synchronized` in `deRegister()` - too much performance loss, cause' of...
### Expected behavior do not use interface naming style prefixed with `I` ### Actual behavior https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/server/bootstrap/IExceptionHandler.java#L39 and it is difficult to distinguish with the interface below https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/server/route/ExceptionHandler.java#L23 ### Steps to...
Avoid frequent re-creation of this object whose fields are immutable in runtime https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/core/resolver/RequestEntityResolverContextImpl.java#L24-L49 same with https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/core/resolver/ParamResolverContextImpl.java#L23 https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/core/resolver/RequestEntityResolverContextImpl.java#L24 https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/core/resolver/ResponseEntityResolverContextImpl.java#L25 ### Env - Restlight version: 1.0.0-SNAPSHOT
### Expected behavior make a new abstraction for error handling ### Actual behavior https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-jaxrs-provider/src/main/java/io/esastack/restlight/jaxrs/adapter/JaxrsExceptionAdapter.java#L52-L92 this would hurt performance ### Steps to reproduce ### Env - Restlight version: 1.0.0-SNAPSHOT
### Expected behavior give constructor params for `HashedWheelTimer` for performance and observability ### Actual behavior https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-jaxrs-provider/src/main/java/io/esastack/restlight/jaxrs/impl/container/AsyncResponseImpl.java#L42 ### Env - Restlight version: 1.0.0-SNAPSHOT
### Actual behavior this windup logic should not appear here https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-core/src/main/java/io/esastack/restlight/core/handler/RestlightHandlerImpl.java#L74-L123 ### Env - Restlight version: - JVM version: - OS:
### Expected behavior do not use `RequestContext#attrs()` to controll your biz logic ### Env - Restlight version: 1.0.0-SNAPSHOT
### Expected behavior minimize concurrent operations ### Actual behavior double-check singleton has been executed TWICE https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-jaxrs-provider/src/main/java/io/esastack/restlight/jaxrs/configure/LazyInstantiateHandler.java#L49-L78 ### Steps to reproduce ### Env - Restlight version: 1.0.0-SNAPSHOT
### Expected behavior avoid large http header data copies in jaxrs ### Actual behavior http headers are copied and converted between restlight and jaxrs https://github.com/esastack/esa-restlight/blob/4f2cb402ad7e794d8ecec46833a6dd90e7532a77/restlight-jaxrs-provider/src/main/java/io/esastack/restlight/jaxrs/util/JaxrsUtils.java#L108-L132 ### Steps to reproduce ###...
We can configure the warming up by `restlight.server.warm-up.delay`, which just takes a `Thread.sleep(delay)` before starting the Restlight server, but could not support doing some logic before starting the Restlight server...