Happy Java 8 release! But for Java EE 7? Is the SE 8 works for EE 7? this slide shows the current situation of applying SE 8 to EE 7. This is the revised version of "JJUG CCC 2014 Spring" session, for the "Java 8 workshop at Fukuoka".
2. hashtag: #j8fk
Hirofumi Iwasaki
twitter: @HirofumiIwasaki (English)
Carrier
Planning, designing & implements for many huge enterprise
systems for financial, manufacturer, public systems with
enterprise middleware, especially Java EE & .NET in Japan for
about 16 years.
Opus, Lectures, etc.
Lectures: Java Day Tokyo 2014, JJUG CCC 2014 Spring,
WebLogic key person roundtable (2012-2013), etc.
Magazine: @IT (2005-2010), CIO Magazine (2009), IT Architect
(2005-2009), Web+DB Press (2005), Java World (2001-2004),
DB Magazine (2000), etc.
2
3. hashtag: #j8fk
1. Status of Adapting Java 8
in EE Servers
2. Java SE 8 Updating
- Basic Topics for EE 7
3. Java SE 8 Updating
- Advanced Topics for EE 7
3
6. hashtag: #j8fk
Standard specifications for application servers
Commercial
Open Source
etc.
Java EE
Specification
Liberty Profile etc.
+
6
7. hashtag: #j8fk
For ENTERPRISE systems (Enterprise Edition)
specifications (full profile)
'Enterprise' means transactional.
Core architecture is EJB (JTA & CMT) with auto transaction
systems.
Transactional connectivity for other systems with JPA (JDBC),
JMS, RMI-IIOP.
Web architecture with JSF (Servlet & Facelet), JAX.
Each Java EE specification covers general enterprise
requirements.
Not for personal usage. Use Java SE only.
Not for build-in usage. Use Java ME.
For your enterprise system Use Java EE with Java SE.
7
10. hashtag: #j8fk
Vendor App Server EE 1.4
(2003-)
EE 5
(2006-)
EE 6
(2009-)
EE 7
(2013-)
Open Source GlassFish - 2.x 3.x 4.0
Oracle WebLogic 9.x 10.x 12.x -
IBM WebSphere 5.1 6.x, 7.x 8.x -
IBM Liberty Profile - - 8.5 -
Open Source Geronimo - 2.x 3.x -
Open Source TomEE+ - - 1.x -
Red Hat JBoss 4.x 5.1 7.1 -
Red Hat WildFly - - - 8.0
Fujitsu Interstage 9.0,9.1 9.2,10.x,11.
0
11.1 -
Hitachi Cosminexus 7.x 8.x 9.x -
10
11. hashtag: #j8fk
Vendor App Server EE 6 (2009 -) EE 7 (2013-)
Ver. SE Ver. Ver. SE Ver.
Open Source GlassFish 3.x SE 7 4.0 SE 7
Oracle WebLogic 12.1.x SE 6, SE 7 - -
IBM WebSphere 8.x SE 6, SE 7 - -
Open Source Geronimo 3.x SE 6, SE 7 - -
Open Source TomEE+ 1.x SE 7 - -
Red Hat JBoss 7.x SE 6, SE 7 - -
Red Hat WildFly - - 8.0 SE 7, SE 8
Fujitsu Interstage 11.1 SE 6, SE 7 - -
Hitachi Cosminexus 9.x SE 7 - -
*
* WebLogic 12.1.1 only
11
20. hashtag: #j8fk
// Calendar.
Calendar cal = Calendar.getInstance();
// Date.
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
// Time.
int hour = cal.get(Calendar.HOUR);
int minutes = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int millisecond =
cal.get(Calendar.MILLISECOND);
// Local Date Time.
LocalDateTime dateTime =
LocalDateTime.now();
// Local Date.
LocalDate date = dateTime.toLocalDate();
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
DayOfWeek dayOfWeek = date.getDayOfWeek();
// Local Time.
LocalTime time = dateTime.toLocalTime();
int hour = time.getHour();
int minute = time.getMinute();
int second = time.getSecond();
int nanoSecond = time.getNano();
Java 8 –
-1
From Millisecond to Nanosecond
(.000 .000000000)
20
22. hashtag: #j8fk
ANSI SQL Java SE 8
DATE java.time.LocalDate
TIME java.time.LocalDate
TIMESTAMP java.time.LocalDateTime
TIME WITH TIMEZONE java.time.OffsetTime
TIMESTAMP WITH TIMEZONE java.time.OffsetDateTime
http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html
22
26. hashtag: #j8fk
Rich Internet Apps
(no business logics)
Web Presentation
(no business logics)
Business Logic
(no presentations)
Data Access
DBs
Automatic
Transaction
Messaging
MQ
Connection
Other
Servers
EMail
MTA
Main stage is here!
26
27. hashtag: #j8fk
EE 7 didn’t consider the SE 8 in their
specification.
EE 7 spec don’t know the SE 8.
Many SE 8 new functions might be work
correctly if the app server supported the SE 8
as their VM.
Lambda expressions
Stream APIs (limited)
New date time APIs (limited)
etc.
27
28. hashtag: #j8fk
But some conflicted specs might not be
worked correctly
Stream API (multithreading with EJB 3.2, e.g. parallel
stream)
New date time APIs (JDBC new mappings with JPA
2.1)
etc.
Wait the Java EE 8 for the full support of SE 8
28
51. hashtag: #j8fk
Fork/Join framework was introduced in Java SE 7
Not supported in EJB container.
Parallel Stream uses fork/join framework in its
implementation
Might not be supported in EJB 3.2 container in EE 7
Some complicated case might not be worked correctly
Exception management case
JTA with container managed transaction in parallel loop case
@Asynchronous method call in parallel loop
Differed transaction isolation level method calling
Security management
etc.
51
52. hashtag: #j8fk
All Java EE 7 app servers are
not supported SE 8 yet, but
some simple case are
usable with 8.
Many limitation are still
existing for applying SE to
EE 7, but useful new
functions must be improve
the stage of your enterprise.
Anyway,
Ready to apply SE 8
for the Java EE!
52
54. hashtag: #j8fk
54
September 28 – October 2, 2014
San Francisco
Conference: Oracle
OpenWorld Session ID:
CON2820 Session Title: Case
Study of Financial Web System
Development and Operations
with Oracle WebLogic
12c Conference: JavaOne Sessi
on ID: CON2789 Session Title:
Java EE 6 adoption in one of the
world’s largest online financial
systems
Come and Join Us!
Java EE 6 is suitable for huge financial systems.
And we made new financial architecture with many education and measurements.
Make our enterprise future with Java EE.