InterConnect
2017
BAS-5676:
Java EE 8 Introduction
Kevin Sutter, STSM
Java EE Architect
2 3/19/17
Please note
IBM’s	statements	regarding	its plans,	directions,	and	intent	
are	subject	to	change	or	withdrawal	without notice	at	IBM’s	
sole	discretion.
Information	regarding	potential future	products	is	intended	to	
outline	our	general	product	direction	and	it should	not	be	relied	
on	in	making	a	purchasing	decision.
The	information	mentioned regarding	potential	future	products	is	
not	a	commitment,	promise,	or	legal	obligation	to	deliver	
any	material,	code	or	functionality. Information	about	potential	
future products	may	not	be	incorporated	into	any	contract.
The	development,	release,	and timing	of	any	future	features	
or	functionality	described	for	our	products remains	at	our	sole	
discretion.
Performance	is	based	on measurements	and	projections	
using	standard	IBM	benchmarks	in	a	controlled environment.	The	
actual	throughput	or	performance	that any	user	will	
experience will	vary	depending	upon	many	factors,	including	
considerations	such	as	the amount	of	multiprogramming	in
the	user’s	job	stream,	the	I/O configuration,	the storage	
configuration,	and	the	workload	processed.	Therefore,	no	
assurance	can be	given	that	an	individual	user	will	achieve	results	
similar	to those	stated here.
Java EE 8 Introduction
(as of Feb 2017)
3 3/19/17
Java EE 8 – Where are we at and how did we get here?
4 3/19/17
Java EE 8 – Late 2015
Servlet	4.0	
(JSR	369)
JMS	2.1	
(JSR	368)
JSON-B	
(JSR	367)
JAX-RS	2.1	
(JSR	370)
Security	1.0	
(JSR	375)
CDI	2.0	
(JSR	365)
JSF	2.3	
(JSR	372)
MVC	1.0	
(JSR	371)
Bean	Validation	2.0
(JSR	380)
Management	2.0
(JSR	373)
JSON-P	1.1	
(JSR	374)
5 3/19/17
Java EE 8 – JavaOne 2016 (Sept)
Servlet	4.0	
(JSR	369)
JMS	2.1	
(JSR	368)
JSON-B	
(JSR	367)
JAX-RS	2.1	
(JSR	370)
Security	1.0	
(JSR	375)
Configuration	1.0
(JSR	???)
CDI	2.0	
(JSR	365)
JSF	2.3	
(JSR	372)
MVC	1.0	
(JSR	371)
Bean	Validation	2.0
(JSR	380)
Management	2.0
(JSR	373)
JSON-P	1.1	
(JSR	374)
Health	Check	1.0
(JSR	???)
6 No	Change Drop	from	Java	EE	8 Add	to	Java	EE	83/19/17
Java EE 8 – Early 2017 Draft
Servlet	4.0	
(JSR	369)
JMS	2.1	
(JSR	368)
JSON-B	
(JSR	367)
JAX-RS	2.1	
(JSR	370)
Security	1.0	
(JSR	375)
Configuration	1.0
(JSR	???)
CDI	2.0	
(JSR	365)
JSF	2.3	
(JSR	372)
MVC	1.0	
(JSR	371)
Bean	Validation	2.0
(JSR	380)
Management	2.0
(JSR	373)
JSON-P	1.1	
(JSR	374)
Health	Check	1.0
(JSR	???)
7 No	Change Drop	from	Java	EE	8 Add	to	Java	EE	8
JPA	2.2	
(JSR	???)
Java	Mail	1.6
Common	Annotations	1.3
Interceptors	1.2	rev	A
3/19/17
Java EE 8 – InterConnect 2017
Servlet	4.0	
(JSR	369)
JSON-B	
(JSR	367)
JAX-RS	2.1	
(JSR	370)
Security	1.0	
(JSR	375)
CDI	2.0	
(JSR	365)
JSF	2.3	
(JSR	372)
Bean	Validation	2.0
(JSR	380)
JSON-P	1.1	
(JSR	374)
8
JPA	2.2	
(JSR	???)
Java	Mail	1.6
Common	Annotations	1.3
Interceptors	1.2	rev	A
Final	Content	???
3/19/17
Java EE 8 Content
(as of Feb 2017)
9 3/19/17
Security 1.0 (JSR 375)
• Scaled	back	from	original	content	in	order	to	make	Java	EE	8	
dates… The	following	items	are	still	in	plan…
• API	for	Authentication	Mechanism
• API	for	Identity	Store
• API	for	Security	Context	(still	being	discussed)
• Goals
• Plug	the	portability	holes
• Modernize	– Utilize	CDI,	POJOs,	EL
• App	Developer	Friendly	– Common	security	configurations	and	
annotation	defaults
• New	Reference	Impl – Soteria
• Should	work	on	existing	Java	EE	7	Impls…
3/19/1710
Servlet 4.0 (JSR 369)
• Support	for	HTTP/2*
• Request/response	multiplexing
• Stream	prioritization
• Server	push	promise	request
• Major	upgrade	from	HTTP	1.0,	but	still	compatible	with	1.0	and	1.1
• Smaller	community-requested	improvements	(JIRA	issues)
• Support	for	request.getMapping so	an	application	can	determine	which	
mapping	was	used	to	select	the	resource	being	called
• Support	for	specifying	a	default	context	for	the	application	in	web.xml
• Support	for	specifying	default	request/response	character	encoding	in	
web.xml
3/19/1711
Servlet 4.0 (JSR 369) - cont
• *HTTP/2	hiccup
• Currently,	the	ALPN	dependency	is	only	provided	in	Java	SE	9
• Java	EE	8	only	requires	Java	SE	8
• Disconnect	that	needs	to	be	ironed	out…
• Current	thought	is	to	backport	the	required	APIs	to	Java	SE	8	in	the	jdk.*	package
• Immediately	mark	these	as	”deprecated”	so	that	they	are	not	accidentally	used	in	
Java	SE	9
• But,	no	official	work	item	has	been	logged	with	the	Oracle	JDK	to	resolve	this	yet…
3/19/1712
CDI 2.0 (JSR 365)
• Core	CDI,	Java	SE	CDI,	and	Java	EE	CDI
• Ordering	of	observers	based	on	priorities
void afterLogin(@Observes @Priority(javax.interceptor.Interceptor.Priority.APPLICATION)
LoggedInEvent event) { ... }
• Asynchronous	Events
@Inject Event<LoggedInEvent> loggedInEvent;
public void login() {
...
loggedInEvent.fireAsync( new LoggedInEvent(user) );
}
• Introduced	Configurator	Interfaces
For	example,	AnnotedTypeConfigurator SPI	for	AnnotatedType configuration	
• Built-in	annotation	literals,	such	as	Default
• Utilize	Java	8	language	features	– streams,	lambdas,	etc
3/19/1713
Bean Validation 2.0 (JSR 380)
• Container	element	validation	via	annotations	on	type	arguments	of	
generics.	
• List<@Max(1) Integer> postiveNumbers;
• Map<@Valid CustomerType, @Valid Customer>
customersByType;
• Cascaded	validation	of	arrarys,	iterables,	and	maps.
• @Valid List<Address> addresses;
• New	date/time	data	types	built-in	constraints	of	@Past	and	@Future	
or	custom	temporal	constraints	can	now	be	used	for	temporal	
validation.
• Other	new	features	include:	
• built-in	constraints	are	now	marked	as	repeatable
• parameter	names	for	method	validation	are	retrieved	through	reflection
• support	for	JavaFX	property	types
• java.util.Optional support
3/19/1714
JSON-B 1.0 (JSR 367)
• Converts	Java	objects	to	and	from	JSON
• Natural	follow	up	to	JSON-P:	closes	the	JSON	support	gap	
• JAXB-like	API	to	marshal/unmarshal Java	objects	to/from	JSON
• javax.json.bind
• Default	mapping	for	basic	Java	types,	including	collections	and	
arrays
• Optional	overrides	for	customized	mappings
public class Employee {
public String firstName;
public String lastName;
@JsonbProperty(value = "ssn")
public long taxId;
}
Jsonb jsonb = JsonbBuilder.create();
Employee employee =
jsonb.fromJson("{firstName:"Kevin",lastName:"Sutter",ssn:123456789}",
Employee.class);
String json = jsonb.toJson(employee);3/19/1715
JSON-P 1.1 (JSR 374)
• Keep	JSON-P	spec	up-to-date	and	relevant
• And,	consistent	with	JSON-B	1.0	(JSR	367)
• Support	for	IETF	standards	on	JSON	Pointer,	JSON	Patch,	and	
JSON	Merge
• rfc6901,	rfc6902,	and	rfc7396,	respectively
• Add	Editing	operations	to	JsonObject and	JsonArray
• add	all,	remove,	set	at	index,	add	at	index	operations
• Helper	classes	and	methods	to	better	utilize	Java	SE	8’s	stream	
operations
3/19/1716
JAX-RS 2.1 (JSR 370)
• Server-sent	events
• Reactive	Client	API
• Needed	for	both	Server-sent	event	processing	as	well	as	improving	the	
jax-rs asynchronous	client	support.
• Non-blocking	I/O	in	providers	(filters,	interceptors…)
• Utilize	Java	SE	8	language	features	such	as	lambdas
• Scaled	back	a	bit	from	original	jax-rs 2.1	intent…
• Hypermedia	API	Enhancements
• Support	for	declarative	security
• JAX-RS	resource	classes	as	controllers	(for	MVC,	which	was	dropped)
3/19/1717
JSF 2.3 (JSR 372)
• WebSocket	Integration
• Multi-field	validation
• Java	8	SE	Time/Date	support
• CDI	integration	enhancements
• Use	CDI	for	evaluation	of	JSF	specific	EL	implicit	Objects
• Deprecate	javax.faces.bean.		Support	@Inject	on	JSF	specific	artifacts
• CDI	Replacement	for	@ManagedProperty.	See	javadocs for	
javax.faces.annotation.ManagedProperty.
http://arjan-tijms.omnifaces.org/p/jsf-23.html
3/19/1718
JPA 2.2 (JSR ???)
• Pretty	minor	– Maintenance	Release	(MR)	???
• Support	for	Java	SE	8	language	updates
• Repeating	annotations
• Java	Date/Time	support
• Stream	support	in	queries
3/19/1719
Other minor JSR updates…
• JavaMail 1.6	(JSR	919)
• @Repeatable	on	@MailSession annotation
• Common	Annotations	1.3	(JSR	250)
• Very	common	to	update	Common	Annotations	with	every	Java	EE	
release
• Interceptors	1.2	rev	A	(JSR	318)
• No	functional	changes,	just	cleanup	and	clarifications
3/19/1720
Java EE 8 Roadmap
(as of Feb 2017)
21 3/19/17
Java EE 8 Specification, Early Draft 2
• EDR	2	was	submitted	for	review	11/28/2016
• Very	little	discussion
• Some	discussion	about	why	JMS	2.1	was	dropped…
• Overall,	pretty	quiet	review…
3/19/1722
Java EE 8 Survey Results
• Posted	12/21/2016
• Results
https://blogs.oracle.com/theaquarium/entry/java_ee_8_community_s
urvey2
• Summary
https://java.net/projects/javaee-
spec/downloads/download/Java%20EE%20Survey%20Results%20Dece
mber%202016.pdf
• Top	Features
• REST	(JAX-RS	2.1)	and	HTTP/2	(Servlet	4.0)
• Other	High-ranking	Features
• CDI	2.0,	Bean	Validation	2.0,	and	JSF	2.3
• JSON-B	1.0,	JSON-P	1.1
• Security	in	general…
3/19/1723
Java EE 8 – InterConnect 2017
Servlet	4.0	
(JSR	369)
JSON-B	
(JSR	367)
JAX-RS	2.1	
(JSR	370)
Security	1.0	
(JSR	375)
CDI	2.0	
(JSR	365)
JSF	2.3	
(JSR	372)
Bean	Validation	2.0
(JSR	380)
JSON-P	1.1	
(JSR	374)
24
JPA	2.2	
(JSR	???)
Java	Mail	1.6
Common	Annotations	1.3
Interceptors	1.2	rev	A
Final	Content	???
3/19/17
Java EE 8 Completion in 3Q 2017 ???
• Feb	21	“Announcement”
• Public	Review	- Apr/May	2017
• Proposed	Final	Draft	- June	2017
• Final	Release	- July	2017
• Much	more	detail…
• https://www.slideshare.net/delabassee/java-ee-8-february-2017-
update
• Goal	is	to	have	Java	EE	8	ready	by	JavaOne (Sept	2017)
• Glassfish	(Reference	Implementation)	ready	when	???
• https://blogs.oracle.com/theaquarium/entry/glassfish_5_update
3/19/1725
WebSphere’s Plans for Java EE 8
• WebSphere	is	a	Java	EE	Application	Server
• WebSphere	has	certified	and	supported	every	version	of	Java	
EE	since	J2EE	1.4
• You	do	the	math… J
3/19/1726
Sampling of Related Sessions…
• HAJ-4308: OpenJPA, EclipseLink, and the WebSphere Migration Toolkit
– Monday, Mar 20, 1:00pm-1:45pm, Mandalay Bay South, Level 2 – Reef B
• HAM-4393: MicroProfile, Java EE, and the Application Server
– Monday, Mar 20, 2:00-2:45pm, Mandalay Bay North, Level 0 – Islander F
• 1842: Technical Deep-Dive into IBM WebSphere Liberty
– Tuesday, Mar 21, 1:30-2:15pm, Mandalay Bay North, Level 0 – Islander G
– Tuesday, Mar 21, 4:45-5:30pm, Surf D
• 7014: Roundtable Discussion on Building Java Microservices with WebSphere Liberty
– Monday, Mar 20, 2:00-2:45pm, Tropics A
– Wednesday, Mar 22, 8:00-8:45am, Tropics A
• HAJ-4328: Java EE 7 Overview
– Wednesday, Mar 22, 8:00-8:45am, Mandalay Bay South, Level 2 – Reef B
• BAS-5676: Java EE 8 Introduction
– Wednesday, Mar 22, 2:00-2:45pm, Mandalay Bay North, Level 0 – South Pacific A
• BMC-4286: MicroProfile: A Programming Model for Microservices-Based Applications
– Wednesday, Mar 22, 4:15-5:00pm, Mandalay Bay North, Level 0 – South Pacific A
• HAJ-4344: Java SE 9 and the Application Server
– Thursday, Mar 23, 10:30-11:15am, Mandalay Bay South, Level 2 – Reef B
• 1835: Agile Development Using MicroProfile and IBM WebSphere Liberty (Lab)
– Thursday, Mar 23, 10:30-12:15pm, South Seas D
27
Questions?
3/19/1728
29 3/19/17
Notices and disclaimers
Copyright	© 2017 by International	Business	Machines	Corporation	(IBM).	
No part of	this	document	may	be	reproduced	or	transmitted	in	any	form	
without	written permission	from	IBM.
U.S. Government	Users	Restricted	Rights — use,	duplication	or	disclosure	
restricted by	GSA	ADP	Schedule	Contract	with	IBM.
Information	in	these presentations	(including	information	relating	to	
products	that	have	not	yet been	announced	by	IBM)	has	been	reviewed	for	
accuracy	as	of	the	date	of	initial publication	and could	include	unintentional	
technical	or	typographical	errors. IBM	shall	have	no	responsibility	to	update	
this	information.	This	document	is	distributed	“as	is”	without	any	warranty,	
either	express	or	implied.	In	no	event	shall	IBM	be	liable	for	any	damage	
arising	from	the	use	of	this	information,	including	but	not	limited	to,	loss	
of	data,	business	interruption,	loss	of	profit	or	loss	of	opportunity.	
IBM products and	services	are	warranted	according	to	the	terms	and	
conditions	of the	agreements	under	which	they	are	provided.
IBM	products	are	manufactured from	new	parts	or	new	and	used	parts.	
In	some	cases,	a	product	may	not	be	new and	may	have	been	previously	
installed.	Regardless,	our	warranty	terms	apply.”
Any statements	regarding	IBM's	future	direction,	intent	or	product	plans	
are subject	to	change	or	withdrawal	without	notice.
Performance	data	contained	herein was	generally	obtained	in	a	controlled,	
isolated environments. Customer examples are	presented	
as	illustrations	of	how	those	customers	have	used	IBM products and	
the	results	they	may	have	achieved. Actual	performance,	cost,	savings	or	
other	results	in	other	operating environments	may	vary.
References	in	this	document	to IBM	products,	programs,	or	services	does	not	
imply	that	IBM	intends	to	make such	products,	programs	or	services	
available	in	all	countries	in	which	IBM operates or	does	business.
Workshops,	sessions	and associated	materials	may	have	been	prepared		by	
independent	session	speakers, and	do	not	necessarily	reflect	the	
views	of	IBM. All materials	and	discussions	are provided	for	informational	
purposes	only,	and	are neither	intended	to,	nor	shall	constitute	legal	or	
other	guidance	or	advice	to any	individual	participant	or	their	specific	
situation.
It	is	the customer’s	responsibility to	insure	its	own	compliance	with legal	
requirements	and	to	obtain	advice	of	competent	legal	counsel	as	to	
the identification	and	interpretation	of	any	relevant laws	and	regulatory	
requirements	that	may	affect	the	customer’s	business	and	any	actions
the	customer may	need	to	take	to	comply	with	such	laws. IBM does	not	
provide	legal	advice	or represent	or	warrant	that	its	services	or	products	will	
ensure	that	the customer	is	in	compliance	with	any	law.
30 3/19/17
Notices and disclaimers
continued
Information	concerning	non-IBM products	was	obtained	from	the	suppliers	
of	those	products,	their	published announcements	or	other	publicly	available	
sources. IBM	has	not	tested	those products	in	connection	with	this	
publication	and	cannot	confirm	the	accuracy	of	performance,	compatibility	
or	any	other	claims	related	to	non-IBM	products. Questions	on	the	
capabilities of	non-IBM	products	should	be	addressed	to	the	suppliers	of	
those	products.	IBM does	not	warrant	the	quality	of	any	third-party	
products,	or	the	ability	of	any such	third-party	products	to	interoperate with	
IBM’s	products.	IBM	expressly	disclaims	all	warranties,	expressed	or	
implied,	including	but	not	limited	to,	the	implied	warranties	of	
merchantability	and	fitness	for	a	particular,	purpose.
The	provision	of	the	information contained	herein	is	not	intended	to,	and	
does	not,	grant	any	right	or	license under	any	IBM	patents,	copyrights,	
trademarks	or	other	intellectual	property right.
IBM,	the	IBM	logo,	ibm.com, Aspera®,	Bluemix,	Blueworks	Live,	CICS,	
Clearcase,	Cognos®,	DOORS®,	Emptoris®, Enterprise	Document	Management	
System™,	FASP®,	FileNet®,	Global Business Services®,
Global	Technology	Services®,	IBM	ExperienceOne™,	IBM	SmartCloud®,	IBM	
Social	Business®,	Information	on	Demand,	ILOG,	Maximo®,	
MQIntegrator®, MQSeries®, Netcool®,	OMEGAMON,	OpenPower,	
PureAnalytics™,	PureApplication®,	pureCluster™,	PureCoverage®,	PureData®,	
PureExperience®,	PureFlex®,	pureQuery®, pureScale®,	PureSystems®, QRadar®,	
Rational®,	Rhapsody®,	Smarter	Commerce®,	SoDA,	SPSS,	Sterling	Commerce®,	
StoredIQ,	Tealeaf®,	Tivoli® Trusteer®,	Unica®, urban{code}®,	Watson,	
WebSphere®,	Worklight®, X-Force® and	System	z® Z/OS,	are	trademarks	of	
International	Business	Machines	Corporation,	registered	in	many	
jurisdictions	worldwide.	Other	product	and	service	names	might	
be trademarks	of IBM	or	other	companies.	A	current	list	of	IBM	trademarks	is	
available	on	the Web	at	"Copyright	and	trademark	information"	at:	
www.ibm.com/legal/copytrade.shtml.
InterConnect
2017
31 3/19/17

Bas 5676-java ee 8 introduction

  • 1.
    InterConnect 2017 BAS-5676: Java EE 8Introduction Kevin Sutter, STSM Java EE Architect
  • 2.
    2 3/19/17 Please note IBM’s statements regarding itsplans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
  • 3.
    Java EE 8Introduction (as of Feb 2017) 3 3/19/17
  • 4.
    Java EE 8– Where are we at and how did we get here? 4 3/19/17
  • 5.
    Java EE 8– Late 2015 Servlet 4.0 (JSR 369) JMS 2.1 (JSR 368) JSON-B (JSR 367) JAX-RS 2.1 (JSR 370) Security 1.0 (JSR 375) CDI 2.0 (JSR 365) JSF 2.3 (JSR 372) MVC 1.0 (JSR 371) Bean Validation 2.0 (JSR 380) Management 2.0 (JSR 373) JSON-P 1.1 (JSR 374) 5 3/19/17
  • 6.
    Java EE 8– JavaOne 2016 (Sept) Servlet 4.0 (JSR 369) JMS 2.1 (JSR 368) JSON-B (JSR 367) JAX-RS 2.1 (JSR 370) Security 1.0 (JSR 375) Configuration 1.0 (JSR ???) CDI 2.0 (JSR 365) JSF 2.3 (JSR 372) MVC 1.0 (JSR 371) Bean Validation 2.0 (JSR 380) Management 2.0 (JSR 373) JSON-P 1.1 (JSR 374) Health Check 1.0 (JSR ???) 6 No Change Drop from Java EE 8 Add to Java EE 83/19/17
  • 7.
    Java EE 8– Early 2017 Draft Servlet 4.0 (JSR 369) JMS 2.1 (JSR 368) JSON-B (JSR 367) JAX-RS 2.1 (JSR 370) Security 1.0 (JSR 375) Configuration 1.0 (JSR ???) CDI 2.0 (JSR 365) JSF 2.3 (JSR 372) MVC 1.0 (JSR 371) Bean Validation 2.0 (JSR 380) Management 2.0 (JSR 373) JSON-P 1.1 (JSR 374) Health Check 1.0 (JSR ???) 7 No Change Drop from Java EE 8 Add to Java EE 8 JPA 2.2 (JSR ???) Java Mail 1.6 Common Annotations 1.3 Interceptors 1.2 rev A 3/19/17
  • 8.
    Java EE 8– InterConnect 2017 Servlet 4.0 (JSR 369) JSON-B (JSR 367) JAX-RS 2.1 (JSR 370) Security 1.0 (JSR 375) CDI 2.0 (JSR 365) JSF 2.3 (JSR 372) Bean Validation 2.0 (JSR 380) JSON-P 1.1 (JSR 374) 8 JPA 2.2 (JSR ???) Java Mail 1.6 Common Annotations 1.3 Interceptors 1.2 rev A Final Content ??? 3/19/17
  • 9.
    Java EE 8Content (as of Feb 2017) 9 3/19/17
  • 10.
    Security 1.0 (JSR375) • Scaled back from original content in order to make Java EE 8 dates… The following items are still in plan… • API for Authentication Mechanism • API for Identity Store • API for Security Context (still being discussed) • Goals • Plug the portability holes • Modernize – Utilize CDI, POJOs, EL • App Developer Friendly – Common security configurations and annotation defaults • New Reference Impl – Soteria • Should work on existing Java EE 7 Impls… 3/19/1710
  • 11.
    Servlet 4.0 (JSR369) • Support for HTTP/2* • Request/response multiplexing • Stream prioritization • Server push promise request • Major upgrade from HTTP 1.0, but still compatible with 1.0 and 1.1 • Smaller community-requested improvements (JIRA issues) • Support for request.getMapping so an application can determine which mapping was used to select the resource being called • Support for specifying a default context for the application in web.xml • Support for specifying default request/response character encoding in web.xml 3/19/1711
  • 12.
    Servlet 4.0 (JSR369) - cont • *HTTP/2 hiccup • Currently, the ALPN dependency is only provided in Java SE 9 • Java EE 8 only requires Java SE 8 • Disconnect that needs to be ironed out… • Current thought is to backport the required APIs to Java SE 8 in the jdk.* package • Immediately mark these as ”deprecated” so that they are not accidentally used in Java SE 9 • But, no official work item has been logged with the Oracle JDK to resolve this yet… 3/19/1712
  • 13.
    CDI 2.0 (JSR365) • Core CDI, Java SE CDI, and Java EE CDI • Ordering of observers based on priorities void afterLogin(@Observes @Priority(javax.interceptor.Interceptor.Priority.APPLICATION) LoggedInEvent event) { ... } • Asynchronous Events @Inject Event<LoggedInEvent> loggedInEvent; public void login() { ... loggedInEvent.fireAsync( new LoggedInEvent(user) ); } • Introduced Configurator Interfaces For example, AnnotedTypeConfigurator SPI for AnnotatedType configuration • Built-in annotation literals, such as Default • Utilize Java 8 language features – streams, lambdas, etc 3/19/1713
  • 14.
    Bean Validation 2.0(JSR 380) • Container element validation via annotations on type arguments of generics. • List<@Max(1) Integer> postiveNumbers; • Map<@Valid CustomerType, @Valid Customer> customersByType; • Cascaded validation of arrarys, iterables, and maps. • @Valid List<Address> addresses; • New date/time data types built-in constraints of @Past and @Future or custom temporal constraints can now be used for temporal validation. • Other new features include: • built-in constraints are now marked as repeatable • parameter names for method validation are retrieved through reflection • support for JavaFX property types • java.util.Optional support 3/19/1714
  • 15.
    JSON-B 1.0 (JSR367) • Converts Java objects to and from JSON • Natural follow up to JSON-P: closes the JSON support gap • JAXB-like API to marshal/unmarshal Java objects to/from JSON • javax.json.bind • Default mapping for basic Java types, including collections and arrays • Optional overrides for customized mappings public class Employee { public String firstName; public String lastName; @JsonbProperty(value = "ssn") public long taxId; } Jsonb jsonb = JsonbBuilder.create(); Employee employee = jsonb.fromJson("{firstName:"Kevin",lastName:"Sutter",ssn:123456789}", Employee.class); String json = jsonb.toJson(employee);3/19/1715
  • 16.
    JSON-P 1.1 (JSR374) • Keep JSON-P spec up-to-date and relevant • And, consistent with JSON-B 1.0 (JSR 367) • Support for IETF standards on JSON Pointer, JSON Patch, and JSON Merge • rfc6901, rfc6902, and rfc7396, respectively • Add Editing operations to JsonObject and JsonArray • add all, remove, set at index, add at index operations • Helper classes and methods to better utilize Java SE 8’s stream operations 3/19/1716
  • 17.
    JAX-RS 2.1 (JSR370) • Server-sent events • Reactive Client API • Needed for both Server-sent event processing as well as improving the jax-rs asynchronous client support. • Non-blocking I/O in providers (filters, interceptors…) • Utilize Java SE 8 language features such as lambdas • Scaled back a bit from original jax-rs 2.1 intent… • Hypermedia API Enhancements • Support for declarative security • JAX-RS resource classes as controllers (for MVC, which was dropped) 3/19/1717
  • 18.
    JSF 2.3 (JSR372) • WebSocket Integration • Multi-field validation • Java 8 SE Time/Date support • CDI integration enhancements • Use CDI for evaluation of JSF specific EL implicit Objects • Deprecate javax.faces.bean. Support @Inject on JSF specific artifacts • CDI Replacement for @ManagedProperty. See javadocs for javax.faces.annotation.ManagedProperty. http://arjan-tijms.omnifaces.org/p/jsf-23.html 3/19/1718
  • 19.
    JPA 2.2 (JSR???) • Pretty minor – Maintenance Release (MR) ??? • Support for Java SE 8 language updates • Repeating annotations • Java Date/Time support • Stream support in queries 3/19/1719
  • 20.
    Other minor JSRupdates… • JavaMail 1.6 (JSR 919) • @Repeatable on @MailSession annotation • Common Annotations 1.3 (JSR 250) • Very common to update Common Annotations with every Java EE release • Interceptors 1.2 rev A (JSR 318) • No functional changes, just cleanup and clarifications 3/19/1720
  • 21.
    Java EE 8Roadmap (as of Feb 2017) 21 3/19/17
  • 22.
    Java EE 8Specification, Early Draft 2 • EDR 2 was submitted for review 11/28/2016 • Very little discussion • Some discussion about why JMS 2.1 was dropped… • Overall, pretty quiet review… 3/19/1722
  • 23.
    Java EE 8Survey Results • Posted 12/21/2016 • Results https://blogs.oracle.com/theaquarium/entry/java_ee_8_community_s urvey2 • Summary https://java.net/projects/javaee- spec/downloads/download/Java%20EE%20Survey%20Results%20Dece mber%202016.pdf • Top Features • REST (JAX-RS 2.1) and HTTP/2 (Servlet 4.0) • Other High-ranking Features • CDI 2.0, Bean Validation 2.0, and JSF 2.3 • JSON-B 1.0, JSON-P 1.1 • Security in general… 3/19/1723
  • 24.
    Java EE 8– InterConnect 2017 Servlet 4.0 (JSR 369) JSON-B (JSR 367) JAX-RS 2.1 (JSR 370) Security 1.0 (JSR 375) CDI 2.0 (JSR 365) JSF 2.3 (JSR 372) Bean Validation 2.0 (JSR 380) JSON-P 1.1 (JSR 374) 24 JPA 2.2 (JSR ???) Java Mail 1.6 Common Annotations 1.3 Interceptors 1.2 rev A Final Content ??? 3/19/17
  • 25.
    Java EE 8Completion in 3Q 2017 ??? • Feb 21 “Announcement” • Public Review - Apr/May 2017 • Proposed Final Draft - June 2017 • Final Release - July 2017 • Much more detail… • https://www.slideshare.net/delabassee/java-ee-8-february-2017- update • Goal is to have Java EE 8 ready by JavaOne (Sept 2017) • Glassfish (Reference Implementation) ready when ??? • https://blogs.oracle.com/theaquarium/entry/glassfish_5_update 3/19/1725
  • 26.
    WebSphere’s Plans forJava EE 8 • WebSphere is a Java EE Application Server • WebSphere has certified and supported every version of Java EE since J2EE 1.4 • You do the math… J 3/19/1726
  • 27.
    Sampling of RelatedSessions… • HAJ-4308: OpenJPA, EclipseLink, and the WebSphere Migration Toolkit – Monday, Mar 20, 1:00pm-1:45pm, Mandalay Bay South, Level 2 – Reef B • HAM-4393: MicroProfile, Java EE, and the Application Server – Monday, Mar 20, 2:00-2:45pm, Mandalay Bay North, Level 0 – Islander F • 1842: Technical Deep-Dive into IBM WebSphere Liberty – Tuesday, Mar 21, 1:30-2:15pm, Mandalay Bay North, Level 0 – Islander G – Tuesday, Mar 21, 4:45-5:30pm, Surf D • 7014: Roundtable Discussion on Building Java Microservices with WebSphere Liberty – Monday, Mar 20, 2:00-2:45pm, Tropics A – Wednesday, Mar 22, 8:00-8:45am, Tropics A • HAJ-4328: Java EE 7 Overview – Wednesday, Mar 22, 8:00-8:45am, Mandalay Bay South, Level 2 – Reef B • BAS-5676: Java EE 8 Introduction – Wednesday, Mar 22, 2:00-2:45pm, Mandalay Bay North, Level 0 – South Pacific A • BMC-4286: MicroProfile: A Programming Model for Microservices-Based Applications – Wednesday, Mar 22, 4:15-5:00pm, Mandalay Bay North, Level 0 – South Pacific A • HAJ-4344: Java SE 9 and the Application Server – Thursday, Mar 23, 10:30-11:15am, Mandalay Bay South, Level 2 – Reef B • 1835: Agile Development Using MicroProfile and IBM WebSphere Liberty (Lab) – Thursday, Mar 23, 10:30-12:15pm, South Seas D 27
  • 28.
  • 29.
    29 3/19/17 Notices anddisclaimers Copyright © 2017 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights — use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. This document is distributed “as is” without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. IBM products are manufactured from new parts or new and used parts. In some cases, a product may not be new and may have been previously installed. Regardless, our warranty terms apply.” Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  • 30.
    30 3/19/17 Notices anddisclaimers continued Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular, purpose. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services®, Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
  • 31.