Enterprise Java Development - What’s new in Java EE

A presentation at Muffin Conference Skopje in June 2017 in Skopje, North Macedonia by Petyo Dimitrov

Slide 1

Slide 1

Enterprise Java Development What’s new in Java EE Petyo Dimitrov

Slide 2

Slide 2

AGENDA Past & Present Standard Enterprise architecture & specs Upcoming features in Java EE 8 Future 2 What’s new in Java EE

Slide 3

Slide 3

PAST & PRESENT 3 What’s new in Java EE

Slide 4

Slide 4

ROADMAP Final Draft June 2017? 1998 1999 2001 2003 2006 4 What’s new in Java EE 2009 2013 Final Release July 2017?

Slide 5

Slide 5

STANDARD ENTERPRISE ARCHITECTURE 5 What’s new in Java EE

Slide 6

Slide 6

MULTI-TIERED APPLICATION presentation / web business logic persistence / integration 6 What’s new in Java EE

Slide 7

Slide 7

POPULAR SPECIFICATIONS ZeroTurnaround’s survey of ~1700 developers 7 What’s new in Java EE

Slide 8

Slide 8

UPCOMING FEATURES IN JAVA EE 8 I felt a great disturbance in the Force … … as if several JSRs spec leads suddenly cried out in terror and were suddenly silenced … 8 What’s new in Java EE

Slide 9

Slide 9

JSON BINDING 1.0 Provide mapping between JSON data and Java objects (JAX-B for JSON) Standardize current technologies like Jackson & Gson Handle JSON media type for JAX-RS Fill an old gap in the Java EE specs 9 What’s new in Java EE

Slide 10

Slide 10

JSON BINDING 1.0 – SAMPLE Hero hero = new Hero(); hero.setName(“Jason”); hero.setAge(25); hero.setAffiliation(“Argonauts”); Jsonb jsonb = JsonbBuilder.create(); jsonb.toJson(hero) { “name”: “Jason”, “age”: 25, “affiliation”: “Argonauts” } 10 What’s new in Java EE

Slide 11

Slide 11

JSON PROCESSING 1.1 Integrate emerging IETF standards like: JSON Pointer, JSON Patch & JSON Merge Patch Support Java 8 streaming API Allow parsing big JSON 11 What’s new in Java EE

Slide 12

Slide 12

JSON PROCESSING 1.1 – SAMPLE [ [ { { “op”: “replace”, “path”: “/0/age”, “value”: 28 “name”: “Jason”, “age”: 25, “affiliation”: “Argonauts” } ] } ] new JsonPatch(patch).apply(heroes); new JsonPatchBuilder().replace(“/0/age”, 28).apply(heroes); 12 What’s new in Java EE

Slide 13

Slide 13

JAX-RS 2.1 Asynchronous clients with reactive programming Server-sent events Non-blocking I/O Circuit breaker API? 13 What’s new in Java EE

Slide 14

Slide 14

JAX-RS 2.1 – SAMPLE CompletionStage<Response> csResponse = ClientBuilder.newClient() .target(“https://muffin.musala.com/”) .request().rx().get(); 14 What’s new in Java EE

Slide 15

Slide 15

THE DARK SIDE? Java Message Service 2.1 (joined) Java EE Management API 2.0 (joined) Configuration Health Check Security: OAuth & OpenID 15 What’s new in Java EE

Slide 16

Slide 16

SUMMARY 16 What’s new in Java EE

Slide 17

Slide 17

FUTURE Microservices – need for uberjars, metrics, discovery, circuit breakers, etc. (70%)  MicroProfile & JAX-RS Reactive Programming – wait & see + add hoc improvements (70%)  JAX-RS NoSQL – interested in standardization (60%) Innovation vs Standardization– mildly conservative and cautious (56%) Java EE servey report https://drive.google.com/file/d/0B5v0dmBHAiKTRW5FT0twN1JIRTA/view 17 What’s new in Java EE

Slide 18

Slide 18

QUESTIONS? 18 What’sleads newtoinQuestions. Java EE Questions lead to Answers. Answers lead to Knowledge. Confidence

Slide 19

Slide 19

THANKFUL I AM 19 What’s new in Java EE

Slide 20

Slide 20

PANEL – ENTERPRISE JAVA DEVELOPMENT 20 new in Java EE JoinWhat’s us with a question