SlideShare a Scribd company logo
MVC	
  1.0

JavaLand	
  March	
  2015
David	
  Delabassee	
  
@delabassee	
  
Oracle
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  
1
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  g	
  eneral	
  product	
  direction.	
  It	
  is	
  intended	
  for	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
i	
  nformation	
  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.
Safe	
  Harbor	
  Statement
2
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Lorem	
  ipsum	
  dolor	
  sit	
  amet,	
  MVC,	
  consectetur	
  adipiscing	
  elit,	
  sed	
  do	
  eiusmod	
  tempor	
  
incididunt	
  ut	
  labore	
  et	
  dolore	
  magna	
  aliqua,	
  Action-­‐Based	
  MVC.	
  Ut	
  enim	
  ad	
  minim	
  
veniam,	
  quis	
  nostrud	
  exercitation	
  ullamco	
  laboris	
  nisi	
  ut	
  aliquip	
  ex	
  ea	
  commodo	
  
consequat.	
  JSR	
  371	
  duis	
  aute	
  irure	
  dolor	
  in	
  reprehenderit	
  in	
  voluptate	
  velit	
  esse	
  cillum	
  
dolore	
  eu	
  fugiat	
  nulla	
  pariatur.	
  Ozark	
  excepteur	
  sint	
  occaecat	
  cupidatat	
  non	
  proident.
My	
  Own	
  Statement
3
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Agenda
Context	
  
MVC	
  1.0	
  JSR	
  
Conclusion
1
2
3
4
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Agenda
Context	
  
MVC	
  1.0	
  JSR	
  
Conclusion
1
2
3
5
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Java	
  EE	
  7
ENTERPRISE
EDITION
• Batch
• Concurrency
• Simplified JMS
• More annotated POJOs
• Less boilerplate code
• Cohesive integrated platform
DEVELOPER
PRODUCTIVITY
• WebSockets
• JSON
• Servlet 3.1 NIO
• REST
MEETING 

ENTERPRISE
DEMANDS
Java EE 7
6
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Java	
  EE	
  8
Cloud
Mobile
HTTP/2
SECURITY
Reactive	
  Programming
User	
  Experience
7
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Java	
  EE	
  8	
  Community	
  Survey
Should	
  Java	
  EE	
  provide	
  support	
  for	
  MVC	
  alongside	
  JSF?	
  	
  
Is	
  there	
  any	
  one	
  de-­‐facto	
  standard	
  technology	
  in	
  this	
  space	
  to	
  which	
  we	
  
should	
  look	
  for	
  inspiration?
8
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved. 9
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Community-­‐Prioritized	
  Features
10
http://glassfish.org/survey
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
What	
  is	
  MVC?
• Pattern	
  used	
  to	
  implement	
  a	
  User	
  Interface	
  
• Consists	
  of	
  3	
  major	
  components	
  
– Model	
  
– View	
  
– Controller	
  
• Each	
  of	
  the	
  components	
  has	
  a	
  distinct	
  responsibility
11
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
The	
  M(odel)
• Interim	
  state	
  you	
  want	
  to	
  keep	
  when	
  you	
  are	
  building	
  an	
  UI	
  
• Examples	
  
– Who	
  is	
  logged	
  in	
  
– What	
  are	
  they	
  trying	
  to	
  buy	
  
– What	
  page	
  are	
  they	
  on	
  in	
  a	
  multi	
  page	
  flow
12
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
The	
  V(iew)
• What	
  your	
  user	
  interacts	
  with	
  	
  
– In	
  a	
  web	
  application	
  that	
  would	
  be	
  the	
  web	
  page	
  or	
  web	
  pages	
  
• your	
  JSP	
  page	
  
• your	
  CSS	
  styles	
  
• your	
  JavaScript	
  
– In	
  a	
  thick	
  client	
  scenario	
  it	
  would	
  be	
  the	
  entire	
  UI	
  
– In	
  an	
  embedded	
  scenario	
  it	
  could	
  be	
  the	
  touch	
  screen,	
  hardware	
  buttons	
  etc.
13
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
The	
  C(ontroller)
• Work	
  horse	
  of	
  the	
  pattern:	
  
– Executes	
  the	
  business	
  logic	
  
• Run	
  a	
  credit	
  card	
  transaction	
  
– Updates	
  the	
  model	
  
• Mark	
  the	
  transaction	
  as	
  successful	
  in	
  the	
  model	
  object	
  
– Ask	
  the	
  view	
  to	
  render	
  itself	
  
• Shows	
  the	
  transaction	
  was	
  successful
14
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Different	
  styles	
  of	
  MVC
• Component-­‐based	
  MVC	
  
• Action-­‐based	
  MVC	
  
• Others
15
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Component-­‐based	
  MVC
• A	
  specific	
  style	
  of	
  MVC	
  made	
  popular	
  by	
  component	
  frameworks	
  
• Controller	
  provided	
  by	
  the	
  framework	
  
• Examples	
  
– JavaServer	
  Faces	
  
– Wicket	
  	
  
– Tapestry	
  
– Seam	
  (discontinued)	
  
– Apache	
  Click	
  (retired)
16
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Action-­‐based	
  MVC
• Controller(s)	
  defined	
  by	
  the	
  application	
  
• Examples	
  
– Struts	
  1	
  (end	
  of	
  life),	
  Struts	
  2	
  
– Spring	
  MVC	
  
• No	
  standard	
  Java	
  EE	
  implementation	
  
– Good	
  news	
  we	
  are	
  creating	
  one!	
  
– Targeted	
  for	
  inclusion	
  in	
  Java	
  EE	
  8
17
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Action-­‐based	
  MVC	
  
– Manual	
  request	
  parameter	
  processing	
  
– No	
  view	
  kept	
  around	
  
– Request	
  centric	
  
– Developer	
  responsible	
  for	
  all	
  HTML	
  /	
  JS	
  
– Limited	
  support	
  for	
  re-­‐usable	
  behavior	
  
– No	
  automatic	
  input	
  conversion	
  
– No	
  automatic	
  input	
  validation	
  
Component-­‐based	
  MVC	
  
– Automatic	
  request	
  parameter	
  processing	
  
– View	
  kept	
  around	
  
– Page	
  centric	
  	
  
– Components	
  handle	
  HTML	
  /	
  JS	
  
– Component	
  implement	
  re-­‐usable	
  behavior	
  
– Automatic	
  input	
  conversion	
  
– Automatic	
  input	
  validation	
  
Compare	
  and	
  contrast
18
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Agenda
Context	
  
MVC	
  1.0	
  JSR	
  
Conclusion
1
2
3
19
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	
  formed	
  
– Oracle,	
  RedHat,	
  innoQ,	
  IBM,	
  Caelum,	
  LifeRay,	
  and	
  6	
  individuals	
  members	
  
• You	
  can	
  contribute	
  too!
JSR	
  371
20
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Model-­‐View-­‐Controller	
  (MVC	
  1.0)	
  Specification
• Ozark	
  
– https://ozark.java.net	
  
• Open	
  Source	
  
– git://java.net/ozark~sources	
  
– https://github.com/spericas/ozark
Reference	
  Implementation
21
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  
MVC	
  1.0
• Action-­‐based	
  MVC	
  
• Glues	
  together	
  key	
  Java	
  EE	
  technologies	
  
– Model	
  :	
  CDI,	
  Bean	
  Validation,	
  JPA	
  
– 	
  View	
  :	
  Facelets,	
  JSP,	
  more?	
  
– 	
  Controller	
  :	
  Invent	
  new	
  technology	
  Vs.	
  Leverage	
  existing	
  technologies
22
Principles
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
@Controller
public String hello() {
return "hello.jsp";
}
}
23
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.jsp")
public void hello() {
}
}
24
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Controller
@Path(“hello")
@Controller
public class HelloController {
@GET
public Viewable hello() {
return new Viewable("hello.jsp");
}
}
25
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.jsp")
.build();
}
}
26
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Model
• “Refers	
  to	
  the	
  data”	
  
• 2	
  types	
  
– javax.mvc.Models	
  interface	
  
– CDI	
  @Named	
  bean	
  (recommended)
27
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;
}
}
28
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.set(“greeting”, new Greeting(“Hi JavaLand”));
return “hello.jsp”;
}
}
29
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/	
  
30
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>Hello ${user.name}</p>
</body>
</html>
31
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
32
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Miscellaneous
• Bootstrap	
  
– javax.ws.rs.core.Application
• Validation	
  
• Exception	
  Mapping	
  Providers	
  
• @Produces	
  
• CDI	
  Events	
  
• Tooling
33
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Demos?
34
Lorem	
  ipsum	
  dolor	
  sit	
  amet,	
  Intial	
  consectetur	
  adipiscing	
  elit,	
  sed	
  do	
  eiusmod	
  tempor	
  
incididunt	
  ut	
  labore	
  et	
  dolore	
  magna	
  aliqua,	
  Ozark	
  Ut	
  enim	
  ad	
  minim	
  veniam,	
  quis	
  
nostrud	
  exercitation	
  ullamco	
  laboris	
  nisi	
  ut	
  aliquip	
  ex	
  ea	
  commodo	
  consequat.	
  Velit	
  duis	
  
aute	
  irure	
  dolor	
  in	
  reprehenderit	
  in	
  voluptate	
  velit	
  esse	
  cillum	
  dolore	
  eu	
  fugiat	
  nulla	
  
pariatur.	
  milestone	
  build	
  excepteur	
  sint	
  occaecat	
  cupidatat	
  non	
  proident.
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Agenda
Context	
  
MVC	
  1.0	
  JSR	
  
Conclusion
1
2
3
35
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Conclusion
• Doing	
  MVC	
  now	
  is	
  not	
  a	
  bad	
  idea,	
  because	
  we	
  are:	
  
– Leveraging	
  CDI,	
  JAX-­‐RS,	
  Facelets,	
  BV	
  
– More?	
  Servlet	
  4.0’s	
  ServerPush	
  
– Delivering	
  an	
  easy	
  migration	
  path	
  if	
  you	
  are	
  using	
  JSPs	
  
• Offers	
  more	
  choices	
  
• New	
  annotations	
  
– @Controller	
  
– @View
36
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Java	
  EE	
  8
• Java	
  EE	
  8	
  Platform	
  (JSR	
  366)	
  
• CDI	
  2.0	
  (JSR	
  365)	
  
• JSON	
  Binding	
  1.0	
  (JSR	
  367)	
  
• JMS	
  2.1	
  (JSR	
  368)	
  	
  
• Java	
  Servlet	
  4.0	
  (JSR	
  369)	
  	
  
• JAX-­‐RS	
  2.1	
  (JSR	
  370)	
  
• MVC	
  1.0	
  (JSR	
  371)	
  	
  
• JSF	
  2.3	
  (JSR	
  372)	
  
• Java	
  EE	
  Management	
  2.0	
  (JSR	
  373)	
  
• JSON-­‐P	
  1.1	
  (JSR	
  374)	
  
• Java	
  EE	
  Security	
  1.0	
  (JSR	
  375)
So	
  far…..
37
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Roadmap
• Q3	
  2014	
  Expert	
  Group	
  formed	
  
• Q1	
  2015	
  Early	
  Draft	
  
• Q3	
  2015	
  Public	
  Review	
  
• Q1	
  2016	
  Proposed	
  Final	
  Draft	
  
• Q3	
  2016	
  Final	
  Release
38
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Contribute!
• Join	
  the	
  JCP	
  	
  
• “Adopt-­‐A-­‐JSR”	
  
– http://glassfish.java.net/adoptajsr	
  
• Get	
  involved	
  
– Join	
  MVC	
  users	
  mailing	
  list	
  
– Tweet,	
  blog,	
  socialize	
  to	
  raise	
  awareness	
  about	
  MVC	
  1.0	
  
– Test	
  MVC	
  SNAPSHOT	
  and	
  milestone	
  builds	
  (https://ozark.java.net)	
  
– Fill	
  issues!
39
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Links
• MVC	
  specification	
  
– http://mvc-­‐spec.java.net,	
  users@mvc-­‐spec.java.net	
  
• MVC	
  implementation	
  	
  
– http://ozark.java.net,	
  users@ozark.java.net	
  
• Spec	
  leads	
  
– Santiago	
  (@spericas)	
  
– Manfred	
  (@mnriem,	
  http://mvc.zeef.com/manfred.riem	
  )	
  
• The	
  Aquarium	
  Blog	
  
– https://blogs.oracle.com/theaquarium/
40
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.
Danke!
41
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved. 42

More Related Content

What's hot

Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Oracle
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
Edward Burns
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
Pavel Bucek
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
Pavel Bucek
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Reza Rahman
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Edward Burns
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
Josh Juneau
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
Shekhar Gulati
 

What's hot (17)

Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 

Viewers also liked

Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8
Alex Soto
 
HTML5 Media Elements
HTML5 Media ElementsHTML5 Media Elements
JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8
Helder da Rocha
 
New MVC 1.0 JavaEE 8 API
New MVC 1.0 JavaEE 8 APINew MVC 1.0 JavaEE 8 API
New MVC 1.0 JavaEE 8 API
Trayan Iliev
 
Gráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVGGráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVG
Helder da Rocha
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
 
Java EE 8 - February 2017 update
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
 
Java EE 8 Recipes
Java EE 8 RecipesJava EE 8 Recipes
Java EE 8 Recipes
Josh Juneau
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Josh Juneau
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
Rafael França
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
 

Viewers also liked (12)

Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8
 
HTML5 Media Elements
HTML5 Media ElementsHTML5 Media Elements
HTML5 Media Elements
 
JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8
 
New MVC 1.0 JavaEE 8 API
New MVC 1.0 JavaEE 8 APINew MVC 1.0 JavaEE 8 API
New MVC 1.0 JavaEE 8 API
 
Gráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVGGráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVG
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
 
Java EE 8 - February 2017 update
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 update
 
Java EE 8 Recipes
Java EE 8 RecipesJava EE 8 Recipes
Java EE 8 Recipes
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 

Similar to MVC 1.0 / JSR 371

2015 UJUG, MVC 1.0 portion
2015 UJUG, MVC 1.0 portion2015 UJUG, MVC 1.0 portion
2015 UJUG, MVC 1.0 portion
mnriem
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
Steven Davelaar
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges
 
Mastering DevOps with Oracle
Mastering DevOps with Oracle Mastering DevOps with Oracle
Mastering DevOps with Oracle
jeckels
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
Takashi Ito
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual Environment
eG Innovations
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
Wolfgang Weigend
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
Geertjan Wielenga
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
Takashi Ito
 
Java fx
Java fxJava fx
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0
mnriem
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
Apigee | Google Cloud
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
Toon Koppelaars
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
Edward Burns
 
Migrating Oracle Forms Using Oracle Application Express
Migrating Oracle Forms Using Oracle Application ExpressMigrating Oracle Forms Using Oracle Application Express
Migrating Oracle Forms Using Oracle Application Express
DavidPeake15
 
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Bart Jonkers
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
Mario Beck
 
Rapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linuxRapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linux
OTN Systems Hub
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Mark Matthews
 

Similar to MVC 1.0 / JSR 371 (20)

2015 UJUG, MVC 1.0 portion
2015 UJUG, MVC 1.0 portion2015 UJUG, MVC 1.0 portion
2015 UJUG, MVC 1.0 portion
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Mastering DevOps with Oracle
Mastering DevOps with Oracle Mastering DevOps with Oracle
Mastering DevOps with Oracle
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual Environment
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
 
Java fx
Java fxJava fx
Java fx
 
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
 
Migrating Oracle Forms Using Oracle Application Express
Migrating Oracle Forms Using Oracle Application ExpressMigrating Oracle Forms Using Oracle Application Express
Migrating Oracle Forms Using Oracle Application Express
 
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
Rapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linuxRapid private cloud with oracle vm and oracle openstack for oracle linux
Rapid private cloud with oracle vm and oracle openstack for oracle linux
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance Improvement
 

More from David Delabassee

JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
David Delabassee
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
REST in an Async World
REST in an Async WorldREST in an Async World
REST in an Async World
David Delabassee
 
JAX-RS 2.1 Reloaded
JAX-RS 2.1 ReloadedJAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
David Delabassee
 
Java EE Next
Java EE NextJava EE Next
Java EE Next
David Delabassee
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
David Delabassee
 
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 

More from David Delabassee (20)

JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
 
REST in an Async World
REST in an Async WorldREST in an Async World
REST in an Async World
 
JAX-RS 2.1 Reloaded
JAX-RS 2.1 ReloadedJAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
 
Java EE Next
Java EE NextJava EE Next
Java EE Next
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
 
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 

Recently uploaded

zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 

Recently uploaded (20)

zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 

MVC 1.0 / JSR 371

  • 1. MVC  1.0
 JavaLand  March  2015 David  Delabassee   @delabassee   Oracle Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.   1
  • 2. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. The  following  is  intended  to  outline  our  g  eneral  product  direction.  It  is  intended  for                         i  nformation  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. Safe  Harbor  Statement 2
  • 3. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Lorem  ipsum  dolor  sit  amet,  MVC,  consectetur  adipiscing  elit,  sed  do  eiusmod  tempor   incididunt  ut  labore  et  dolore  magna  aliqua,  Action-­‐Based  MVC.  Ut  enim  ad  minim   veniam,  quis  nostrud  exercitation  ullamco  laboris  nisi  ut  aliquip  ex  ea  commodo   consequat.  JSR  371  duis  aute  irure  dolor  in  reprehenderit  in  voluptate  velit  esse  cillum   dolore  eu  fugiat  nulla  pariatur.  Ozark  excepteur  sint  occaecat  cupidatat  non  proident. My  Own  Statement 3
  • 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Agenda Context   MVC  1.0  JSR   Conclusion 1 2 3 4
  • 5. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Agenda Context   MVC  1.0  JSR   Conclusion 1 2 3 5
  • 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Java  EE  7 ENTERPRISE EDITION • Batch • Concurrency • Simplified JMS • More annotated POJOs • Less boilerplate code • Cohesive integrated platform DEVELOPER PRODUCTIVITY • WebSockets • JSON • Servlet 3.1 NIO • REST MEETING 
 ENTERPRISE DEMANDS Java EE 7 6
  • 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Java  EE  8 Cloud Mobile HTTP/2 SECURITY Reactive  Programming User  Experience 7
  • 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Java  EE  8  Community  Survey Should  Java  EE  provide  support  for  MVC  alongside  JSF?     Is  there  any  one  de-­‐facto  standard  technology  in  this  space  to  which  we   should  look  for  inspiration? 8
  • 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. 9
  • 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Community-­‐Prioritized  Features 10 http://glassfish.org/survey
  • 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. What  is  MVC? • Pattern  used  to  implement  a  User  Interface   • Consists  of  3  major  components   – Model   – View   – Controller   • Each  of  the  components  has  a  distinct  responsibility 11
  • 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. The  M(odel) • Interim  state  you  want  to  keep  when  you  are  building  an  UI   • Examples   – Who  is  logged  in   – What  are  they  trying  to  buy   – What  page  are  they  on  in  a  multi  page  flow 12
  • 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. The  V(iew) • What  your  user  interacts  with     – In  a  web  application  that  would  be  the  web  page  or  web  pages   • your  JSP  page   • your  CSS  styles   • your  JavaScript   – In  a  thick  client  scenario  it  would  be  the  entire  UI   – In  an  embedded  scenario  it  could  be  the  touch  screen,  hardware  buttons  etc. 13
  • 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. The  C(ontroller) • Work  horse  of  the  pattern:   – Executes  the  business  logic   • Run  a  credit  card  transaction   – Updates  the  model   • Mark  the  transaction  as  successful  in  the  model  object   – Ask  the  view  to  render  itself   • Shows  the  transaction  was  successful 14
  • 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Different  styles  of  MVC • Component-­‐based  MVC   • Action-­‐based  MVC   • Others 15
  • 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Component-­‐based  MVC • A  specific  style  of  MVC  made  popular  by  component  frameworks   • Controller  provided  by  the  framework   • Examples   – JavaServer  Faces   – Wicket     – Tapestry   – Seam  (discontinued)   – Apache  Click  (retired) 16
  • 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Action-­‐based  MVC • Controller(s)  defined  by  the  application   • Examples   – Struts  1  (end  of  life),  Struts  2   – Spring  MVC   • No  standard  Java  EE  implementation   – Good  news  we  are  creating  one!   – Targeted  for  inclusion  in  Java  EE  8 17
  • 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Action-­‐based  MVC   – Manual  request  parameter  processing   – No  view  kept  around   – Request  centric   – Developer  responsible  for  all  HTML  /  JS   – Limited  support  for  re-­‐usable  behavior   – No  automatic  input  conversion   – No  automatic  input  validation   Component-­‐based  MVC   – Automatic  request  parameter  processing   – View  kept  around   – Page  centric     – Components  handle  HTML  /  JS   – Component  implement  re-­‐usable  behavior   – Automatic  input  conversion   – Automatic  input  validation   Compare  and  contrast 18
  • 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Agenda Context   MVC  1.0  JSR   Conclusion 1 2 3 19
  • 20. 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  formed   – Oracle,  RedHat,  innoQ,  IBM,  Caelum,  LifeRay,  and  6  individuals  members   • You  can  contribute  too! JSR  371 20
  • 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Model-­‐View-­‐Controller  (MVC  1.0)  Specification • Ozark   – https://ozark.java.net   • Open  Source   – git://java.net/ozark~sources   – https://github.com/spericas/ozark Reference  Implementation 21
  • 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.   MVC  1.0 • Action-­‐based  MVC   • Glues  together  key  Java  EE  technologies   – Model  :  CDI,  Bean  Validation,  JPA   –  View  :  Facelets,  JSP,  more?   –  Controller  :  Invent  new  technology  Vs.  Leverage  existing  technologies 22 Principles
  • 23. 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 @Controller public String hello() { return "hello.jsp"; } } 23
  • 24. 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.jsp") public void hello() { } } 24
  • 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Controller @Path(“hello") @Controller public class HelloController { @GET public Viewable hello() { return new Viewable("hello.jsp"); } } 25
  • 26. 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.jsp") .build(); } } 26
  • 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Model • “Refers  to  the  data”   • 2  types   – javax.mvc.Models  interface   – CDI  @Named  bean  (recommended) 27
  • 28. 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; } } 28
  • 29. 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.set(“greeting”, new Greeting(“Hi JavaLand”)); return “hello.jsp”; } } 29
  • 30. 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/   30
  • 31. 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>Hello ${user.name}</p> </body> </html> 31
  • 32. 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 32
  • 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Miscellaneous • Bootstrap   – javax.ws.rs.core.Application • Validation   • Exception  Mapping  Providers   • @Produces   • CDI  Events   • Tooling 33
  • 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Demos? 34 Lorem  ipsum  dolor  sit  amet,  Intial  consectetur  adipiscing  elit,  sed  do  eiusmod  tempor   incididunt  ut  labore  et  dolore  magna  aliqua,  Ozark  Ut  enim  ad  minim  veniam,  quis   nostrud  exercitation  ullamco  laboris  nisi  ut  aliquip  ex  ea  commodo  consequat.  Velit  duis   aute  irure  dolor  in  reprehenderit  in  voluptate  velit  esse  cillum  dolore  eu  fugiat  nulla   pariatur.  milestone  build  excepteur  sint  occaecat  cupidatat  non  proident.
  • 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Agenda Context   MVC  1.0  JSR   Conclusion 1 2 3 35
  • 36. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Conclusion • Doing  MVC  now  is  not  a  bad  idea,  because  we  are:   – Leveraging  CDI,  JAX-­‐RS,  Facelets,  BV   – More?  Servlet  4.0’s  ServerPush   – Delivering  an  easy  migration  path  if  you  are  using  JSPs   • Offers  more  choices   • New  annotations   – @Controller   – @View 36
  • 37. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Java  EE  8 • Java  EE  8  Platform  (JSR  366)   • CDI  2.0  (JSR  365)   • JSON  Binding  1.0  (JSR  367)   • JMS  2.1  (JSR  368)     • Java  Servlet  4.0  (JSR  369)     • JAX-­‐RS  2.1  (JSR  370)   • MVC  1.0  (JSR  371)     • JSF  2.3  (JSR  372)   • Java  EE  Management  2.0  (JSR  373)   • JSON-­‐P  1.1  (JSR  374)   • Java  EE  Security  1.0  (JSR  375) So  far….. 37
  • 38. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Roadmap • Q3  2014  Expert  Group  formed   • Q1  2015  Early  Draft   • Q3  2015  Public  Review   • Q1  2016  Proposed  Final  Draft   • Q3  2016  Final  Release 38
  • 39. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Contribute! • Join  the  JCP     • “Adopt-­‐A-­‐JSR”   – http://glassfish.java.net/adoptajsr   • Get  involved   – Join  MVC  users  mailing  list   – Tweet,  blog,  socialize  to  raise  awareness  about  MVC  1.0   – Test  MVC  SNAPSHOT  and  milestone  builds  (https://ozark.java.net)   – Fill  issues! 39
  • 40. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Links • MVC  specification   – http://mvc-­‐spec.java.net,  users@mvc-­‐spec.java.net   • MVC  implementation     – http://ozark.java.net,  users@ozark.java.net   • Spec  leads   – Santiago  (@spericas)   – Manfred  (@mnriem,  http://mvc.zeef.com/manfred.riem  )   • The  Aquarium  Blog   – https://blogs.oracle.com/theaquarium/ 40
  • 41. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. Danke! 41
  • 42. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved. 42