+ All Categories
Home > Documents > JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker...

JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker...

Date post: 12-May-2020
Category:
Upload: others
View: 52 times
Download: 0 times
Share this document with a friend
15
JAX-RS 3.0 The Next Generaon Markus KARG [email protected]
Transcript
Page 1: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

JAX-RS 3.0

The Next Generation

Markus [email protected]

Page 2: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

About Me

Page 3: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Application Servers: Old-School Scaling

AS-spec.Cluster

ControllerAS-spec.

Node 1AS-spec.

Node 2AS-spec.Node …

AS-spec.Node n

JAX-RS ApplicationJAX-RS Application

JAX-RS Container

Java EE Application Server

Java Runtime

Operating System

Bare Metal

Clustered Application Server Nodese. g. GlassFish including Jersey

AS-specific Cluster

Page 4: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Cloud Computing: The Modern Approach

Kub.’tesCluster

ControllerKub.’tesNode 1

Kub.’tesNode 2

Kub.’tesNode …

Kub.’tesNode n

JAX-RS ApplicationJAX-RS Application

JAX-RS Container

Java Runtime

Docker

Kubernetes

Operating System

Bare Metal

Elastic creation and disposal of lightweight processes (e. g. Kubernetes with Docker)

Kubernetes Cluster

JAX-RS ApplicationJAX-RS Application

JAX-RS Container

Java Runtime

DockerContainer

DockerContainer

DockerContainer

DockerContainer

DockerContainer

DockerContainer

DockerContainer

Page 5: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Cloud Computing

JAX-RS + Netty + Docker + … = Cloud Native Java

Page 6: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

RESTful Devices

5 x 2,5 cm1 Core @ 1 GHz

256 MB RAM100 Mb/s LAN

$ 10

Try to start GlassFish...

Page 7: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Effects upon JAX-RS

JAX-RS ApplicationJAX-RS Application

JAX-RS Container

Java Runtime

Container Runtime

Container Orchestration

Operating System

Bare Metal

JAX-RS ApplicationJAX-RS Application

JAX-RS Container

Java Runtime

should start and stop instantlyshould consume less resources

must provide http servermust read external config

must accept application-provided resources

Page 8: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

R.I.PWORA

Java SE 11: JAXB → <dependency>

JAX-RS 2.2: javax.ws.rs → jakarta.ws.rs

JAX-RS 3.0: @Context → @Inject

WARNING!

Page 9: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Roadmap

JAX-RS 2.2 [Q1/2019]: Java SE Bootstrap API

(instant on/off, low resource, includes http server, reads external config incl. optional support for Microprofile Config API)

JAX-RS 2.3 [Q2/2019]: CDI 2.0 Support – Deprecate @Context

(accept application-provided resources)

https://github.com/eclipse-ee4j/jaxrs-api/wiki/Roadmap

DELAYED

DELAYED

Page 10: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Further Roadmap

JAX-RS 2.4 [TBD]: JPMS, Java 9

JAX-RS 3.0 [Q4/2019]: Replace @Context by @Inject

WARNING: You MUST use CDI now!

JAX-RS 3.1 [TBD]: Flow API, NIO

https://github.com/eclipse-ee4j/jaxrs-api/wiki/Roadmap

Page 11: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

JAX-RS 2.2: Java SE Bootstrap API

instant on/off – boot in one secondlow resource – run on limited devices

includes http server – choose by actual needreads external config – from app, controller or orchestrator

optional support for Microprofile Config API – cloud standards

Page 12: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Bleeding Edge Cookbook

Java SE 8, Maven 3.6.1

maven-shade-plugin: master

jax-rs 2.1: d5f18229e3d57ffb8960ca2b19b51893c946be0a

jersey: JAXRS_2_2

WARNING!

Page 13: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

JAX-RS 2.2: Java SE Bootstrap API

(live coding)

Page 14: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

LGTY?

Platform(1 CPU Core)

Jersey + NettyJAX-RS 2.2

MicroprofileJAX-RS 2.1

Java EE Server

JAX-RS 2.1Boot Time ~ 2.5s (~ 10s) (~ 60s)

JAR Size 6 MB 70 MB 142 MBJava -Xmx 6 MB (?) (?)Java -Xms 1 MB (?) (?)Docker -m < 32 MB (?) (?)

Page 15: JAX-RS 3.0 The Next Generation - Java Forum Stuttgart · JAX-RS Container Java Runtime Docker Container Docker Container Docker Container Docker Container Docker Container Docker

Questions?

Markus KARG (JUG Goldstadt)JAX-RS Committer

http://[email protected]

https://github.com/eclipse-ee4j/jaxrs-api


Recommended