java ee 8 adopt a jsr : json-p 1.1 & mvc 1.0

50
@ delabassee # JavaEE8 Adopt A JSR - Java EE 8 David Delabassee @delabassee Oracle

Upload: david-delabassee

Post on 28-Jul-2015

432 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

@delabassee#JavaEE8

Adopt A JSR - Java EE 8

David Delabassee @delabassee Oracle

Page 2: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Agenda

• Java  EE  8  • Adopt  JSON-­‐P  1.1  (JSR  374)  • Adopt  MVC  1.0  (JSR  371)

2

Page 3: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Java  EE  8  Themes

• HTML5  /  Web  Tier  Enhancements  • Ease  of  Development  • Infrastructure  for  running  in  the  Cloud

3

Page 4: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Java  EE  8  Themes

• HTML5  /  Web  Tier  Enhancements  • Ease  of  Development  • Infrastructure  for  running  in  the  Cloud

4

Page 5: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

HTML5  Support  /  Web  Tier  Enhancements

• JSON  Binding  • JSON  Processing  enhancements  • Server-­‐sent  Events  • Action-­‐based  MVC  • HTTP/2  support

5

Page 6: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

HTML5  Support  /  Web  Tier  Enhancements

• JSON  Binding  • JSON  Processing  enhancements  • Server-­‐sent  Events  • Action-­‐based  MVC  • HTTP/2  support

6

Page 7: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Java  EE  8  Themes

• HTML5  /  Web  Tier  Enhancements  • Ease  of  Development  • Infrastructure  for  running  in  the  Cloud

7

Page 8: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Ease  of  Development

• CDI  alignment  • JAX-­‐RS  injection  alignment  • Simplified  messaging  through  CDI-­‐based  “MDBs”  • WebSocket  scopes  • Pruning  of  EJB  2.x  client  view  and  IIOP  interoperability  • Security  interceptors  • …

8

Page 9: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Java  EE  8  Themes

• HTML5  /  Web  Tier  Enhancements  • Ease  of  Development  • Infrastructure  for  running  in  the  Cloud

9

Page 10: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Modernize  the  Infrastructure

• Java  EE  Management  2.0  – REST-­‐based  APIs  for  Management  and  Deployment  

• Java  EE  Security  1.0  – Authorization  – Password  Aliasing  – User  Management  – Role  Mapping  – Authentication  – REST  Authentication

For  On-­‐Premise  and  for  in  the  Cloud

10

Page 11: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Java  EE  8  JSRs

• MVC  1.0  (JSR  371)  *    • CDI  2.0  (JSR  365)  • JSON-­‐P  1.1  (JSR  374)    • JSF  2.3  (JSR  372)    • Java  EE  Security  1.0  (JSR  375)    • JSON  Binding  1.0  (JSR  367)  

• JMS  2.1  (JSR  368)    • Java  Servlet  4.0  (JSR  369)    • JAX-­‐RS  2.1  (JSR  370)  • Java  EE  Management  2.0  (JSR  373)  • Java  EE  8  Platform  (JSR  366)

So  far…..

11

Page 12: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

And  More  to  Follow…

• JCache    • Bean  Validation  • JPA  • Connector  Architecture  • WebSocket  • Interceptors  

• EJB  • JTA  • Batch  • Concurrency  Utilities    • JavaMail  • …

12

Page 13: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Roadmap• Tentative  Delivery  Schedule  –Q3  2014:  Expert  Group  formed  –Q3  2015:  Early  Draft  –Q4  2015:  Public  Review  –Q2  2016:  Proposed  Final  Draft  – H1  2017:  Final  Release  

• Contribute!

13

Page 14: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

How  to  Get  Involved

• Join  an  Expert  Group  – http://javaee-­‐spec.java.net  

• Adopt  a  JSR  – http://glassfish.org/adoptajsr  

• The  Aquarium  – http://blogs.oracle.com/theaquarium  

• Java  EE  Reference  Implementation  – http://glassfish.org

14

Page 15: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1

• Keep  JSON-­‐P  spec  up-­‐to-­‐date  • Track  new  standards  • Add  editing  operations  to  JsonObject  and  JsonArray  • Java  SE  8  • JSON  Big  Data

15

JSR  374

Page 16: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1

• String  syntax  for  referencing  a  JSON  value     "/0/phone/mobile"

JSON-­‐Pointer  –  IETF  RFC  6901

16

Page 17: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1JsonArray  contacts  =  …  JsonPointer  pointer  =  new  JsonPointer("/0/name");  JsonValue  value  =  pointer.getValue(contacts);  

[    {          "name":"Duke",          "gender":"M",          "phones":{                "home":"650-­‐123-­‐4567",                "mobile":"650-­‐234-­‐5678"}},      {          "name":"Jane",          "gender":"F",          "phones":{                "mobile":"707-­‐555-­‐9999"}}  ]  

   17

Page 18: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1

• String  syntax  for  referencing  a  JSON  value     “/0/name"  

• Methods  – getValue()  – JSON  operations:  add(),  replace(),  remove()

JSON-­‐Pointer  –  IETF  RFC  6901

18

 JsonPointer  pointer  =  new  JsonPointer("/0/name");    JsonArray  result  =  pointer.replace(contacts,  Json.createValue("Alex"));

Page 19: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1

• Patch  is  a  JSON  document  – Array  of  objects  /  operations  for  modifying  a  JSON  document  – add,  replace,  remove,  move,  copy,  test

JSON-­‐Patch  –  IETF  RFC  6902

19

Page 20: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1[    {      "op":"replace",      "path":"/0/phones/mobile",      "value":"650-­‐111-­‐2222"},    {      "op":"remove",      "path":"/1"}  ]

[    {          "name":"Duke",          "gender":"M",          "phones":{                "home":"650-­‐123-­‐4567",                "mobile":"650-­‐234-­‐5678"}},      {          "name":"Jane",          "gender":"F",          "phones":{                "mobile":"707-­‐555-­‐9999"}}  ]  

   

20

Page 21: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1[    {      "op":"replace",      "path":"/0/phones/mobile",      "value":"650-­‐111-­‐2222"},    {      "op":"remove",      "path":"/1"}  ]

[    {          "name":"Duke",          "gender":"M",          "phones":{                "home":"650-­‐123-­‐4567",                "mobile":"650-­‐111-­‐2222"}},      {          "name":"Jane",          "gender":"F",          "phones":{                "mobile":"707-­‐555-­‐9999"}}  ]  

   

21

Page 22: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1[    {      "op":"replace",      "path":"/0/phones/mobile",      "value":"650-­‐111-­‐2222"},    {      "op":"remove",      "path":"/1"}  ]

[    {          "name":"Duke",          "gender":"M",          "phones":{                "home":"650-­‐123-­‐4567",                "mobile":"650-­‐111-­‐2222"}}  ]  

   

22

Page 23: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

 JsonArray  target  =  …;    JsonArray  patch  =  …;        JsonPatch  jsonpatch  =  new  JsonPatch(patch);    JsonArray  result  =  jsonpatch.apply(target);

JSON-­‐P  1.1

23

 JsonPatchBuilder  builder  =  new  JsonPatchBuilder();    JsonArray  result  =  builder.add("/Joe/phones/office",  "1234-­‐567")                                                        .remove("/Amy/age")                                                        .apply(contacts);

Page 24: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1 {            "title":  "Hello!",            "phoneNumber":  "+01-­‐123-­‐456-­‐7890",            "author":  {                          "familyName":  null              },              "tags":  [  "example"  ]    }  

24

{          "title":  "Goodbye!",          "author":  {                  "givenName":  "John",                  "familyName":  "Doe"            },            "tags":  [  "example",  "sample"  ],            "content":  "This  will  be  unchanged"    }  

   

{            "title":  "Hello!",            "author":  {                          "givenName":  "John"              },              "tags":  [  "example"  ],              "content":  "This  will  be  unchanged",              "phoneNumber":  "+01-­‐123-­‐456-­‐7890"    }  

   

JSON-­‐Merge  Patch  –  IETF  RFC  7386

Page 25: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1

• Reverse  operation  – Given  two  objects  returns  the  patch  to  apply  (diff)  

JSON-­‐Patch  &  JSON-­‐Merge  Patch  Diff

25

JsonValue  output  =  JsonMergePatch.diff(original,  target);  JsonArray  diff  =  JsonPatch.diff(original,  target);

Page 26: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1JSON  Query  collecting  results  in  JsonArray

JsonArray  cars  =  ...;  JsonArray  audis  =  cars.getValuesAs(JsonObject.class).stream()                                                                                                            .filter(x-­‐>"Audi".equals(x.getString("brand")))                                                                                                            .map(x-­‐>(x.getString("serial"))                                                                                                            .collect(JsonCollectors.toJsonArray());

26

Page 27: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1Getting  Started

27

• JSR  374  - https://json-­‐processing-­‐spec.java.net  

• JIRA  - https://java.net/jira/browse/JSON_PROCESSING_SPEC  

• Repos  - git://java.net/json-­‐processing-­‐spec~git  - git://java.net/jsonp~git

Page 28: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

JSON-­‐P  1.1Getting  Started

28

• Build  the  standalone  RI  - git://java.net/jsonp~git  

• Check  JSR374  tests  and  the  Javadocs  - https://json-­‐processing-­‐spec.java.net/nonav/snapshots/1.1/javadocs/  

• Follow  the  EG  users  list  - JSON  Big  Data

Page 29: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Model-­‐View-­‐Controller  (MVC  1.0)  Specification

• “Action-­‐based”  MVC  1.0  JSR  • Why?  – UI  landscape  is  not  one  size  fits  all    – Java  EE  8  Community  Survey  – Talking  to  our  customers,  etc.  

• EG  –Oracle,  RedHat,  innoQ,  IBM,  Caelum,  LifeRay,  and  6  individuals  members

JSR  371

29

Page 30: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

MVC  1.0

• Model  – CDI,  Bean  Validation,  JPA  

• View  – Facelets,  JSP,  SPI?  

• Controller  – Invent  new  technology  Vs.  Leverage  existing  technologies?

30

Glues  together  key  Java  EE  technologies

Page 31: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Controller• Combine  data  models  and  views  to  produce  web  application  pages

@Path("hello") public class HelloController {

@GET@Controllerpublic String hello() {

return "hello.xhtml";}

}

31

Page 32: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Controller• Class/method  decorated  with  @Controller

@Path(“hello") @Controller public class HelloController {

@GET@View(“hello.ftl")public void hello() { }

}

32

Page 33: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Controller

@Path(“hello") @Controller public class HelloController {

@GETpublic Viewable hello() {

return new Viewable("hello.jsp"); } }

33

Page 34: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Controller

… @GET @Controller public Response getById(@PathParam("id") String id) { if (id.length() == 0) { return Response.status(Response.Status.BAD_REQUEST) .entity(“error.xhtml") .build(); } }

34

Page 35: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Model• “Refers  to  the  data”  • javax.mvc.Models  interface  • CDI  @Named  bean  (recommended)

35

Page 36: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Model @Named(“greeting”) @RequestScoped public class Greeting {

private String message;

public String getMessage() { return message;

} public void setMessage(String message) { this.message = message; } }

36

Page 37: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Model

@Path(“hello”) public class HelloController {

@Inject private Models models;

@GET @Controller public String hello() { models.put(“greeting”, new Greeting(“Hi JPrime”)); return “hello.ftl”; } }

37

Page 38: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

View• Define  the  structure  of  the  output  • Can  refer  to  model(s)  • Rendered  by  a  View  Engine  – JSP  – Facelets  

• Not  accessible  as  static  resources  – /WEB-­‐INF/views/  

38

Page 39: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

View

39

<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC …> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Facelet!</title> </h:head> <h:body> <p>${greeting.message} to all</p> </h:body> </html>

Page 40: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

View

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %> <html> <head> <title>Hello</title> </head> <body> <p>${greeting.message}</p> </body> </html>

40

Page 41: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

View  Engine• CDI  based  extension  mechanism  • javax.mvc.engine.ViewEngine interface  

boolean supports(String view);

void processView(ViewEngineContext context)

throws ViewEngineException;

• Ozark  – JSP  &  Facelets  – FreeMarker,  Velocity,  Thymeleaf,  Mustache  &  Handlebars

41

Page 42: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. @delabassee#JavaEE8

JSR  371• View  Engine  – JSP  &  Facelets  – FreeMarker,  Velocity,  Thymeleaf,  Mustache,  Handlebars  &  Pebble  

• Validation  • Exception  Mapping  Providers  • Bootstrap  via  javax.ws.rs.core.Application  • @Produces  • CDI  Events

42

                   Early  Draft  Review

Page 43: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

MVC  1.0

• JSR  371  - http://mvc-­‐spec.java.net/  

- https://jcp.org/en/jsr/detail?id=371  - https://java.net/jira/browse/MVC_SPEC  

- https://java.net/projects/mvc-­‐spec/lists/users/archive  

• Ozark  - https://ozark.java.net  - git://java.net/ozark~sources  +  https://github.com/spericas/ozark

Getting  Started

43

Page 44: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

MVC  1.0

• Docker  script  - https://ozark.java.net/download.html    

• Samples  - http://<container-­‐ip>:8080/samples  

• GF  console  (admin/ozark)  - http://<container-­‐ip>:4848

Getting  Started

44

Page 45: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

MVC  1.0

• GlassFish  4.1  nightly  - http://dlc-­‐cdn.sun.com/glassfish/4.1/nightly/glassfish-­‐4.1-­‐b14-­‐06_12_2015.zip  

• Bundle  Ozark  with  your  App  • Maven  Central  

<groupId>javax.mvc</groupId>  <artifactId>javax.mvc-­‐api</artifactId>  <version>1.0-­‐edr1</version>

Getting  Started

45

Page 46: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.

MVC  1.0

• Full  blown  samples  • Additional  templating  engine  • Logging,  monitoring,  i.e.  improving  event  mechanism  in  place  • Internationalization/localization  • …

Getting  Started

46

Page 47: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   @delabassee#JavaEE8

Devoxx  UK

• JCP,  Adopt-­‐a-­‐JSR  &  You  -­‐  Thursday  at  12:50  (Room  BC)  • Java  EE  8,  a  snapshot  overview  -­‐  Thursday  at  11:50  (Auditorium)  • Java  EE  Game  Changers  -­‐  Friday  at  10:00  (Room  A)  • HTTP/2  comes  to  Java  -­‐  Friday  at  11:10  12:00  (Auditorium)  • CDI  2.0:  what  is  in  the  work?  -­‐  Friday  at  15:00  (Auditorium)  • Finally,  Security  API  JSR  375  -­‐  Friday  at  16:20  (Room  DEF)

47

Page 48: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.  

Thanks!

48

Page 49: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Safe  Harbor  Statement

The  precding  is  intended  to  outline  our  general  product  direction.  It  is  intended  for  information  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a  commitment  to  deliver  any  material,  code,  or  functionality,  and  should  not  be  relied  upon  in  making  purchasing  decisions.  The  development,  release,  and  timing  of  any  features  or  functionality  described  for  Oracle’s  products  remains  at  the  sole  discretion  of  Oracle.

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.  

Page 50: Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0

Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.