KEMBAR78
Java EE 7 meets Java 8 | PDF
JavaOne
@radcortez#javaee7java8
Java  EE  7  meets  Java  8
Roberto  Cortez  
Tomitribe
JavaOne
@radcortez#javaee7java8
Who  am  I?
Passionate  Developer,  Blogger,  Youtuber,  Speaker,  Triber,  JUG  
Leader,  Java  Champion  
twi*er:    
@radcortez    
blog:    
h*p://www.radcortez.com  
youtube:  
h*p://youtube.com/radcortez  
mail:    
radcortez@yahoo.com    
JavaOne
@radcortez#javaee7java8
Ques:ons?
As  soon  as  you  have  them!
JavaOne
@radcortez#javaee7java8
Agenda
• SE  and  EE  overview  
• Code  Demos  
• JPA,  Date  Time  API,  OpFonal  and  Streams  
• JAX-­‐RS,  OpFonal  and  Completable  Future  
• Websockets,  Streams,  CollecFons  enhancements  
• Timers,  Concurrency  and  Method  References  
• Batch,  OpFonal  and  Streams  
• Future  Ideas  
• Bean  ValidaFon,  JPA  and  Method  References  
• Stream  Batch
JavaOne
@radcortez#javaee7java8
SE  and  EE  versions  alignment
J2SE
1.2
1998
J2EE
1.2
1999
J2SE
1.3
2000
J2EE
1.3
2001
J2SE
1.4
2002
J2EE
1.4
2003
Java
SE 5
2004
Java
EE 5
2006
Java
SE 6
2006
Java
EE 6
2009
Java
SE 7
2011
Java
EE 7
2013
Java
SE 8
2014
Java
EE 8
2017
Java
SE 9
2017
JavaOne
@radcortez#javaee7java8
SE  and  EE  versions  alignment
• EE  targets  the  previous  SE  version  
• EE  will  only  align  with  SE  8  in  EE  8  
• EE  7  is  not  targeted  to  SE  8
Even  so,  we  can  improve  current  EE  7  with  SE  8
JavaOne
@radcortez#javaee7java8
EE  Applica:on  Servers
• All  major  EE  servers  support  SE  8  
• Glassfish  
• Wildfly  
• TomEE  
• Weblogic  
• Websphere  Liberty  
• Some  already  dropped  SE  7  support  completely  
• EE  developers  are  free  to  use  SE  8
JavaOne
@radcortez#javaee7java8
SE  8  give  us
• Major  
• Lambdas  :)  (and  Method  References)  
• Streams  
• Date  &  Time  API  
• Other  
• CollecFons  enhancements  
• OpFonal,  StringJoiner,  CompletableFuture,  Comparator,  Repeatable  
AnnotaFons
JavaOne
@radcortez#javaee7java8
Demos
https://github.com/radcortez/javaee7-java8
JavaOne
@radcortez#javaee7java8
What  about  Parallel  Streams?
• They  use  the  common  ForkJoinPool  
• Threads  outside  of  the  EE  environment  
• ForkJoinPool  uses  all  available  CPU  cores  
• Use  at  your  own  risk!  
• This  can  help:  -­‐
Djava.uFl.concurrent.ForkJoinPool.common.parallelism=1  
• No  parallelism  
• In  the  future  EE  servers  might  handle  parallel  streams  properly
JavaOne
@radcortez#javaee7java8
Thank  you  for  AKending!
QA  
twi*er:    
@radcortez    
blog:    
h*p://www.radcortez.com  
youtube:  
h*p://youtube.com/radcortez  
mail:    
radcortez@yahoo.com    

Java EE 7 meets Java 8