SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Java EE 8 - Work in Progress
David Delabassee
@delabassee
Oracle Corporation
JJUG CCC 2015 Fall
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The following 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.
2
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Program Agenda
Quick recap of goals and themes of Java EE 8
What we have accomplished
How you can get involved
1
2
3
3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Industry Trends
Cloud
4
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Java EE 8 – Driven by Community Feedback
http://glassfish.org/survey
5
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Java EE 8 Themes
• HTML5 / Web Tier Enhancements
• Ease of Development
• Infrastructure for running in the Cloud
6
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
HTML5 Support / Web Tier Enhancements
• JSON Binding
• JSON Processing enhancements
• Server-sent events
• Action-based MVC
• HTTP/2 support
7
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-B 1.0
• API to marshal/unmarshal Java objects to/from JSON
– Similar to JAXB runtime API in XML world
• Draw from best practices of existing JSON binding implementations
– MOXy, Jackson, GSON, Genson, Xstream, …
– Allow switch of JSON binding providers
• Default mapping of classes to JSON
– Annotations to customize the default mappings
– JsonbProperty, JsonbTransient, JsonbNillable, JsonbValue, …
Java API for JSON Binding
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-B 1.0
@Entity public class Person {
@Id String name;
String gender;
@ElementCollection Map<String,String> phones;
... // getters and setters
}
Person duke = new Person();
duke.setName("Duke");
duke.setGender("M");
phones = new HashMap<String,String>();
phones.put("home", "650-123-4567");
phones.put("mobile", "650-234-5678");
duke.setPhones(phones);
Jsonb jsonb = JsonbBuilder.create();
String person = jsonb.toJson(duke);
{
"name":"Duke",
"gender":"M",
"phones":{
"home":"650-123-4567",
"mobile":"650-234-5678"}
}
9
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
• Keep JSON-P spec up-to-date
• Track new standards
• Add editing operations to JsonObject and JsonArray
• Helper classes and methods to better utilize SE 8’s stream operations
Java API for JSON Processing
10
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
• JSON-Pointer – IETF RFC 6901
– String syntax for referencing a value
"/0/phones/mobile"
Tracking new standards
11
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
JsonArray contacts = ...;
JsonPointer p =
new JsonPointer("/0/phones/mobile");
JsonValue v = p.getValue(contacts);
[
{
"name":"Duke",
"gender":"M",
"phones":{
"home":"650-123-4567",
"mobile":"650-234-5678"}},
{
"name":"Jane",
"gender":"F",
"phones":{
"mobile":"707-555-9999"}}
]
12
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
JsonArray contacts = ...;
JsonPointer p =
new JsonPointer("/0/phones/mobile");
JsonArray newContacts =
p.replace(contacts, "650-555-1234");
[
{
"name":"Duke",
"gender":"M",
"phones":{
"home":"650-123-4567",
"mobile":"650-234-5678"}},
{
"name":"Jane",
"gender":"F",
"phones":{
"mobile":"707-555-9999"}}
]
13
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
JsonArray contacts = ...;
JsonPointer p =
new JsonPointer("/0/phones/mobile");
JsonArray newContacts =
p.replace(contacts, "650-555-1234");
[
{
"name":"Duke",
"gender":"M",
"phones":{
"home":"650-123-4567",
"mobile":"650-555-1234"}},
{
"name":"Jane",
"gender":"F",
"phones":{
"mobile":"707-555-9999"}}
]
14
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
• JSON-Patch – IETF RFC 6902
• Patch is a JSON document
– Array of objects / operations for modifying a JSON document
– add, replace, remove, move, copy, test
– Must have "op" field and "path" field
[
{"op":"replace", "path":"/0/phones/mobile", "value":"650-111-2222"},
{"op":"remove", "path":"/1"}
]
Tracking new standards
15
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JSON-P 1.1
JSON Query using Streams API
JsonArray contacts = ...;
List<String> femaleNames = contacts.getValuesAs(JsonObject.class).stream()
.filter(x->"F".equals(x.getString("gender")))
.map(x->(x.getString("name"))
.collect(Collectors.toList());
JsonArray femaleNames = contacts.getValuesAs(JsonObject.class).stream()
.filter(x->"F".equals(x.getString("gender")))
.map(x->(x.getString("name"))
.collect(JsonCollectors.toJsonArray());
16
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Server-sent Events
• Part of HTML5 standardization
• Server-to-client streaming of text data
• Mime type is text/event-stream
• Long-lived HTTP connection
– Client establishes connection
– Server pushes update notifications to client
– Commonly used for one-way transmission for period updates or updates due to
events
17
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Server-sent Events
• JAX-RS a natural fit
– Streaming HTTP resources already supported
– Small extension
• Server API: new media type; EventOutput
• Client API: new handler for server side events
– Convenience of mixing with other HTTP operations; new media type
– Jersey (JAX-RS RI) already supports SSE
18
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Server-sent Events
@Path("tickers")
public class StockTicker {
@Get
@Produces("text/event-stream")
public EventOutput getQuotes() {
EventOutput eo = new EventOutput();
new StockThread(eo).start();
return eo;
}
}
JAX-RS resource class
19
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Server-sent Events
JAX-RS StockThread class
class StockThread extends Thread {
private EventOutput eo;
private AtomicBoolean ab =
new AtomicBoolean(true);
public StockThread(EventOutput eo) {
this.eo = eo;
}
public void terminate() {
ab.set(false);
}
@Override
public void run() {
while (ab.get()) {
try {
// ...
eo.send(new StockQuote("..."));
// ...
} catch (IOException e) {
// ...
}
}
}
}
20
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Server-sent Events
WebTarget target = client.target("http://example.com/tickers");
EventSource eventSource = new EventSource(target) {
@Override
public void onEvent(InboundEvent inboundEvent) {
StockQuote sq = inboundEvent.readData(StockQuote.class);
// ...
}
};
eventSource.open();
JAX-RS Client
21
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Model View Controller (MVC)
• Component-based MVC
– Controller provided by the framework
– JSF, Wicket, Tapestry…
• Action-based MVC
– Controllers defined by the application
– Struts 2, Spring MVC…
2 Styles
22
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
MVC 1.0
• Action-based model-view-controller architecture
• Glues together key Java EE technologies:
– Model
• CDI, Bean Validation, JPA
– View
• Facelets, JSP
– Controller
• JAX-RS resource methods
23
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
MVC 1.0
@Path("hello")
public class HelloController {
@Inject
private Greeting greeting;
@GET
@Controller
public String hello() {
greeting.setMessage("Hello Tokyo!");
return "hello.jsp";
}
}
Model Controller
@Named
@RequestScoped
public class Greeting {
private String message;
public String getMessage() {
return message;
}
public void setMessage(message) {
this.message = message;
}
}
24
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
MVC 1.0
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>${greeting.message}</h1>
</body>
</html>
View
25
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
HTTP/2
• HTTP 1.1 uses TCP poorly
– HTTP flows are short and bursty
– TCP was built for long-lived flows
• Workarounds
– Sprites
– Domain sharding
– Inlining
– File concatenation
Address the Limitations of HTTP 1.x
26
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
HTTP/2
HTTP/2 Goals
• Reduce latency
• Address the HOL blocking problem
• Support parallelism (without requiring multiple connections)
• Define interaction with HTTP 1.x
• Retain semantics of HTTP 1.1
Address the Limitations of HTTP 1.x
27
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
HTTP/2
• Binary Framing
• Request/Response multiplexing over single connection
– Fully bidirectional
– Multiple streams
• Server Push
• Header Compression
• Upgrade from HTTP 1.1
• Stream Prioritization
Features
28
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Servlet 4.0
• Binary Framing
• Request/Response multiplexing
– Servlet Request as HTTP/2 message
• Upgrade from HTTP 1.1
• Server Push
• Stream prioritization
HTTP/2 Features in Servlet API
29
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Ease of Development
• CDI alignment
• Security interceptors
• Simplified messaging with JMS message-driven beans
• JAX-RS injection alignment
• WebSocket scopes
• Pruning of EJB 2.x client view and IIOP interoperability
30
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Java EE Security 1.0
@IsAuthorized("hasRoles('Manager') && schedule.officeHrs")
void transferFunds()
@IsAuthorized("hasRoles('Manager') && hasAttribute('directReports', employee.id)")
double getSalary(long employeeId);
@IsAuthorized(ruleSourceName="java:app/payrollAuthRules", rule="report")
void displayReport();
Authorization via CDI Interceptors
31
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
JMS 2.1
• Continue the ease-of-use improvements started in JMS 2.0
• Improve the API for receiving messages asynchronously
– Improve JMS MDBs
– Provide alternative to JMS MDBs
New API to receive messages asynchronously
32
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
CDI 2.0
• Modularity
• Java SE support
• Asynchronous Events
• Event ordering
• …
33
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
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
34
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Java EE 8 JSRs
• 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)
35
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Expected MRs and small JSRs
• Connector Architecture
• WebSocket
• Interceptors
• JPA
• EJB
• JTA
• Bean Validation
• Batch
• JavaMail
• …
36
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Transparency
• Our Java EE 8 JSRs run in the open on java.net
– http://javaee-spec.java.net
– One project per JSR – jax-rs-spec, mvc-spec, servlet-spec,…
– https://java.net/projects/javaee-spec/pages/Specifications
• Publically viewable Expert Group mail archive
– Users observer lists gets all copies
• Publicly accessible download area
• Publicly accessible issue tracker / JIRA
• …
Commitment to JCP transparent processes
37
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
How to Get Involved
• Join an Expert Group project
– http://javaee-spec.java.net
– https://java.net/projects/javaee-spec/pages/Specifications
• Adopt a JSR
– http://glassfish.org/adoptajsr
• The Aquarium
– http://blogs.oracle.com/theaquarium
• Java EE 8 Reference Implementation
– http://glassfish.org
38
112815 java ee8_davidd

Más contenido relacionado

La actualidad más candente

JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJosé Paumard
 
Modern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - ODataModern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - ODataNishanth Kadiyala
 
Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Stephan Klevenz
 
OData - The Universal REST API
OData - The Universal REST APIOData - The Universal REST API
OData - The Universal REST APINishanth Kadiyala
 
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 frontDavid Delabassee
 
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON BindingWhat’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON BindingDmitry Kornilov
 
OData for iOS developers
OData for iOS developersOData for iOS developers
OData for iOS developersGlen Gordon
 
OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)Apigee | Google Cloud
 
New PLSQL in Oracle Database 12c
New PLSQL in Oracle Database 12cNew PLSQL in Oracle Database 12c
New PLSQL in Oracle Database 12cConnor McDonald
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data Kingsley Uyi Idehen
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
 
Exploiting Linked (Open) Data via Microsoft Access using ODBC File DSNs
Exploiting Linked (Open) Data via Microsoft Access using ODBC  File DSNsExploiting Linked (Open) Data via Microsoft Access using ODBC  File DSNs
Exploiting Linked (Open) Data via Microsoft Access using ODBC File DSNsKingsley Uyi Idehen
 
What's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingWhat's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingDmitry Kornilov
 
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBC
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBCUsing SAP Crystal Reports as a Linked (Open) Data Front-End via ODBC
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBCKingsley Uyi Idehen
 
Exploiting Linked (Open) Data via Microsoft Access
Exploiting Linked (Open) Data via Microsoft AccessExploiting Linked (Open) Data via Microsoft Access
Exploiting Linked (Open) Data via Microsoft AccessKingsley Uyi Idehen
 

La actualidad más candente (20)

JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridge
 
Modern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - ODataModern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - OData
 
Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014
 
OData - The Universal REST API
OData - The Universal REST APIOData - The Universal REST API
OData - The Universal REST API
 
JSON-B for CZJUG
JSON-B for CZJUGJSON-B for CZJUG
JSON-B for CZJUG
 
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
 
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON BindingWhat’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON Binding
 
Oracle NoSQL
Oracle NoSQLOracle NoSQL
Oracle NoSQL
 
OData for iOS developers
OData for iOS developersOData for iOS developers
OData for iOS developers
 
OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)
 
New PLSQL in Oracle Database 12c
New PLSQL in Oracle Database 12cNew PLSQL in Oracle Database 12c
New PLSQL in Oracle Database 12c
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
 
Exploiting Linked (Open) Data via Microsoft Access using ODBC File DSNs
Exploiting Linked (Open) Data via Microsoft Access using ODBC  File DSNsExploiting Linked (Open) Data via Microsoft Access using ODBC  File DSNs
Exploiting Linked (Open) Data via Microsoft Access using ODBC File DSNs
 
Odata
OdataOdata
Odata
 
What's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingWhat's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
 
A Look at OData
A Look at ODataA Look at OData
A Look at OData
 
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBC
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBCUsing SAP Crystal Reports as a Linked (Open) Data Front-End via ODBC
Using SAP Crystal Reports as a Linked (Open) Data Front-End via ODBC
 
Exploiting Linked (Open) Data via Microsoft Access
Exploiting Linked (Open) Data via Microsoft AccessExploiting Linked (Open) Data via Microsoft Access
Exploiting Linked (Open) Data via Microsoft Access
 

Destacado

Hipogramatik Cerita Wayang dalam Puisi Indonesia Moderen
Hipogramatik Cerita Wayang dalam Puisi Indonesia ModerenHipogramatik Cerita Wayang dalam Puisi Indonesia Moderen
Hipogramatik Cerita Wayang dalam Puisi Indonesia ModerenHamia Sani
 
Past paper quest aspect fitness
Past paper quest aspect fitnessPast paper quest aspect fitness
Past paper quest aspect fitnessnmcquade
 
Press freedom in_canada_program
Press freedom in_canada_programPress freedom in_canada_program
Press freedom in_canada_programMEDIAinTORONTO
 
Enquête satisfaction 2011_erma
Enquête satisfaction 2011_ermaEnquête satisfaction 2011_erma
Enquête satisfaction 2011_ermaRomain MURRY
 
New base energy news issue 952 dated 21 november 2016
New base energy news issue  952 dated 21 november 2016New base energy news issue  952 dated 21 november 2016
New base energy news issue 952 dated 21 november 2016Khaled Al Awadi
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Presentacio emile guia2012
Presentacio emile guia2012Presentacio emile guia2012
Presentacio emile guia2012clamuraller
 
Innovation in the Mining Industry – How does it Compare?
Innovation in the Mining Industry – How does it Compare?Innovation in the Mining Industry – How does it Compare?
Innovation in the Mining Industry – How does it Compare?NORCAT
 
Java Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoJava Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoTakashi Ito
 
Jibril abubakar, web play
Jibril abubakar, web playJibril abubakar, web play
Jibril abubakar, web playJibril Abubakar
 
KDDI Financial Results for the 1st Half of FY2015.3
KDDI Financial Results for the 1st Half of FY2015.3KDDI Financial Results for the 1st Half of FY2015.3
KDDI Financial Results for the 1st Half of FY2015.3KDDI
 

Destacado (18)

Brochure Arevalo
Brochure ArevaloBrochure Arevalo
Brochure Arevalo
 
Hipogramatik Cerita Wayang dalam Puisi Indonesia Moderen
Hipogramatik Cerita Wayang dalam Puisi Indonesia ModerenHipogramatik Cerita Wayang dalam Puisi Indonesia Moderen
Hipogramatik Cerita Wayang dalam Puisi Indonesia Moderen
 
Past paper quest aspect fitness
Past paper quest aspect fitnessPast paper quest aspect fitness
Past paper quest aspect fitness
 
Press freedom in_canada_program
Press freedom in_canada_programPress freedom in_canada_program
Press freedom in_canada_program
 
Enquête satisfaction 2011_erma
Enquête satisfaction 2011_ermaEnquête satisfaction 2011_erma
Enquête satisfaction 2011_erma
 
New base energy news issue 952 dated 21 november 2016
New base energy news issue  952 dated 21 november 2016New base energy news issue  952 dated 21 november 2016
New base energy news issue 952 dated 21 november 2016
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Civil War Battles
Civil War BattlesCivil War Battles
Civil War Battles
 
Presentacio emile guia2012
Presentacio emile guia2012Presentacio emile guia2012
Presentacio emile guia2012
 
Innovation in the Mining Industry – How does it Compare?
Innovation in the Mining Industry – How does it Compare?Innovation in the Mining Industry – How does it Compare?
Innovation in the Mining Industry – How does it Compare?
 
Java Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoJava Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at Kumamoto
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Jibril abubakar, web play
Jibril abubakar, web playJibril abubakar, web play
Jibril abubakar, web play
 
Vive la musique!
Vive la musique!Vive la musique!
Vive la musique!
 
NIVELES DE IMPUTACION
NIVELES DE IMPUTACIONNIVELES DE IMPUTACION
NIVELES DE IMPUTACION
 
Partie b présentation
Partie b présentationPartie b présentation
Partie b présentation
 
KDDI Financial Results for the 1st Half of FY2015.3
KDDI Financial Results for the 1st Half of FY2015.3KDDI Financial Results for the 1st Half of FY2015.3
KDDI Financial Results for the 1st Half of FY2015.3
 

Similar a 112815 java ee8_davidd

JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesArun Gupta
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0David Delabassee
 
Java EE7
Java EE7Java EE7
Java EE7Jay Lee
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7Bruno Borges
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot David Delabassee
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckEdward Burns
 
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaGetting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaCodemotion
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta jaxconf
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...jaxLondonConference
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Bruno Borges
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaArun Gupta
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Logico
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersRevelation Technologies
 
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
 

Similar a 112815 java ee8_davidd (20)

JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web Services
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
Java ee7 1hour
Java ee7 1hourJava ee7 1hour
Java ee7 1hour
 
Java EE7
Java EE7Java EE7
Java EE7
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaGetting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
 
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David DelabasseeJavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in Java
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database Developers
 
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.
 

Más de Takashi Ito

JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019Takashi Ito
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurTakashi Ito
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osakaTakashi Ito
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedbackTakashi Ito
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会Takashi Ito
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ OsakaTakashi Ito
 

Más de Takashi Ito (7)

JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil Gaur
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedback
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 

Último (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 

112815 java ee8_davidd

  • 1. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE 8 - Work in Progress David Delabassee @delabassee Oracle Corporation JJUG CCC 2015 Fall
  • 2. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following 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. 2
  • 3. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Program Agenda Quick recap of goals and themes of Java EE 8 What we have accomplished How you can get involved 1 2 3 3
  • 4. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Industry Trends Cloud 4
  • 5. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE 8 – Driven by Community Feedback http://glassfish.org/survey 5
  • 6. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 6
  • 7. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. HTML5 Support / Web Tier Enhancements • JSON Binding • JSON Processing enhancements • Server-sent events • Action-based MVC • HTTP/2 support 7
  • 8. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-B 1.0 • API to marshal/unmarshal Java objects to/from JSON – Similar to JAXB runtime API in XML world • Draw from best practices of existing JSON binding implementations – MOXy, Jackson, GSON, Genson, Xstream, … – Allow switch of JSON binding providers • Default mapping of classes to JSON – Annotations to customize the default mappings – JsonbProperty, JsonbTransient, JsonbNillable, JsonbValue, … Java API for JSON Binding 8
  • 9. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-B 1.0 @Entity public class Person { @Id String name; String gender; @ElementCollection Map<String,String> phones; ... // getters and setters } Person duke = new Person(); duke.setName("Duke"); duke.setGender("M"); phones = new HashMap<String,String>(); phones.put("home", "650-123-4567"); phones.put("mobile", "650-234-5678"); duke.setPhones(phones); Jsonb jsonb = JsonbBuilder.create(); String person = jsonb.toJson(duke); { "name":"Duke", "gender":"M", "phones":{ "home":"650-123-4567", "mobile":"650-234-5678"} } 9
  • 10. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 • Keep JSON-P spec up-to-date • Track new standards • Add editing operations to JsonObject and JsonArray • Helper classes and methods to better utilize SE 8’s stream operations Java API for JSON Processing 10
  • 11. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 • JSON-Pointer – IETF RFC 6901 – String syntax for referencing a value "/0/phones/mobile" Tracking new standards 11
  • 12. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 JsonArray contacts = ...; JsonPointer p = new JsonPointer("/0/phones/mobile"); JsonValue v = p.getValue(contacts); [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-123-4567", "mobile":"650-234-5678"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-555-9999"}} ] 12
  • 13. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 JsonArray contacts = ...; JsonPointer p = new JsonPointer("/0/phones/mobile"); JsonArray newContacts = p.replace(contacts, "650-555-1234"); [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-123-4567", "mobile":"650-234-5678"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-555-9999"}} ] 13
  • 14. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 JsonArray contacts = ...; JsonPointer p = new JsonPointer("/0/phones/mobile"); JsonArray newContacts = p.replace(contacts, "650-555-1234"); [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-123-4567", "mobile":"650-555-1234"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-555-9999"}} ] 14
  • 15. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 • JSON-Patch – IETF RFC 6902 • Patch is a JSON document – Array of objects / operations for modifying a JSON document – add, replace, remove, move, copy, test – Must have "op" field and "path" field [ {"op":"replace", "path":"/0/phones/mobile", "value":"650-111-2222"}, {"op":"remove", "path":"/1"} ] Tracking new standards 15
  • 16. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JSON-P 1.1 JSON Query using Streams API JsonArray contacts = ...; List<String> femaleNames = contacts.getValuesAs(JsonObject.class).stream() .filter(x->"F".equals(x.getString("gender"))) .map(x->(x.getString("name")) .collect(Collectors.toList()); JsonArray femaleNames = contacts.getValuesAs(JsonObject.class).stream() .filter(x->"F".equals(x.getString("gender"))) .map(x->(x.getString("name")) .collect(JsonCollectors.toJsonArray()); 16
  • 17. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Server-sent Events • Part of HTML5 standardization • Server-to-client streaming of text data • Mime type is text/event-stream • Long-lived HTTP connection – Client establishes connection – Server pushes update notifications to client – Commonly used for one-way transmission for period updates or updates due to events 17
  • 18. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Server-sent Events • JAX-RS a natural fit – Streaming HTTP resources already supported – Small extension • Server API: new media type; EventOutput • Client API: new handler for server side events – Convenience of mixing with other HTTP operations; new media type – Jersey (JAX-RS RI) already supports SSE 18
  • 19. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Server-sent Events @Path("tickers") public class StockTicker { @Get @Produces("text/event-stream") public EventOutput getQuotes() { EventOutput eo = new EventOutput(); new StockThread(eo).start(); return eo; } } JAX-RS resource class 19
  • 20. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Server-sent Events JAX-RS StockThread class class StockThread extends Thread { private EventOutput eo; private AtomicBoolean ab = new AtomicBoolean(true); public StockThread(EventOutput eo) { this.eo = eo; } public void terminate() { ab.set(false); } @Override public void run() { while (ab.get()) { try { // ... eo.send(new StockQuote("...")); // ... } catch (IOException e) { // ... } } } } 20
  • 21. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Server-sent Events WebTarget target = client.target("http://example.com/tickers"); EventSource eventSource = new EventSource(target) { @Override public void onEvent(InboundEvent inboundEvent) { StockQuote sq = inboundEvent.readData(StockQuote.class); // ... } }; eventSource.open(); JAX-RS Client 21
  • 22. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Model View Controller (MVC) • Component-based MVC – Controller provided by the framework – JSF, Wicket, Tapestry… • Action-based MVC – Controllers defined by the application – Struts 2, Spring MVC… 2 Styles 22
  • 23. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. MVC 1.0 • Action-based model-view-controller architecture • Glues together key Java EE technologies: – Model • CDI, Bean Validation, JPA – View • Facelets, JSP – Controller • JAX-RS resource methods 23
  • 24. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. MVC 1.0 @Path("hello") public class HelloController { @Inject private Greeting greeting; @GET @Controller public String hello() { greeting.setMessage("Hello Tokyo!"); return "hello.jsp"; } } Model Controller @Named @RequestScoped public class Greeting { private String message; public String getMessage() { return message; } public void setMessage(message) { this.message = message; } } 24
  • 25. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. MVC 1.0 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello</title> </head> <body> <h1>${greeting.message}</h1> </body> </html> View 25
  • 26. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. HTTP/2 • HTTP 1.1 uses TCP poorly – HTTP flows are short and bursty – TCP was built for long-lived flows • Workarounds – Sprites – Domain sharding – Inlining – File concatenation Address the Limitations of HTTP 1.x 26
  • 27. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. HTTP/2 HTTP/2 Goals • Reduce latency • Address the HOL blocking problem • Support parallelism (without requiring multiple connections) • Define interaction with HTTP 1.x • Retain semantics of HTTP 1.1 Address the Limitations of HTTP 1.x 27
  • 28. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. HTTP/2 • Binary Framing • Request/Response multiplexing over single connection – Fully bidirectional – Multiple streams • Server Push • Header Compression • Upgrade from HTTP 1.1 • Stream Prioritization Features 28
  • 29. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Servlet 4.0 • Binary Framing • Request/Response multiplexing – Servlet Request as HTTP/2 message • Upgrade from HTTP 1.1 • Server Push • Stream prioritization HTTP/2 Features in Servlet API 29
  • 30. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Ease of Development • CDI alignment • Security interceptors • Simplified messaging with JMS message-driven beans • JAX-RS injection alignment • WebSocket scopes • Pruning of EJB 2.x client view and IIOP interoperability 30
  • 31. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 @IsAuthorized("hasRoles('Manager') && schedule.officeHrs") void transferFunds() @IsAuthorized("hasRoles('Manager') && hasAttribute('directReports', employee.id)") double getSalary(long employeeId); @IsAuthorized(ruleSourceName="java:app/payrollAuthRules", rule="report") void displayReport(); Authorization via CDI Interceptors 31
  • 32. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. JMS 2.1 • Continue the ease-of-use improvements started in JMS 2.0 • Improve the API for receiving messages asynchronously – Improve JMS MDBs – Provide alternative to JMS MDBs New API to receive messages asynchronously 32
  • 33. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. CDI 2.0 • Modularity • Java SE support • Asynchronous Events • Event ordering • … 33
  • 34. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 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 34
  • 35. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE 8 JSRs • 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) 35
  • 36. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Expected MRs and small JSRs • Connector Architecture • WebSocket • Interceptors • JPA • EJB • JTA • Bean Validation • Batch • JavaMail • … 36
  • 37. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Transparency • Our Java EE 8 JSRs run in the open on java.net – http://javaee-spec.java.net – One project per JSR – jax-rs-spec, mvc-spec, servlet-spec,… – https://java.net/projects/javaee-spec/pages/Specifications • Publically viewable Expert Group mail archive – Users observer lists gets all copies • Publicly accessible download area • Publicly accessible issue tracker / JIRA • … Commitment to JCP transparent processes 37
  • 38. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. How to Get Involved • Join an Expert Group project – http://javaee-spec.java.net – https://java.net/projects/javaee-spec/pages/Specifications • Adopt a JSR – http://glassfish.org/adoptajsr • The Aquarium – http://blogs.oracle.com/theaquarium • Java EE 8 Reference Implementation – http://glassfish.org 38