Thomas Andraschko created OWB-1319:
--------------------------------------
Summary: Implement lightweight CDI-centric HTTP server
Key: OWB-1319
URL: https://issues.apache.org/jira/browse/OWB-1319
Project: OpenWebBeans
Issue Type: New Feature
Reporter: Thomas Andraschko
Assignee: Thomas Andraschko
Apache OpenWebBeans is a IoC container implementing CDI specification.
With the rise of Kubernetes and more generally the Cloud adoption, it becomes
more and more key to be able to have fast, light and reliable servers.
That ecosystem is mainly composed of Microprofile servers.
However their stack is quite huge for most applications and OpenWebBeans
Microprofile server are not CDI centric (Meecrowave and Tomee are Tomcat
centric).
This is why the need of a light HTTP server (likely Netty based), embeddable in
CDI context (as a bean) comes.
It will be close to a light embedded servlet container but likely more reactive
in the way the server will need to scale.
It must handle fixed size payload (with Content-Length header) but also
chunking.
File upload is an optional bonus.
This task will require:
1. to implement a HTTP server with Netty (or alike),
2. define a light HTTP API (at least supporting filter like interception, even
interceptor based but in a reactive fashion - CompletionStage),
3. make it configurable (Micorprofile config or so) and embedded.
Once this light server is ready, the next step for a Java application to
embrace the cloud is to make it native.
This is generally done through GraalVM.
Today OpenWebBeans proxy generation is not stable so making it native is not
trivial.
The end of the task will therefore be to implement a proxy SPI in OpenWebBeans
enabling to have pre-generated proxies and reload them at runtime (per bean).
The delivery of this task can be a Runnable (with a companion main(String[])).
You should know:
• Java
• HTTP
*Difficulty*: Major
*mentors*: [email protected], [email protected]
*Potential mentors:*
Project Devs, mail: dev (at) openwebbeans.apache.org
--
This message was sent by Atlassian Jira
(v8.3.4#803005)