java 7 and 8, what does it mean for you? - oracle · 21 jdk 7 platform support • windows x86 –...

44
1 <Insert Picture Here> Java 7 and 8, what does it mean for you?

Upload: others

Post on 14-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

1

<Insert Picture Here>

Java 7 and 8, what does it mean for you?

Page 2: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

2

What does Java 7 (and 8) mean to you?

• IT professional

• (non java) Developer

• Java Developer

• Oracle

Page 3: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

3

IT professional

Page 4: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

4http://commons.wikimedia.org/wiki/File:Alexander_cuts_the_Gordian_Knot.jpg

Page 5: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

5

Page 6: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

6

Developer

Page 7: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

7

JSR 292

• Invokedynamic

Page 8: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

8

Java Developer

Page 10: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

10

Coin (1) Strings in switch

String s = ...

switch(s) {

case "foo":

processFoo(s);

break;

}

Page 11: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

11

Coin (2) Changes to literals

• 1234_5678

• 1_2_3_4__5_6_7_8L

• 0b0001_0010_0100_1000

• 3.141_592_653_589_793d

• 0x1.ffff_ffff_ffff_fP1_023 // Double.MAX_VALUE

Page 12: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

12

Coin (3) Multi Catch, precise rethrow

try {

doWork(file);

} catch (IOException ex) {

logger.log(ex);

}

catch (SQLException ex) {

logger.log(ex);

}

try {

doWork(file);

} catch (IOException|SQLException

ex) { logger.log(ex);

}

Page 13: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

13

Coin (4) Diamond operator

Map<String,List<String>> m = new HashMap<String,List<String>>();

Map<String,List<String>> m = new HashMap<>();

Page 14: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

14

Coin (5) Try with resources

try (AutoclosableResource) {

// Do stuff

}

// closed here

Page 15: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

15

Concurrency and Collections Updates - JSR 166yLightweight Fork/Join Framework

1970 1975 1980 1985 1990 1995 2000 2005 2010

1

10

100

1,000

10,000

1,000,000

100,000

10,000000

Clock (MHz)

Transistors (1,000s)

Page 16: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

16

Network and File System – JSR 203NIO.2

• NIO.2

• NIO.2 Filesystem Provider for ZIP and JAR Archives

• SCTP (Stream Control Transmission Protocol)

• SDP (Sockets Direct Protocol)

• Redirection for Subprocess

• Vista IPv6 stack

• (new) Enhanced JMX agent and MBeans

Page 17: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

17

Security

• Native ECC (Elliptic Curve Cryptography)

• TLS (Transport Layer Security)1.2

• Stronger pseudorandom functions, additional (stronger) hash/signature algorithms, enhanced key exchange

• ASLR (Address space layout randomization)

• DEP (Data Execution Prevention) – Windows Only

Page 18: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

18

Internationalization

• Unicode 6.0

• IETF BCP47 and UTR35

– One language many character codes (Kanji, Hiragana,

Katakana, Romaji)

– Three-letter base language codes; three-digit region codes

• Separate user locale and user interface locale

• Currency data enhancements

http://en.wikipedia.org/wiki/File:Astrological_Glyphs.svg

Page 19: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

19

Other EnhancementsClient & Graphics

• Added Nimbus L&F to the standard– Much better –modern- look than what was previously

available

• Platform APIs for Java 6u10 Graphics Features– Shaped and translucent windows

• JXLayer core included in the standard– Formerly SwingLabs component

– Allows easier layering inside of a component

• Optimized Java2D Rendering Pipeline for X-Windows– Allows hardware accelerated remote X

Page 20: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

20

Other Enhancements

• Better font configuration on Unix– Now uses standard Unix mechanism to find fonts.

• JAXP 1.4.4, JAXWS 2.2 and JAXB 2.2

• JDBC 4.1, Rowset 1.1

• Upgrade class-loader architecture– Modifications to the ClassLoader API and implementation to

avoid deadlocks in non-hierarchical class-loader topologies

• Close URLClassloaders– Allows applications to proactively clean up classloaders, freeing

up native resources and unlocking JAR files

• Javadoc support for stylesheets

Page 21: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

21

JDK 7 Platform Support

• Windows x86– Server 2008, Server 2008 R2, 7 & 8 (when it GAs)

– Windows Vista, XP

• Linux x86– Oracle Linux 5.5+, 6.x

– Red Hat Enterprise Linux 5.5+, 6.x

– SuSE Linux Enterprise Server 10.x, 11.x

– Ubuntu Linux 10.04 LTS, 11.04

• Solaris x86/SPARC– Solaris 10.9+, 11.x

• Apple OSX x86– will be supported post-GA, detailed plan TBD

Note: JDK 7 should run on pretty much any Windows/Linux/Solaris. These configurations are the ones primarily tested by Oracle, and for which we provide commercial support.

Page 22: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

22

JDK 7 Project Plan

• From 1/21 OpenJDK Schedule

– 2010/12/16 Feature Complete

– 2011/04/12 Rampdown start: P1-P3 bugs only

– 2011/04/28 API/interface changes: Showstoppers only

– 2011/05/11 All targeted bugs addressed

First release candidate built

– 2011/05/18 Bug fixes: Showstoppers only

– 2011/06/08 Final test cycle starts

– 2011/07/28 General Availability

Page 23: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

23

JDK 8 – Fall/Winter 2012

• Modularization

• Language and VM Support

• Platform Modularization

• Project Lambda

• Lambda Expressions

• Default Methods

• Bulk Data Operations

• Annotations on Java types (JSR 308)

• More Small Language Enhancements

• Project Coin part 2

Features from “Plan B”

• Serialization fixes

• Multicast improvements

• Java APIs for accessing location, compass and other ”environmental” data (partially exists in ME)

• Improved language interop

• Faster startup/warmup

• Dependency injection (JSR 330)

• Include select enhancements from Google Guava

• Small Swing enhancements

• More security/crypto features, improved support for x.509-style certificates etc

• Internationalization: non-Gregorian calendars, more configurable sorting

• Date and Time (JSR 310)

• Process control API

Other Things On Oracle’s Wish List*

* Many of these will undoubtedly NOT make JDK 8.

Page 24: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

24

Oracle

Page 25: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

25

Oracle’s Java StrategyIn Order of Priority

1. A Vibrant Java Ecosystem

2. Generate Revenue.

3. Lower Costs

Page 26: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

26

JVM ConvergenceProject “HotRockit”

• Java SE 7 Support

• Rebranding

• No PermGen (stretch goal)

• Improved JMX Agent

• Command line servicability tool (jrcmd)

• JRockit Mission Control Console support

JDK 7 GA

= Premium Feature

• Performance

• Initial JRockit Flight Recorder Support

JDK 7 Update X

• More performance

• Improved command line servicability (jrcmd)

• G1 complete as CMS replacement

• Non-contiguous heaps

• Complete JRockit Flight Recorder Support

• JRockit Virtual Edition Support

• Soft Real Time GC

JDK 7 Update Y

• Java SE 8 Support

• All performance features from JRockit ported

• I/O Performance

• JIT Optimizations

• All servicability features from JRockit ported

• Compiler controls

• Verbose logging

• JRockit Mission Control Memleak Tool Support

JDK 8 GA

Page 27: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

Java EE 7Cloudy Ahead

Page 28: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

28

Java EE and the Cloud

● Containers are back in vogue!

● We have containers

● We have services... injectable services...

● We scale to large clusters...

● We have a security model...

Page 29: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

29

Java EE for the Cloud

● Tighter requirements for resource and state management

● Better isolation between applications

● Potential standard APIs for NRDBMS, caching, etc.

● Common management and monitoring interfaces

● Evolving the platform...

Page 30: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

30

Better Packaging for the Cloud

● Applications should be versioned

● Multiple versions should be able to coexists

● Dealing with data versioning, upgrades, etc.

● Need the ability to specify QoS properties

● Exposed and connected to services

Page 31: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

31

Cloud Platform

Application

Virtualization Layer

State Management

JavaService

PersistenceService

QueueingService

...

Page 32: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

32

Application

Virtualization Layer

State Management

JavaService

PersistenceService

QueueingService

...

CodeModule

CodeModule

Schema MigrationQoS

InformationSecurity

CodeModule

Cloud Platform

Page 33: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

33

Cloud Platform

Virtualization Layer

State Management

JavaService

PersistenceService

QueueingService

...

Application Application Application Application Application

Page 34: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

34

Cloud Platform

Virtualization Layer

State Management

JavaService

PersistenceService

QueueingService

...

Application Application Application Application Application

Managed Environment

Page 35: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

35

Modularity

● Build on JavaSE 8 modularity

● Applications are composed of modules

● Dependencies are explicit

● Versioning is built-in

Page 36: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

36

Modular Applicationsj1demo.app

j1demo-1.0.3

Page 37: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

37

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0requires

Page 38: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

38

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0

javaee-web-7.0 jpa-2.1 jax-rs-2.0

Page 39: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

39

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0

javaee-web-7.0 jpa-2.1 jax-rs-2.0

implements

...

gf-appserv-4.01.

Page 40: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

40

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0

javaee-web-7.0 jpa-2.1 jax-rs-2.0

implements

...

gf-appserv-4.01.eclipselink-

2.1.3

jersey-2.0.5

Page 41: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

41

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0

javaee-web-7.0 jpa-2.1

...

gf-appserv-4.01.eclipselink-

2.1.3

jax-rs-2.1

jersey-2.1.1

Page 42: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

42

Modular Applicationsj1demo.app

j1demo-1.0.3twitter-client-2.3.0

j1demo-persist-1.4.0

javaee-web-7.0 jpa-2.1

...

gf-appserv-4.01.eclipselink-

2.1.3

jax-rs-2.1

jersey-2.1.1

jax-rs-2.1

jersey-2.1.1

Page 43: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

43

Java EE 7 Roadmap

● JAX-RS 2.0 and JPA 2.1 filed

● Others JSRs to follow

● Target completion date 2012

Page 44: Java 7 and 8, what does it mean for you? - Oracle · 21 JDK 7 Platform Support • Windows x86 – Server 2008, Server 2008 R2, 7 & 8 (when it GAs) – Windows Vista, XP • Linux

44