SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Java SE 8 and Java EE 7
Overview
Peter Doschkinow
Senior Java Architect
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.
Agenda
 Java SE 8 New Features
– Language
– Libraries
– Platform and JVM
 Java EE 7 Overview
– Focus on HTML5 support
 New functionality
– JSR 308: Annotations on types
– JSR 310: Date and Time API
– JSR 335: Lambda expressions
 Updated functionality
– JSR 114: JDBC Rowsets
– JSR 160: JMX Remote API
– JSR 199: Java Compiler API
– JSR 173: Streaming API for XML
– JSR 206: Java API for XML Processing
– JSR 221: JDBC 4.0
– JSR 269: Pluggable Annotation-Processing API
Component JSRs
Java SE 8 (JSR 337)
 Biggest changes to the Java language since Java SE 5
 Significant enhancements in the class libraries
 The main goals of these changes are:
– Better developer productivity
– More reliable code
– Better utilisation of multi-core and multi-processor systems
 Code is no longer inherently serial or parallel
Java SE 8
 Lambda expressions provide anonymous function types to Java
– Replace use of anonymous inner classes
– Provide more functional style of programming in Java
Closures and Functional Programming
Lambda Expressions
doSomething(new DoStuff() {
public boolean isGood(int value) {
return value == 42;
}
});
doSomething(answer -> answer == 42);
Simplified to:
class Person {
String name;
int age;
String getName() { return name; }
int getAge() { return age; }
}
List<Person> list = ... ;
Collections.sort(list, ???);
Sorting a list of objects
Lambda Expressions Example
List<Person> list = ... ;
class ComparePersonsByName implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return p1.getName().compareTo(p2.getName());
}
}
Collections.sort(list, new ComparePersonsByName());
Sorting a list of objects traditionally
Lambda Expressions Example
List<Person> list = ... ;
Collections.sort(list,
(p1, p2) -> p1.getName().compareTo(p2.getName())
Collections.sort(list, Comparator.comparing(p -> p.getName())
Sorting a list of objects with lambdas
Lambda Expressions Example
List<Person> list = ... ;
Collections.sort(list,
(p1, p2) -> p1.getName().compareTo(p2.getName())
Collections.sort(list, Comparator.comparing(p -> p.getName())
Collections.sort(list, Comparator.comparing(Person::getName)
Sorting a list of objects with lambdas and method references
Lambda Expressions Example
 Provide a mechanism to add new methods to existing interfaces
– Without breaking backwards compatability
– Gives Java multiple inheritance of behaviour, as well as types (but not
state!)
Bringing Multiple Inheritance (of Functionality) to Java
Extension Methods
public interface Set<T> extends Collection<T> {
public int size();
... // The rest of the existing Set methods
public T reduce(Reducer<T> r)
default Collections.<T>setReducer;
}
 Annotations can currently only be used on type declarations
– Classes, methods, variable definitions
 Extension for places where types are used
– e.g. parameters
 Permits error detection by pluggable type checkers
– e.g. null pointer errors, race conditions, etc
Annotations On Java Types
public void process(@notnull List data) {…}
 Mechanism to retrieve parameter names of methods and constructors
– At runtime via core reflection
 Improved code readability
– Eliminate redundant annotations
 Improve IDE capabilities
– Auto-generate template code
 Method and Constructor now inherit from new Executable class
– getParameters() returns array of Parameter objects
– Name, type, annotations for each parameter
Access To Parameter Names At Runtime
 Repeating annotations
Multiple annotations with the same type applied to a single program element
 No more apt tool and associated API
– Complete the transition to the JSR 269 implementation
 DocTree API
– Provide access to the syntactic elements of a javadoc comment
 DocLint tool
– Use DocTree API to identify basic errors in javadoc comments
Small Things @OneToOne
@JoinColumn(name=“PARTNUM”)
@JoinColumn(name=“PARTREV”)
public Part getPart() {
return part;
}
 No small task!
– Java SE 7 has 4024 standard classes
 Modernize general library APIs
 Improve performance
– Gains from use of invokedynamic to implement Lambdas
 Demonstrate best practices for extension methods
Enhance Core Libraries With Lambdas
 java.util.function package
– Function, Predicate, Consumer, Supplier interfaces
 java.util.stream package
– Stream, Collector interfaces
 Hidden implicit iteration
 Serial and parallel implementations
– Generally expressed with Lambda statements
 Parallel implementation builds on Fork-Join framework
 Lazy evaluation
Filter, Map, Reduce for Java
Bulk Data Operations For Collections
List<Person> persons = ...
int oldestPeter = persons.stream()
.filter(p -> p.getName() == “Peter”)
.map(p -> p.getAge())
.max();
Java Streams API
Source
Stream
Intermediate
Stream Result
Intermediate
Stream
filter map max
 Higher abstraction view on
Collections
 Uses the Unix concept of
fipes and filters
 No storage
 Functional in nature
 Seeks laziness
List<Person> persons = ...
int oldestPeter = persons.parallelStream()
.filter(p -> p.getName() == “Peter”)
.map(p -> p.getAge())
.max();
Java Streams API
Source
Stream
Intermediate
Stream Result
Intermediate
Stream
filter map max
 Higher abstraction view on
Collections
 Uses the Unix concept of
fipes and filters
 No storage
 Functional in nature
 Seeks laziness
 Support parallel execution
using Fork-and-Join
framework
 A new date, time, and calendar API for the Java SE platform
 Supports standard time concepts
– Partial, duration, period, intervals
– date, time, instant, and time-zone
 Provides a limited set of calendar systems and be extensible to others
 Uses relevant standards, including ISO-8601, CLDR, and BCP47
 Based on an explicit time-scale with a connection to UTC
Date And Time APIs
 Currently developers are forced to use non-public APIs
– sun.misc.BASE64Encoder
– sun.misc.BASE64Decoder
 Java SE 8 now has a standard way
– java.util.Base64.Encoder
– java.util.Base64.Decoder
– encode, encodeToString, decode, wrap methods
Base64 Encoding and Decoding
 New Modern Theme: Modena
 JavaFX 3D
 Rich Text
 New widgets: TreeTableView, DatePicker
 Public API for CSS structure
 WebView Enhancements
 Embedded Support
 Support the direct launching of JavaFX applications
– Enhancement to the java command line launcher
JavaFX 8 New Features
 Optimize java.text.DecimalFormat.format
– Improve performance of common DecimalFormat usages
 Statically Linked JNI Libraries
– Needed for embedded applications
– Currently only dynamically linked supported
 Handle frequent HashMap collisions with balanced trees
– Hash bucket switches from linked list to balanced tree at certain threshold
to improve performance
Small Things
Approximate static footprint goals
Compact Profiles
Compact1 Profile
Compact2 Profile
Compact3 Profile
Full JRE 140Mb
24Mb
17Mb
10Mb
 Fix some assumptions about classloaders
 Use ServiceLoader rather than proprietary SPI code
– E.g. JAXP does not use ServiceLoader
 JDK tool to analyse application code dependencies: jdeps
 Deprecate APIs that will impede modularisation
– e.g. java.util.logging.LogManager.addPropertyChangeListener
Getting Ready For Jigsaw
Modularisation Preparation
 Improve performance, quality, and portability of method handles and
invokedynamic
 Reduce the amount of assembly code in the JVM
 Reduce native calls during method handle processing
 Better reference implementation of JSR 292 (invokedynamic)
Assembly language code re-written in Java
Lambda-Form Representation For Method Handles
 Lightweight, high-performance JavaScript engine
– Integrated into JRE
 Use existing javax.script API
 ECMAScript-262 Edition 5.1 language specification compliance
 New command-line tool, jjs to run JavaScript
 Internationalised error messages and documentation
Nashorn JavaScript Engine
 Rarely used
– DefNew + CMS
– ParNew + SerialOld
– Incremental CMS
 Large testing effort for little return
 Will generate deprecated option messages
– Won’t disappear just yet
Retire Rarely-Used GC Combinations
 Part of the HotSpot, JRockit convergence
 Current objects moved to Java heap or native memory
– Interned strings, class metadata, class static variables
 Metaspace – for native allocation
– Limited only by process address space
– To force a limit use -XX:MaxMetaspaceSize=<size>
 Class Data Sharing – Experimental feature
– Available on all platforms, -Xshare:<flag>
– Reduce footprint and startup by sharing JDK classes between processes
Permanently
Remove The Permanent Generation
 Autoconf based build system
– ./configure style build setup
 Enhance javac to improve build speed
– Run on all available cores
– Track package and class dependences between builds
– Automatically generate header files for native methods
– Clean up class and header files that are no longer needed
Increased Build Speed, Simplified Setup
The JDK
The Java EE Journey
Java EE 7
2005-2012
Ease of
Development
Lightweight
Developer Productivity & HTML5
1998-2004
Enterprise
Java Platform
Robustness
Web
Services
2013 - Future
Java EE 7 Themes
 Batch
 Concurrency
 Simplified JMS
 More annotated POJOs
 Less boilerplate code
 Cohesive integrated
platform
DEVELOPER
PRODUCTIVITY
 JAX-RS
 WebSockets
 JSON
 Servlet NIO
MEETING
ENTERPRISE
DEMANDS
Java EE 7
Java EE 7 JSRs
 TCP based, bi-directional, full-duplex
messaging
 Originally proposed as part of HTML5
 IETF-defined Protocol: RFC 6455
– Handshake, data transfer
 W3C defined JavaScript API
– Candidate Recommendation
 Supported by most browser already
http://caniuse.com/websockets
WebSocket
 Starts with HTTP handshake
– Supports HTTP proxies, filtering, authentication and intermediaries
 Data transfer
– Text/Binary frames
– Ping/Pong control frames for keep-alive
– Data frames don’t have HTTP overhead
 No headers/cookies/security/metadata
– Close frame
 Full duplex and bi-directional
WebSocket Protocol Summary
 Create WebSocket Endpoints
– Annotation-driven (@ServerEndpoint)
– Interface-driven (Endpoint)
 SPI for extensions and data frames
 Integration with Java EE Web container
 Client and server APIs
Java API for WebSocket Features
Server Side Object Model
WebSocket
@ServerEndpoint(path="/chat")
public class ChatBean {
Set<Session> peers = Collections.synchronizedSet(…);
@OnOpen
public void onOpen(Session peer) {
peers.add(peer);
}
@OnClose
public void onClose(Session peer) {
peers.remove(peer);
}
...
@OnMessage
public void message(String message, Session client) {
for (Session peer : peers) {
peer.getRemote().sendObject(message);
}
}
}
WebSocket Chat Sample
@ServerEndpoint(
value = "/websockets/{id}",
decoders = ShapeCoding.class,
encoders = ShapeCoding.class)
public class DrawingWebSocket { … }
public class ShapeCoding implements Decoder.Text<Drawing.Shape>, Encoder.Text<Drawing.Shape> {
...
@Override
public boolean willDecode(String s) { return true; }
@Override
public Drawing.Shape decode(String s) throws DecodeException { … }
...}
Custom Encoders and Decoders
 Standard Java API to help building of RESTful web services and clients
 Annotation driven: a DSL for HTTP
 POJO-Based Resource Classes
 HTTP Centric Programming Model
– Maps HTTP methods to java method invocations
 Entity Format Independence
Java API for RESTful Web Services
JAX-RS
 Serializar and Deserializer
– MessageBodyReader, MessageBodyWriter
 Response object for complex responses
 ExceptionMapper for Exception-Mapping
 Container Independence
 Included in Java EE – for Java EE 7 also in the web profile
Java API for RESTful Web Services
JAX-RS
public class AtmService {
public String balance(String card, String pin) {
return Double.toString (getBalance(card, pin));
}
public Money withdraw(String card,String pin, String amount){
return getMoney(card, pin, amount);
}
...
}
Converting a POJO in a REST Resource
JAX-RS Concepts in an Example
@Path("/atm/{cardId}")
public class AtmService {
@GET @Path ("/balance")
public String balance(String card, String pin) {
return Double.toString (getBalance(card, pin));
}
@POST @Path("/withdrawal")
public Money withdraw(String card, String pin,
String amount){
return getMoney(card, pin, amount);
}
...
}
Converting a POJO in a REST Resource, HTTP method binding
JAX-RS Concepts in an Example
@Path("/atm/{cardId}")
public class AtmService {
@GET @Path ("/balance")
@Produces("text/plain")
public String balance(@PathParam ("cardId") String card,
@QueryParam("pin") String pin) {
return Double.toString (getBalance(card, pin));
}
@POST @Path("/withdrawal")
@Produces("application/json")
public Money withdraw((@PathParam ("cardId") String card,
@QueryParam("pin") String pin,
String amount){
return getMoney(card, pin, amount);
}
...
}
URI Parameter injection, built-in and custom serialization
JAX-RS Concepts in an Example
GET http://[machine]:[port]/[web-context]/atm/3711/balance?pin=1234
POST http://[machine]:[port]/[web-context]/atm/3711/withdrawal?pin=1234
 New features
– Client API
– Client and Server Configuration
– Asynchronous processing
– Filters and Interceptors
– Hypermedia support
JAX-RS 2.0
HTML5 Architectural Implications
 HTML5 is the new UI across devices
– Applications == HTML5 + JavaScript + CSS3 + Server Resources
 Requires a different programming approach
 Servers no longer generating markup language
 Clients responsible for presentation logic and execution
 JavaScript is part of the domain model, JSON is the payload
 Event-Driven
 No need for browser plugin
The Browser Is the Platform
Thin Server Architecture (TSA) Diagram
JavaScript
HTML
CSS
HTML5DOMAPI
UserInterface
Browser
WebSocket
Server Push
Static
Resource
Services
Data
Access
RESTful
Data Services
DB
EIS
Web
Storage
Runtime application
presentation
input
display
App download
HTTP
XHR
WebSocket
Server-Sent-Events
App Server
 Improved performance
– Caching, no presentation data transmitted again and again
 Scalability
– Less data to transfer, session state is on the client
 Reduced complexity
– UI control is not split bethween client and server, UI events stay on client
 Improved user experience
 Offline support only possible with TSA
Advantages
Thin Server Architecture
With Java EE
Thin Server Architecture
Data Sources
HTTP/S
Web
Sockets
SSE
Clients
JAX-RS
Data Services
JMS
JPA
JAXB
POJO/EJB
Java EE Server
EIS
JSON
XML
JCA
WS
Endpoint
 Collaborative drawing
 Two-page application
– List of drawings
– Drawing
 Demonstrating
– Server-side: JAX-RS, JSON, WebSocket, SSE Java API
– Client-side: JAX-RS, WebSocket, SSE Java and JavaScript API
– JavaFX hybrid Java/HTML5 application
http://github.com/jersey/hol-sse-websocket
Drawing Board Demo
TSA - Architecture
Drawing Board Demo
HTTP/S
Web
Sockets
SSE
Clients
JAX-RS/SSE
Jersey
Data Service
GlassFish 4.0
JSON
JSON
DataProvider
POJO
WS
Endpoint
HTML5 Browser
JavaFX
WebView/WebKit
webSocketSend.send(...)
send(...) onEvent(...)
DrawingService.query(...)
 JSON 1.0: Java API for JSON parsing/processing, similar to JAXP
 Concurrency Utilities for Java EE 1.0
 Java Batch API 1.0
 JPA 2.1: Schema generation props, entity graphs and converters, …
 Servlet 3.1: Non-blocking IO, Upgrade to WebSocket, …
 JTA 1.2: Transactional CDI interceptors, …
 CDI 1.1: Ordering of interceptors, Servlet events, …
 EJB 3.2: Optional CMP/BMP, Ease-of-use, …
 JSF 2.2: @FlowScoped, HTML5 data-* attributes, …
 Bean Validation 1.1: method constraints, injectable artifacts, ...
Many other Improvements
 Java EE 7 SDK
– With GUI installer for Windows, Linux and Mac OS X
– Web and full profile, english and multi-language
– API docs, tutorial and samples
 GlassFish 4.0 OSE with GUI installer or as Zip
 Java EE 7 RI binaries and sources for the web and full profile
 Maven dependencies and javadocs
– javaee-api-7.0.jar, javaee-web-api-7.0.jar, javaee-api-7.0-javadoc.jar
http://www.oracle.com/technetwork/java/javaee/downloads/index.html
Java EE 7 Implementation Deliverables
https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf
Java EE Next
JCACHESSEConfiguration
HTML5 ++Cloud / PaaS
JSON
Binding
Java EE 8
and Beyond
NoSQL
https://blogs.oracle.com/ldemichiel/entry/results_from_the_java_ee
Java EE 8 Survey Results
 Modular end-to-end TSA-framework for HTML5 applications
 Service complonents implemented in JavaScript
– Using a JavaScript runtime based on Nashorn, NodeJS compatible
 View components implemented in JavaScript
– Using HTML5 + Widgets + Data Binding with EL
– Minimal JavaScript code needed
avatar.java.net
Project Avatar
Summary
 Java SE 8 adds plenty of new features
– At the language, libraries and JVM level
 Java SE continues to evolve
– www.jcp.org
– openjdk.java.net/jeps
 Java EE continues to evolve
– Java EE 7 is the most exciting of Java EE ever
– GlassFish distributions for Java EE continue to be regularly updated with
major releases of the Java EE specification
– Work on Java EE 8 started
Java SE 8 & EE 7 Launch
Java SE 8 & EE 7 Launch

Más contenido relacionado

La actualidad más candente

Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...scalaconfjp
 
Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Simon Ritter
 
Build Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuBuild Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuSalesforce Developers
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12Simon Ritter
 
Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuHavoc Pennington
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論scalaconfjp
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8javafxpert
 
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!panagenda
 
Java: Create The Future Keynote
Java: Create The Future KeynoteJava: Create The Future Keynote
Java: Create The Future KeynoteSimon Ritter
 
Java 12 - New features in action
Java 12 -   New features in actionJava 12 -   New features in action
Java 12 - New features in actionMarco Molteni
 
The latest features coming to Java 12
The latest features coming to Java 12The latest features coming to Java 12
The latest features coming to Java 12NexSoftsys
 
Lambdas : Beyond The Basics
Lambdas : Beyond The BasicsLambdas : Beyond The Basics
Lambdas : Beyond The BasicsSimon Ritter
 
New Features of JAVA SE8
New Features of JAVA SE8New Features of JAVA SE8
New Features of JAVA SE8Dinesh Pathak
 
JDK8 Lambdas and Streams: Changing The Way You Think When Developing Java
JDK8 Lambdas and Streams: Changing The Way You Think When Developing JavaJDK8 Lambdas and Streams: Changing The Way You Think When Developing Java
JDK8 Lambdas and Streams: Changing The Way You Think When Developing JavaSimon Ritter
 
PROGRAMMING IN JAVA- unit 4-part I
PROGRAMMING IN JAVA- unit 4-part IPROGRAMMING IN JAVA- unit 4-part I
PROGRAMMING IN JAVA- unit 4-part ISivaSankari36
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemPetr Hošek
 

La actualidad más candente (20)

55 New Features in Java 7
55 New Features in Java 755 New Features in Java 7
55 New Features in Java 7
 
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
 
Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8
 
Build Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuBuild Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and Heroku
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12
 
Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on Heroku
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 Overview
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8
 
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
 
Smart Migration to JDK 8
Smart Migration to JDK 8Smart Migration to JDK 8
Smart Migration to JDK 8
 
Java: Create The Future Keynote
Java: Create The Future KeynoteJava: Create The Future Keynote
Java: Create The Future Keynote
 
Java 12 - New features in action
Java 12 -   New features in actionJava 12 -   New features in action
Java 12 - New features in action
 
The latest features coming to Java 12
The latest features coming to Java 12The latest features coming to Java 12
The latest features coming to Java 12
 
Lambdas : Beyond The Basics
Lambdas : Beyond The BasicsLambdas : Beyond The Basics
Lambdas : Beyond The Basics
 
New Features of JAVA SE8
New Features of JAVA SE8New Features of JAVA SE8
New Features of JAVA SE8
 
JDK8 Lambdas and Streams: Changing The Way You Think When Developing Java
JDK8 Lambdas and Streams: Changing The Way You Think When Developing JavaJDK8 Lambdas and Streams: Changing The Way You Think When Developing Java
JDK8 Lambdas and Streams: Changing The Way You Think When Developing Java
 
PROGRAMMING IN JAVA- unit 4-part I
PROGRAMMING IN JAVA- unit 4-part IPROGRAMMING IN JAVA- unit 4-part I
PROGRAMMING IN JAVA- unit 4-part I
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 

Destacado

Java Server Faces + Spring MVC Framework
Java Server Faces + Spring MVC FrameworkJava Server Faces + Spring MVC Framework
Java Server Faces + Spring MVC FrameworkGuo Albert
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Logico
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Chris Richardson
 
Apache Tomcat 8 Application Server
Apache Tomcat 8 Application ServerApache Tomcat 8 Application Server
Apache Tomcat 8 Application Servermohamedmoharam
 
Introduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 PresentationIntroduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 PresentationTomcat Expert
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftMuleSoft
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingMoutaz Haddara
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaLaurent Guérin
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 

Destacado (18)

Java Server Faces + Spring MVC Framework
Java Server Faces + Spring MVC FrameworkJava Server Faces + Spring MVC Framework
Java Server Faces + Spring MVC Framework
 
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)
 
Tomcat server
 Tomcat server Tomcat server
Tomcat server
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)
 
Apache Tomcat 8 Application Server
Apache Tomcat 8 Application ServerApache Tomcat 8 Application Server
Apache Tomcat 8 Application Server
 
Introduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 PresentationIntroduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 Presentation
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoft
 
Tomcat Server
Tomcat ServerTomcat Server
Tomcat Server
 
Apache tomcat
Apache tomcatApache tomcat
Apache tomcat
 
EJB .
EJB .EJB .
EJB .
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide Java
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 

Similar a Java SE 8 & EE 7 Launch

Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsEmiel Paasschens
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3Oracle
 
Java SE 8 - New Features
Java SE 8 - New FeaturesJava SE 8 - New Features
Java SE 8 - New FeaturesNaveen Hegde
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New EvolutionAllan Huang
 
Extending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on RailsExtending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on RailsRaimonds Simanovskis
 
Java 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceJava 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceTrisha Gee
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Sam Brannen
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...jaxLondonConference
 
New Features in JDK 8
New Features in JDK 8New Features in JDK 8
New Features in JDK 8Martin Toshev
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 
Rad Extensibility - Srilakshmi S Rajesh K
Rad Extensibility - Srilakshmi S Rajesh KRad Extensibility - Srilakshmi S Rajesh K
Rad Extensibility - Srilakshmi S Rajesh KRoopa Nadkarni
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java Abdelmonaim Remani
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationAjax Experience 2009
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and WeldComposable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and WeldDatabricks
 
Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018Oracle Developers
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynoteSuyash Joshi
 

Similar a Java SE 8 & EE 7 Launch (20)

Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 
Java SE 8 - New Features
Java SE 8 - New FeaturesJava SE 8 - New Features
Java SE 8 - New Features
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
 
Extending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on RailsExtending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on Rails
 
Java 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceJava 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx France
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
Java 7: Quo vadis?
Java 7: Quo vadis?Java 7: Quo vadis?
Java 7: Quo vadis?
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
 
New Features in JDK 8
New Features in JDK 8New Features in JDK 8
New Features in JDK 8
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
Rad Extensibility - Srilakshmi S Rajesh K
Rad Extensibility - Srilakshmi S Rajesh KRad Extensibility - Srilakshmi S Rajesh K
Rad Extensibility - Srilakshmi S Rajesh K
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java
 
Java 7 & 8
Java 7 & 8Java 7 & 8
Java 7 & 8
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and WeldComposable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and Weld
 
Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018Silicon Valley JUG meetup July 18, 2018
Silicon Valley JUG meetup July 18, 2018
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynote
 

Más de Digicomp Academy AG

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Digicomp Academy AG
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Digicomp Academy AG
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Digicomp Academy AG
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutDigicomp Academy AG
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutDigicomp Academy AG
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xDigicomp Academy AG
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Digicomp Academy AG
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinDigicomp Academy AG
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Digicomp Academy AG
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattDigicomp Academy AG
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogDigicomp Academy AG
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnDigicomp Academy AG
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingDigicomp Academy AG
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessDigicomp Academy AG
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Digicomp Academy AG
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceDigicomp Academy AG
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudDigicomp Academy AG
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slidesDigicomp Academy AG
 

Más de Digicomp Academy AG (20)

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handout
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit x
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe Klein
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING Expertendialog
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital Business
 
Minenfeld IPv6
Minenfeld IPv6Minenfeld IPv6
Minenfeld IPv6
 
Was ist design thinking
Was ist design thinkingWas ist design thinking
Was ist design thinking
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slides
 

Último

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Último (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

Java SE 8 & EE 7 Launch

  • 1.
  • 2. Java SE 8 and Java EE 7 Overview Peter Doschkinow Senior Java Architect
  • 3. 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.
  • 4. Agenda  Java SE 8 New Features – Language – Libraries – Platform and JVM  Java EE 7 Overview – Focus on HTML5 support
  • 5.  New functionality – JSR 308: Annotations on types – JSR 310: Date and Time API – JSR 335: Lambda expressions  Updated functionality – JSR 114: JDBC Rowsets – JSR 160: JMX Remote API – JSR 199: Java Compiler API – JSR 173: Streaming API for XML – JSR 206: Java API for XML Processing – JSR 221: JDBC 4.0 – JSR 269: Pluggable Annotation-Processing API Component JSRs Java SE 8 (JSR 337)
  • 6.  Biggest changes to the Java language since Java SE 5  Significant enhancements in the class libraries  The main goals of these changes are: – Better developer productivity – More reliable code – Better utilisation of multi-core and multi-processor systems  Code is no longer inherently serial or parallel Java SE 8
  • 7.  Lambda expressions provide anonymous function types to Java – Replace use of anonymous inner classes – Provide more functional style of programming in Java Closures and Functional Programming Lambda Expressions doSomething(new DoStuff() { public boolean isGood(int value) { return value == 42; } }); doSomething(answer -> answer == 42); Simplified to:
  • 8. class Person { String name; int age; String getName() { return name; } int getAge() { return age; } } List<Person> list = ... ; Collections.sort(list, ???); Sorting a list of objects Lambda Expressions Example
  • 9. List<Person> list = ... ; class ComparePersonsByName implements Comparator<Person> { @Override public int compare(Person p1, Person p2) { return p1.getName().compareTo(p2.getName()); } } Collections.sort(list, new ComparePersonsByName()); Sorting a list of objects traditionally Lambda Expressions Example
  • 10. List<Person> list = ... ; Collections.sort(list, (p1, p2) -> p1.getName().compareTo(p2.getName()) Collections.sort(list, Comparator.comparing(p -> p.getName()) Sorting a list of objects with lambdas Lambda Expressions Example
  • 11. List<Person> list = ... ; Collections.sort(list, (p1, p2) -> p1.getName().compareTo(p2.getName()) Collections.sort(list, Comparator.comparing(p -> p.getName()) Collections.sort(list, Comparator.comparing(Person::getName) Sorting a list of objects with lambdas and method references Lambda Expressions Example
  • 12.  Provide a mechanism to add new methods to existing interfaces – Without breaking backwards compatability – Gives Java multiple inheritance of behaviour, as well as types (but not state!) Bringing Multiple Inheritance (of Functionality) to Java Extension Methods public interface Set<T> extends Collection<T> { public int size(); ... // The rest of the existing Set methods public T reduce(Reducer<T> r) default Collections.<T>setReducer; }
  • 13.  Annotations can currently only be used on type declarations – Classes, methods, variable definitions  Extension for places where types are used – e.g. parameters  Permits error detection by pluggable type checkers – e.g. null pointer errors, race conditions, etc Annotations On Java Types public void process(@notnull List data) {…}
  • 14.  Mechanism to retrieve parameter names of methods and constructors – At runtime via core reflection  Improved code readability – Eliminate redundant annotations  Improve IDE capabilities – Auto-generate template code  Method and Constructor now inherit from new Executable class – getParameters() returns array of Parameter objects – Name, type, annotations for each parameter Access To Parameter Names At Runtime
  • 15.  Repeating annotations Multiple annotations with the same type applied to a single program element  No more apt tool and associated API – Complete the transition to the JSR 269 implementation  DocTree API – Provide access to the syntactic elements of a javadoc comment  DocLint tool – Use DocTree API to identify basic errors in javadoc comments Small Things @OneToOne @JoinColumn(name=“PARTNUM”) @JoinColumn(name=“PARTREV”) public Part getPart() { return part; }
  • 16.  No small task! – Java SE 7 has 4024 standard classes  Modernize general library APIs  Improve performance – Gains from use of invokedynamic to implement Lambdas  Demonstrate best practices for extension methods Enhance Core Libraries With Lambdas
  • 17.  java.util.function package – Function, Predicate, Consumer, Supplier interfaces  java.util.stream package – Stream, Collector interfaces  Hidden implicit iteration  Serial and parallel implementations – Generally expressed with Lambda statements  Parallel implementation builds on Fork-Join framework  Lazy evaluation Filter, Map, Reduce for Java Bulk Data Operations For Collections
  • 18. List<Person> persons = ... int oldestPeter = persons.stream() .filter(p -> p.getName() == “Peter”) .map(p -> p.getAge()) .max(); Java Streams API Source Stream Intermediate Stream Result Intermediate Stream filter map max  Higher abstraction view on Collections  Uses the Unix concept of fipes and filters  No storage  Functional in nature  Seeks laziness
  • 19. List<Person> persons = ... int oldestPeter = persons.parallelStream() .filter(p -> p.getName() == “Peter”) .map(p -> p.getAge()) .max(); Java Streams API Source Stream Intermediate Stream Result Intermediate Stream filter map max  Higher abstraction view on Collections  Uses the Unix concept of fipes and filters  No storage  Functional in nature  Seeks laziness  Support parallel execution using Fork-and-Join framework
  • 20.  A new date, time, and calendar API for the Java SE platform  Supports standard time concepts – Partial, duration, period, intervals – date, time, instant, and time-zone  Provides a limited set of calendar systems and be extensible to others  Uses relevant standards, including ISO-8601, CLDR, and BCP47  Based on an explicit time-scale with a connection to UTC Date And Time APIs
  • 21.  Currently developers are forced to use non-public APIs – sun.misc.BASE64Encoder – sun.misc.BASE64Decoder  Java SE 8 now has a standard way – java.util.Base64.Encoder – java.util.Base64.Decoder – encode, encodeToString, decode, wrap methods Base64 Encoding and Decoding
  • 22.  New Modern Theme: Modena  JavaFX 3D  Rich Text  New widgets: TreeTableView, DatePicker  Public API for CSS structure  WebView Enhancements  Embedded Support  Support the direct launching of JavaFX applications – Enhancement to the java command line launcher JavaFX 8 New Features
  • 23.  Optimize java.text.DecimalFormat.format – Improve performance of common DecimalFormat usages  Statically Linked JNI Libraries – Needed for embedded applications – Currently only dynamically linked supported  Handle frequent HashMap collisions with balanced trees – Hash bucket switches from linked list to balanced tree at certain threshold to improve performance Small Things
  • 24. Approximate static footprint goals Compact Profiles Compact1 Profile Compact2 Profile Compact3 Profile Full JRE 140Mb 24Mb 17Mb 10Mb
  • 25.  Fix some assumptions about classloaders  Use ServiceLoader rather than proprietary SPI code – E.g. JAXP does not use ServiceLoader  JDK tool to analyse application code dependencies: jdeps  Deprecate APIs that will impede modularisation – e.g. java.util.logging.LogManager.addPropertyChangeListener Getting Ready For Jigsaw Modularisation Preparation
  • 26.  Improve performance, quality, and portability of method handles and invokedynamic  Reduce the amount of assembly code in the JVM  Reduce native calls during method handle processing  Better reference implementation of JSR 292 (invokedynamic) Assembly language code re-written in Java Lambda-Form Representation For Method Handles
  • 27.  Lightweight, high-performance JavaScript engine – Integrated into JRE  Use existing javax.script API  ECMAScript-262 Edition 5.1 language specification compliance  New command-line tool, jjs to run JavaScript  Internationalised error messages and documentation Nashorn JavaScript Engine
  • 28.  Rarely used – DefNew + CMS – ParNew + SerialOld – Incremental CMS  Large testing effort for little return  Will generate deprecated option messages – Won’t disappear just yet Retire Rarely-Used GC Combinations
  • 29.  Part of the HotSpot, JRockit convergence  Current objects moved to Java heap or native memory – Interned strings, class metadata, class static variables  Metaspace – for native allocation – Limited only by process address space – To force a limit use -XX:MaxMetaspaceSize=<size>  Class Data Sharing – Experimental feature – Available on all platforms, -Xshare:<flag> – Reduce footprint and startup by sharing JDK classes between processes Permanently Remove The Permanent Generation
  • 30.  Autoconf based build system – ./configure style build setup  Enhance javac to improve build speed – Run on all available cores – Track package and class dependences between builds – Automatically generate header files for native methods – Clean up class and header files that are no longer needed Increased Build Speed, Simplified Setup The JDK
  • 31. The Java EE Journey Java EE 7 2005-2012 Ease of Development Lightweight Developer Productivity & HTML5 1998-2004 Enterprise Java Platform Robustness Web Services 2013 - Future
  • 32. Java EE 7 Themes  Batch  Concurrency  Simplified JMS  More annotated POJOs  Less boilerplate code  Cohesive integrated platform DEVELOPER PRODUCTIVITY  JAX-RS  WebSockets  JSON  Servlet NIO MEETING ENTERPRISE DEMANDS Java EE 7
  • 33. Java EE 7 JSRs
  • 34.  TCP based, bi-directional, full-duplex messaging  Originally proposed as part of HTML5  IETF-defined Protocol: RFC 6455 – Handshake, data transfer  W3C defined JavaScript API – Candidate Recommendation  Supported by most browser already http://caniuse.com/websockets WebSocket
  • 35.  Starts with HTTP handshake – Supports HTTP proxies, filtering, authentication and intermediaries  Data transfer – Text/Binary frames – Ping/Pong control frames for keep-alive – Data frames don’t have HTTP overhead  No headers/cookies/security/metadata – Close frame  Full duplex and bi-directional WebSocket Protocol Summary
  • 36.  Create WebSocket Endpoints – Annotation-driven (@ServerEndpoint) – Interface-driven (Endpoint)  SPI for extensions and data frames  Integration with Java EE Web container  Client and server APIs Java API for WebSocket Features
  • 37. Server Side Object Model WebSocket
  • 38. @ServerEndpoint(path="/chat") public class ChatBean { Set<Session> peers = Collections.synchronizedSet(…); @OnOpen public void onOpen(Session peer) { peers.add(peer); } @OnClose public void onClose(Session peer) { peers.remove(peer); } ... @OnMessage public void message(String message, Session client) { for (Session peer : peers) { peer.getRemote().sendObject(message); } } } WebSocket Chat Sample
  • 39. @ServerEndpoint( value = "/websockets/{id}", decoders = ShapeCoding.class, encoders = ShapeCoding.class) public class DrawingWebSocket { … } public class ShapeCoding implements Decoder.Text<Drawing.Shape>, Encoder.Text<Drawing.Shape> { ... @Override public boolean willDecode(String s) { return true; } @Override public Drawing.Shape decode(String s) throws DecodeException { … } ...} Custom Encoders and Decoders
  • 40.  Standard Java API to help building of RESTful web services and clients  Annotation driven: a DSL for HTTP  POJO-Based Resource Classes  HTTP Centric Programming Model – Maps HTTP methods to java method invocations  Entity Format Independence Java API for RESTful Web Services JAX-RS
  • 41.  Serializar and Deserializer – MessageBodyReader, MessageBodyWriter  Response object for complex responses  ExceptionMapper for Exception-Mapping  Container Independence  Included in Java EE – for Java EE 7 also in the web profile Java API for RESTful Web Services JAX-RS
  • 42. public class AtmService { public String balance(String card, String pin) { return Double.toString (getBalance(card, pin)); } public Money withdraw(String card,String pin, String amount){ return getMoney(card, pin, amount); } ... } Converting a POJO in a REST Resource JAX-RS Concepts in an Example
  • 43. @Path("/atm/{cardId}") public class AtmService { @GET @Path ("/balance") public String balance(String card, String pin) { return Double.toString (getBalance(card, pin)); } @POST @Path("/withdrawal") public Money withdraw(String card, String pin, String amount){ return getMoney(card, pin, amount); } ... } Converting a POJO in a REST Resource, HTTP method binding JAX-RS Concepts in an Example
  • 44. @Path("/atm/{cardId}") public class AtmService { @GET @Path ("/balance") @Produces("text/plain") public String balance(@PathParam ("cardId") String card, @QueryParam("pin") String pin) { return Double.toString (getBalance(card, pin)); } @POST @Path("/withdrawal") @Produces("application/json") public Money withdraw((@PathParam ("cardId") String card, @QueryParam("pin") String pin, String amount){ return getMoney(card, pin, amount); } ... } URI Parameter injection, built-in and custom serialization JAX-RS Concepts in an Example GET http://[machine]:[port]/[web-context]/atm/3711/balance?pin=1234 POST http://[machine]:[port]/[web-context]/atm/3711/withdrawal?pin=1234
  • 45.  New features – Client API – Client and Server Configuration – Asynchronous processing – Filters and Interceptors – Hypermedia support JAX-RS 2.0
  • 46. HTML5 Architectural Implications  HTML5 is the new UI across devices – Applications == HTML5 + JavaScript + CSS3 + Server Resources  Requires a different programming approach  Servers no longer generating markup language  Clients responsible for presentation logic and execution  JavaScript is part of the domain model, JSON is the payload  Event-Driven  No need for browser plugin The Browser Is the Platform
  • 47. Thin Server Architecture (TSA) Diagram JavaScript HTML CSS HTML5DOMAPI UserInterface Browser WebSocket Server Push Static Resource Services Data Access RESTful Data Services DB EIS Web Storage Runtime application presentation input display App download HTTP XHR WebSocket Server-Sent-Events App Server
  • 48.  Improved performance – Caching, no presentation data transmitted again and again  Scalability – Less data to transfer, session state is on the client  Reduced complexity – UI control is not split bethween client and server, UI events stay on client  Improved user experience  Offline support only possible with TSA Advantages Thin Server Architecture
  • 49. With Java EE Thin Server Architecture Data Sources HTTP/S Web Sockets SSE Clients JAX-RS Data Services JMS JPA JAXB POJO/EJB Java EE Server EIS JSON XML JCA WS Endpoint
  • 50.  Collaborative drawing  Two-page application – List of drawings – Drawing  Demonstrating – Server-side: JAX-RS, JSON, WebSocket, SSE Java API – Client-side: JAX-RS, WebSocket, SSE Java and JavaScript API – JavaFX hybrid Java/HTML5 application http://github.com/jersey/hol-sse-websocket Drawing Board Demo
  • 51. TSA - Architecture Drawing Board Demo HTTP/S Web Sockets SSE Clients JAX-RS/SSE Jersey Data Service GlassFish 4.0 JSON JSON DataProvider POJO WS Endpoint HTML5 Browser JavaFX WebView/WebKit webSocketSend.send(...) send(...) onEvent(...) DrawingService.query(...)
  • 52.  JSON 1.0: Java API for JSON parsing/processing, similar to JAXP  Concurrency Utilities for Java EE 1.0  Java Batch API 1.0  JPA 2.1: Schema generation props, entity graphs and converters, …  Servlet 3.1: Non-blocking IO, Upgrade to WebSocket, …  JTA 1.2: Transactional CDI interceptors, …  CDI 1.1: Ordering of interceptors, Servlet events, …  EJB 3.2: Optional CMP/BMP, Ease-of-use, …  JSF 2.2: @FlowScoped, HTML5 data-* attributes, …  Bean Validation 1.1: method constraints, injectable artifacts, ... Many other Improvements
  • 53.  Java EE 7 SDK – With GUI installer for Windows, Linux and Mac OS X – Web and full profile, english and multi-language – API docs, tutorial and samples  GlassFish 4.0 OSE with GUI installer or as Zip  Java EE 7 RI binaries and sources for the web and full profile  Maven dependencies and javadocs – javaee-api-7.0.jar, javaee-web-api-7.0.jar, javaee-api-7.0-javadoc.jar http://www.oracle.com/technetwork/java/javaee/downloads/index.html Java EE 7 Implementation Deliverables
  • 56.  Modular end-to-end TSA-framework for HTML5 applications  Service complonents implemented in JavaScript – Using a JavaScript runtime based on Nashorn, NodeJS compatible  View components implemented in JavaScript – Using HTML5 + Widgets + Data Binding with EL – Minimal JavaScript code needed avatar.java.net Project Avatar
  • 57. Summary  Java SE 8 adds plenty of new features – At the language, libraries and JVM level  Java SE continues to evolve – www.jcp.org – openjdk.java.net/jeps  Java EE continues to evolve – Java EE 7 is the most exciting of Java EE ever – GlassFish distributions for Java EE continue to be regularly updated with major releases of the Java EE specification – Work on Java EE 8 started