SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1 Engage Session #: 7050
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/Java-ee7-html5
Presented at QCon London
www.qconlondon.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
The Java EE 7 Platform:
Productivity++ and
Embracing HTML5
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta
@arungupta
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3 Engage Session #: 7050
The preceding is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated
into any contract. It is not a commitment to deliver any material, code,
or functionality, and should not be relied upon in making purchasing
decisions. The development, release, and timing of any features or
functionality described for Oracle s products remains at the sole
discretion of Oracle.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 Engage Session #: 7050
Java EE 6 Platform
December 10, 2009
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 Engage Session #: 7050
Java EE 6 – Key Statistics
§  50+ Million Java EE 6 Component Downloads
§  #1 Choice for Enterprise Developers
§  #1 Application Development Platform
§  Fastest implementation of a Java EE release
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 Engage Session #: 7050
Java EE 7 Revised Scope
Productivity and HTML5
•  Higher Productivity
–  Less Boilerplate
–  Richer Functionality
–  More Defaults
•  HTML5 Support
–  WebSocket
–  JSON
–  HTML5 Friendly Markup
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 Engage Session #: 7050
Java EE 7 – Candidate JSRs
Connector
1.6
Managed Beans 1.0 EJB 3.2
Servlet 3.1
Portable
Extensions
JSF 2.2
JAX-RS
2.0
BeanValidation1.1
JMS 2.0JPA 2.1
EL 3.0
JTA 1.2
JSP 2.2
Interceptors 1.1 CDI 1.1
Common
Annotations 1.1
UpdatedMajor
Release
New
Java Caching API
(JSR 107)
Java API for WebSocket
(JSR 356)
Batch Applications
(JSR 352)
Java API for JSON
(JSR 353)
Concurrency Utilities
(JSR 236)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 Engage Session #: 7050
Java API for RESTful Web Services 2.0
•  Client API
•  Message Filters & Entity Interceptors
•  Asynchronous Processing – Server & Client
•  Hypermedia Support
•  Common Configuration
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Engage Session #: 7050
Java API for RESTful Web Services 2.0
Client API - Now
// Get instance of Client
Client client = ClientFactory.newClient();



// Get customer name for the shipped products
String name = client.target(“../orders/{orderId}/customer”)

.resolveTemplate(”orderId", ”10”)

.queryParam(”shipped", ”true”)

.request()

.get(String.class);"
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10 Engage Session #: 7050
Java Message Service 2.0
•  Less verbose
•  Reduce boilerplate code
•  Resource injection
•  Connection, Session, and other objects are
AutoCloseable
•  Requires Resource Adapter for Java EE containers
•  Simplified API in both Java SE and EE
Simplify the existing API
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 Engage Session #: 7050
Java Message Service 2.0
@Resource(lookup = "myConnectionFactory”)

ConnectionFactory connectionFactory;"
@Resource(lookup = "myQueue”)

Queue myQueue;"
public void sendMessage (String payload) {

Connection connection = null;

try {

connection = connectionFactory.createConnection();

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

MessageProducer messageProducer = session.createProducer(myQueue);

TextMessage textMessage = session.createTextMessage(payload);

messageProducer.send(textMessage);

} catch (JMSException ex) {

//. . .

} finally {

if (connection != null) {

try {

connection.close();

} catch (JMSException ex) {"
//. . .

}

}

}

}"
Sending a Message using JMS 1.1
Application Server
Specific Resources
Boilerplate Code
Exception Handling
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12 Engage Session #: 7050
Java Message Service 2.0
@Inject

JMSContext context;"
"
@Resource(lookup = "java:global/jms/demoQueue”)

Queue demoQueue;"
"
public void sendMessage(String payload) {"
context.createProducer().send(demoQueue, payload);"
}"
Sending message using JMS 2.0
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 Engage Session #: 7050
Java API for JSON Processing 1.0
•  API to parse and generate JSON
•  Streaming API
–  Low-level, efficient way to parse/generate JSON
–  Provides pluggability for parsers/generators
•  Object Model
–  Simple, easy-to-use high-level API
–  Implemented on top of Streaming API
•  Binding JSON to Java objects forthcoming
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 Engage Session #: 7050
{"
"firstName": "John", "lastName": "Smith", "age": 25, 

"phoneNumber": [

{ "type": "home", "number": "212 555-1234" },

{ "type": "fax", "number": "646 555-4567" }

]

}"
Iterator<Event> it = parser.iterator();"
Event event = it.next(); // START_OBJECT
event = it.next(); // KEY_NAME
event = it.next(); // VALUE_STRING
String name = parser.getString(); // "John”
"
Java API for JSON Processing 1.0
Streaming API – JsonParser
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 Engage Session #: 7050
Java API for WebSocket 1.0
§ API for WebSocket Client/Endpoints
–  Annotation-driven (@WebSocketEndpoint)
–  Interface-driven (Endpoint)
–  Client (@WebSocketClient)
§ SPI for data frames
–  WebSocket opening handshake negotiation
§ Integration with Java EE Web container
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 Engage Session #: 7050
Java API for WebSocket 1.0
Hello World – POJO/Annotation-driven
import javax.websocket.*;



@ServerEndpoint("/hello")

public class HelloBean {



@OnMessage

public String sayHello(String name) {

return “Hello “ + name;

}

}"
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17 Engage Session #: 7050
Java API for WebSocket 1.0
@ServerEndpoint("/chat")"
public class ChatBean {"
static Set<Session> peers = Collections.synchronizedSet(…);



@OnOpen

public void onOpen(Session peer) {

peers.add(peer);

}



@OnClose

public void onClose(Session peer) {

peers.remove(peer);

}



. . ."
Chat Server
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18 Engage Session #: 7050
Java API for WebSocket 1.0
. . .



@OnMessage"
public void message(String message, Session client) {"
for (Session peer : peers) {

peer.getRemote().sendObject(message);

}

}

}"
Chat Server (contd.)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19 Engage Session #: 7050
Bean Validation 1.1
§ Open: Spec, Reference Implementation, TCK
§ Alignment with Dependency Injection
§ Method-level validation
–  Constraints on parameters and return values
–  Check pre-/post-conditions
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20 Engage Session #: 7050
Bean Validation 1.1
Method Parameter and Result Validation
Built-in
Custom
@Future

public Date getAppointment() {

//. . .

}"
public void placeOrder( 

@NotNull String productName,

@NotNull @Max(“10”) Integer quantity,

@Customer String customer) { 

//. . .

}"
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21 Engage Session #: 7050
Batch Applications for the Java Platform 1.0
§ Suited for non-interactive, bulk-oriented and long-
running tasks
§ Computationally intensive
§ Can execute sequentially/parallel
§ May be initiated
–  Adhoc
–  Scheduled
§  No scheduling APIs included
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22 Engage Session #: 7050
•  Job: Entire batch process
–  Put together through a Job Specification Language (XML)
•  Step: Independent, sequential phase of a job
–  ItemReader: Retrieval of input for a step, one at a time
–  ItemProcessor: Business processing of an item
–  ItemWriter: Output of an item, chunks of items at a time
•  JobOperator: Manage batch processing
•  JobRepository: Metadata for jobs
Batch Applications for the Java Platform 1.0
Concepts
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23 Engage Session #: 7050
Batch Applications for the Java Platform 1.0
<step id=”sendStatements”>"
<chunk reader ref=”AccountReader”"
processor ref=”AccountProcessor”

writer ref=”EmailWriter”"
chunk-size=”10” />"
</step>"
…implements ItemReader<Account> {

public Account readAccount() {

// read account using JPA"
}"
"
…implements ItemProcessor<Account,Statement>"
public Statement processAccount(Account account) {

// calculate balance"
}"
"…implements ItemWriter<Statement>"
public void sendEmail(List<Statement> accounts) {

// use JavaMail to send email"
}"
"
Job Specification Language – Chunked Step
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24 Engage Session #: 7050
Java Persistence API 2.1
§ Schema Generation
§ Unsynchronized Persistence Contexts
§ Bulk update/delete using Criteria"
§ User-defined functions using FUNCTION
§ Stored Procedure Query
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25 Engage Session #: 7050
Servlet 3.1
§ Non-blocking I/O
§ Protocol Upgrade
§ Security Enhancements
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26 Engage Session #: 7050
Servlet 3.1
public class TestServlet extends HttpServlet

protected void doGet(HttpServletRequest request,

HttpServletResponse response) 

throws IOException, ServletException {

ServletInputStream input = request.getInputStream();

byte[] b = new byte[1024];

int len = -1;

while ((len = input.read(b)) != -1) {

. . .

}

}

}"
Non-blocking IO - Traditional
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27 Engage Session #: 7050
Servlet 3.1
AsyncContext context = request.startAsync();

ServletInputStream input = request.getInputStream();

input.setReadListener(

new MyReadListener(input, context)); "
Non-blocking I/O: doGet Code Sample
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28 Engage Session #: 7050
Servlet 3.1
@Override

public void onDataAvailable() {

try {

StringBuilder sb = new StringBuilder();

int len = -1;

byte b[] = new byte[1024];

while (input.isReady() && (len = input.read(b)) != -1) {

String data = new String(b, 0, len);

System.out.println("--> " + data);

}

} catch (IOException ex) {

. . .

}

}

. . .

"
Non-blocking I/O: MyReadListener Code Sample
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29 Engage Session #: 7050
Concurrency Utilities for Java EE 1.0
§ Provide concurrency capabilities to Java EE application
components
–  Without compromising container integrity
§ Support simple (common) and advanced concurrency
patterns
Goals
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30 Engage Session #: 7050
Concurrency Utilities for Java EE 1.0
§ Recommended to bind in java:comp/env/concurrent
subcontext
<resource-env-ref>

<resource-env-ref-name>

concurrent/BatchExecutor

</resource-env-ref-name>

<resource-env-ref-type>

javax.enterprise.concurrent.ManagedExecutorService

</resource-env-ref-type>

</resource-env-ref>"
Defining ManagedExecutorService using JNDI
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31 Engage Session #: 7050
Concurrency Utilities for Java EE 1.0
public class TestServlet extends HTTPServlet {

@Resource(name=“concurrent/BatchExecutor”)

ManagedExecutorService executor;



Future future = executor.submit(new MyTask());



class MyTask implements Runnable {

public void run() { 

. . . // task logic

}

}

}

"
Submit Tasks to ManagedExecutorService using JNDI
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32 Engage Session #: 7050
JavaServer Faces 2.2
§ Flow Faces
§ Resource Library Contracts
§ HTML5 Friendly Markup Support
–  Pass through attributes and elements
§ Cross Site Request Forgery Protection
§ Loading Facelets via ResourceHandler"
§ File Upload Component
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33 Engage Session #: 7050
4.0
Java EE 7 – Implementation Status
download.java.net/glassfish/4.0/promoted/
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34 Engage Session #: 7050
Java EE 8 and Beyond
Standards-based cloud programming model
•  Deliver cloud architecture
•  Multi tenancy for SaaS
applications
•  Incremental delivery of JSRs
•  Modularity based on Jigsaw
Java EE 7
PaaS
Enablement
Multitenancy
NoSQL
JSON-B
Modularity
Cloud
Storage
Thin Server
Architecture
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35 Engage Session #: 7050
Adopt-a-JSR
How do I get started ? – glassfish.org/adoptajsr
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36 Engage Session #: 7050
Adopt-a-JSR
Participating JUGs
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37 Engage Session #: 7050
SPEAK UP, BE HEARDIF YOU DON’T SAY A WORD, EVERYTHING WILL STAY THE SAME
Gothenburg JUG
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38 Engage Session #: 7050
Call to Action
•  Specs: javaee-spec.java.net
•  Implementation: glassfish.org
•  The Aquarium: blogs.oracle.com/theaquarium
•  Adopt a JSR: glassfish.org/adoptajsr
•  NetBeans: wiki.netbeans.org/JavaEE7
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39 Engage Session #: 7050
Q&A
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40 Engage Session #: 7050
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41 Engage Session #: 7050

Weitere ähnliche Inhalte

Mehr von C4Media

Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsC4Media
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechC4Media
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/awaitC4Media
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaC4Media
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayC4Media
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?C4Media
 

Mehr von C4Media (20)

Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 

Kürzlich hochgeladen

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Kürzlich hochgeladen (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

The Java EE 7 Platform: Higher Productivity & Embracing HTML 5

  • 1. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1 Engage Session #: 7050
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /Java-ee7-html5
  • 3. Presented at QCon London www.qconlondon.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4. The Java EE 7 Platform: Productivity++ and Embracing HTML5 Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta @arungupta
  • 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3 Engage Session #: 7050 The preceding 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.
  • 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 Engage Session #: 7050 Java EE 6 Platform December 10, 2009
  • 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 Engage Session #: 7050 Java EE 6 – Key Statistics §  50+ Million Java EE 6 Component Downloads §  #1 Choice for Enterprise Developers §  #1 Application Development Platform §  Fastest implementation of a Java EE release
  • 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 Engage Session #: 7050 Java EE 7 Revised Scope Productivity and HTML5 •  Higher Productivity –  Less Boilerplate –  Richer Functionality –  More Defaults •  HTML5 Support –  WebSocket –  JSON –  HTML5 Friendly Markup
  • 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 Engage Session #: 7050 Java EE 7 – Candidate JSRs Connector 1.6 Managed Beans 1.0 EJB 3.2 Servlet 3.1 Portable Extensions JSF 2.2 JAX-RS 2.0 BeanValidation1.1 JMS 2.0JPA 2.1 EL 3.0 JTA 1.2 JSP 2.2 Interceptors 1.1 CDI 1.1 Common Annotations 1.1 UpdatedMajor Release New Java Caching API (JSR 107) Java API for WebSocket (JSR 356) Batch Applications (JSR 352) Java API for JSON (JSR 353) Concurrency Utilities (JSR 236)
  • 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 Engage Session #: 7050 Java API for RESTful Web Services 2.0 •  Client API •  Message Filters & Entity Interceptors •  Asynchronous Processing – Server & Client •  Hypermedia Support •  Common Configuration
  • 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Engage Session #: 7050 Java API for RESTful Web Services 2.0 Client API - Now // Get instance of Client Client client = ClientFactory.newClient();
 
 // Get customer name for the shipped products String name = client.target(“../orders/{orderId}/customer”)
 .resolveTemplate(”orderId", ”10”)
 .queryParam(”shipped", ”true”)
 .request()
 .get(String.class);"
  • 12. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10 Engage Session #: 7050 Java Message Service 2.0 •  Less verbose •  Reduce boilerplate code •  Resource injection •  Connection, Session, and other objects are AutoCloseable •  Requires Resource Adapter for Java EE containers •  Simplified API in both Java SE and EE Simplify the existing API
  • 13. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 Engage Session #: 7050 Java Message Service 2.0 @Resource(lookup = "myConnectionFactory”)
 ConnectionFactory connectionFactory;" @Resource(lookup = "myQueue”)
 Queue myQueue;" public void sendMessage (String payload) {
 Connection connection = null;
 try {
 connection = connectionFactory.createConnection();
 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 MessageProducer messageProducer = session.createProducer(myQueue);
 TextMessage textMessage = session.createTextMessage(payload);
 messageProducer.send(textMessage);
 } catch (JMSException ex) {
 //. . .
 } finally {
 if (connection != null) {
 try {
 connection.close();
 } catch (JMSException ex) {" //. . .
 }
 }
 }
 }" Sending a Message using JMS 1.1 Application Server Specific Resources Boilerplate Code Exception Handling
  • 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12 Engage Session #: 7050 Java Message Service 2.0 @Inject
 JMSContext context;" " @Resource(lookup = "java:global/jms/demoQueue”)
 Queue demoQueue;" " public void sendMessage(String payload) {" context.createProducer().send(demoQueue, payload);" }" Sending message using JMS 2.0
  • 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 Engage Session #: 7050 Java API for JSON Processing 1.0 •  API to parse and generate JSON •  Streaming API –  Low-level, efficient way to parse/generate JSON –  Provides pluggability for parsers/generators •  Object Model –  Simple, easy-to-use high-level API –  Implemented on top of Streaming API •  Binding JSON to Java objects forthcoming
  • 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 Engage Session #: 7050 {" "firstName": "John", "lastName": "Smith", "age": 25, 
 "phoneNumber": [
 { "type": "home", "number": "212 555-1234" },
 { "type": "fax", "number": "646 555-4567" }
 ]
 }" Iterator<Event> it = parser.iterator();" Event event = it.next(); // START_OBJECT event = it.next(); // KEY_NAME event = it.next(); // VALUE_STRING String name = parser.getString(); // "John” " Java API for JSON Processing 1.0 Streaming API – JsonParser
  • 17. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 Engage Session #: 7050 Java API for WebSocket 1.0 § API for WebSocket Client/Endpoints –  Annotation-driven (@WebSocketEndpoint) –  Interface-driven (Endpoint) –  Client (@WebSocketClient) § SPI for data frames –  WebSocket opening handshake negotiation § Integration with Java EE Web container
  • 18. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 Engage Session #: 7050 Java API for WebSocket 1.0 Hello World – POJO/Annotation-driven import javax.websocket.*;
 
 @ServerEndpoint("/hello")
 public class HelloBean {
 
 @OnMessage
 public String sayHello(String name) {
 return “Hello “ + name;
 }
 }"
  • 19. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17 Engage Session #: 7050 Java API for WebSocket 1.0 @ServerEndpoint("/chat")" public class ChatBean {" static Set<Session> peers = Collections.synchronizedSet(…);
 
 @OnOpen
 public void onOpen(Session peer) {
 peers.add(peer);
 }
 
 @OnClose
 public void onClose(Session peer) {
 peers.remove(peer);
 }
 
 . . ." Chat Server
  • 20. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18 Engage Session #: 7050 Java API for WebSocket 1.0 . . .
 
 @OnMessage" public void message(String message, Session client) {" for (Session peer : peers) {
 peer.getRemote().sendObject(message);
 }
 }
 }" Chat Server (contd.)
  • 21. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19 Engage Session #: 7050 Bean Validation 1.1 § Open: Spec, Reference Implementation, TCK § Alignment with Dependency Injection § Method-level validation –  Constraints on parameters and return values –  Check pre-/post-conditions
  • 22. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20 Engage Session #: 7050 Bean Validation 1.1 Method Parameter and Result Validation Built-in Custom @Future
 public Date getAppointment() {
 //. . .
 }" public void placeOrder( 
 @NotNull String productName,
 @NotNull @Max(“10”) Integer quantity,
 @Customer String customer) { 
 //. . .
 }"
  • 23. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21 Engage Session #: 7050 Batch Applications for the Java Platform 1.0 § Suited for non-interactive, bulk-oriented and long- running tasks § Computationally intensive § Can execute sequentially/parallel § May be initiated –  Adhoc –  Scheduled §  No scheduling APIs included
  • 24. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22 Engage Session #: 7050 •  Job: Entire batch process –  Put together through a Job Specification Language (XML) •  Step: Independent, sequential phase of a job –  ItemReader: Retrieval of input for a step, one at a time –  ItemProcessor: Business processing of an item –  ItemWriter: Output of an item, chunks of items at a time •  JobOperator: Manage batch processing •  JobRepository: Metadata for jobs Batch Applications for the Java Platform 1.0 Concepts
  • 25. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23 Engage Session #: 7050 Batch Applications for the Java Platform 1.0 <step id=”sendStatements”>" <chunk reader ref=”AccountReader”" processor ref=”AccountProcessor”
 writer ref=”EmailWriter”" chunk-size=”10” />" </step>" …implements ItemReader<Account> {
 public Account readAccount() {
 // read account using JPA" }" " …implements ItemProcessor<Account,Statement>" public Statement processAccount(Account account) {
 // calculate balance" }" "…implements ItemWriter<Statement>" public void sendEmail(List<Statement> accounts) {
 // use JavaMail to send email" }" " Job Specification Language – Chunked Step
  • 26. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24 Engage Session #: 7050 Java Persistence API 2.1 § Schema Generation § Unsynchronized Persistence Contexts § Bulk update/delete using Criteria" § User-defined functions using FUNCTION § Stored Procedure Query
  • 27. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25 Engage Session #: 7050 Servlet 3.1 § Non-blocking I/O § Protocol Upgrade § Security Enhancements
  • 28. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26 Engage Session #: 7050 Servlet 3.1 public class TestServlet extends HttpServlet
 protected void doGet(HttpServletRequest request,
 HttpServletResponse response) 
 throws IOException, ServletException {
 ServletInputStream input = request.getInputStream();
 byte[] b = new byte[1024];
 int len = -1;
 while ((len = input.read(b)) != -1) {
 . . .
 }
 }
 }" Non-blocking IO - Traditional
  • 29. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27 Engage Session #: 7050 Servlet 3.1 AsyncContext context = request.startAsync();
 ServletInputStream input = request.getInputStream();
 input.setReadListener(
 new MyReadListener(input, context)); " Non-blocking I/O: doGet Code Sample
  • 30. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28 Engage Session #: 7050 Servlet 3.1 @Override
 public void onDataAvailable() {
 try {
 StringBuilder sb = new StringBuilder();
 int len = -1;
 byte b[] = new byte[1024];
 while (input.isReady() && (len = input.read(b)) != -1) {
 String data = new String(b, 0, len);
 System.out.println("--> " + data);
 }
 } catch (IOException ex) {
 . . .
 }
 }
 . . .
 " Non-blocking I/O: MyReadListener Code Sample
  • 31. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29 Engage Session #: 7050 Concurrency Utilities for Java EE 1.0 § Provide concurrency capabilities to Java EE application components –  Without compromising container integrity § Support simple (common) and advanced concurrency patterns Goals
  • 32. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30 Engage Session #: 7050 Concurrency Utilities for Java EE 1.0 § Recommended to bind in java:comp/env/concurrent subcontext <resource-env-ref>
 <resource-env-ref-name>
 concurrent/BatchExecutor
 </resource-env-ref-name>
 <resource-env-ref-type>
 javax.enterprise.concurrent.ManagedExecutorService
 </resource-env-ref-type>
 </resource-env-ref>" Defining ManagedExecutorService using JNDI
  • 33. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31 Engage Session #: 7050 Concurrency Utilities for Java EE 1.0 public class TestServlet extends HTTPServlet {
 @Resource(name=“concurrent/BatchExecutor”)
 ManagedExecutorService executor;
 
 Future future = executor.submit(new MyTask());
 
 class MyTask implements Runnable {
 public void run() { 
 . . . // task logic
 }
 }
 }
 " Submit Tasks to ManagedExecutorService using JNDI
  • 34. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32 Engage Session #: 7050 JavaServer Faces 2.2 § Flow Faces § Resource Library Contracts § HTML5 Friendly Markup Support –  Pass through attributes and elements § Cross Site Request Forgery Protection § Loading Facelets via ResourceHandler" § File Upload Component
  • 35. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33 Engage Session #: 7050 4.0 Java EE 7 – Implementation Status download.java.net/glassfish/4.0/promoted/
  • 36. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34 Engage Session #: 7050 Java EE 8 and Beyond Standards-based cloud programming model •  Deliver cloud architecture •  Multi tenancy for SaaS applications •  Incremental delivery of JSRs •  Modularity based on Jigsaw Java EE 7 PaaS Enablement Multitenancy NoSQL JSON-B Modularity Cloud Storage Thin Server Architecture
  • 37. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35 Engage Session #: 7050 Adopt-a-JSR How do I get started ? – glassfish.org/adoptajsr
  • 38. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36 Engage Session #: 7050 Adopt-a-JSR Participating JUGs
  • 39. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37 Engage Session #: 7050 SPEAK UP, BE HEARDIF YOU DON’T SAY A WORD, EVERYTHING WILL STAY THE SAME Gothenburg JUG
  • 40. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38 Engage Session #: 7050 Call to Action •  Specs: javaee-spec.java.net •  Implementation: glassfish.org •  The Aquarium: blogs.oracle.com/theaquarium •  Adopt a JSR: glassfish.org/adoptajsr •  NetBeans: wiki.netbeans.org/JavaEE7
  • 41. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39 Engage Session #: 7050 Q&A
  • 42. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40 Engage Session #: 7050
  • 43. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41 Engage Session #: 7050