jozi-jug jdk 9 unconference

54
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Java JUG Unconference: Future of Java - Jozi-JUG Heather VanCura [email protected] Twitter @heathervc Johannesburg, Investec June 2016

Upload: heather-vancura

Post on 08-Feb-2017

76 views

Category:

Technology


0 download

TRANSCRIPT

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java JUG Unconference Future of Java - Jozi-JUG

Heather VanCura heatherjcporg

Twitter heathervc

Johannesburg Investec

June 2016

What Runs Java

3

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Collaboratively Developed - Community

5

Heather VanCura Java Community Process (JCP) Program

bullDirector of the JCP Program Office

bullLeader of Global Adopt-a-JSR Programs

bullOpen Source Fan

bullNative Californian - from San Diego

bullPersonal Interests Fun

Bay Area California - USA

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

What Runs Java

3

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Collaboratively Developed - Community

5

Heather VanCura Java Community Process (JCP) Program

bullDirector of the JCP Program Office

bullLeader of Global Adopt-a-JSR Programs

bullOpen Source Fan

bullNative Californian - from San Diego

bullPersonal Interests Fun

Bay Area California - USA

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Collaboratively Developed - Community

5

Heather VanCura Java Community Process (JCP) Program

bullDirector of the JCP Program Office

bullLeader of Global Adopt-a-JSR Programs

bullOpen Source Fan

bullNative Californian - from San Diego

bullPersonal Interests Fun

Bay Area California - USA

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Collaboratively Developed - Community

5

Heather VanCura Java Community Process (JCP) Program

bullDirector of the JCP Program Office

bullLeader of Global Adopt-a-JSR Programs

bullOpen Source Fan

bullNative Californian - from San Diego

bullPersonal Interests Fun

Bay Area California - USA

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Heather VanCura Java Community Process (JCP) Program

bullDirector of the JCP Program Office

bullLeader of Global Adopt-a-JSR Programs

bullOpen Source Fan

bullNative Californian - from San Diego

bullPersonal Interests Fun

Bay Area California - USA

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

History

bull1995 Sun Microsystems develops Java

bull1999 Sun opens up the development process creating the Java Community Process

bull2006 Sun open-sources Java

bull2007 Sun goes into financial decline

bull2010 Oracle acquires Sun and becomes the steward of Java

7

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

8

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Organization

9

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

bull

10

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

The Executive Committee

11

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

12

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

The JSR Development Cycle

bullIncludes formal public reviews and votes by the Executive Committee

bullFull Members can submit amp lead JSRs serve on JSR Expert Groups

bullSee the Process Document for the details

13

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

How Open Standards amp Open Source

14

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Open Source Implementations

bullThe Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses

ndashJava SE OpenJDK

ndashJava EE Project GlassFish

15

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

16

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Click icon to add picture Joining the JCP empowers you to

bull Take Initiative ndash Requirements

bull Adapt and Inform

bull Develop New Markets

bull Grow Developers

17

Why Participate as Corporation

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Click icon to add picture

How

bullNew revisions of each of the three platforms

bull ldquoJCPNextrdquo reforms

bullIncreased participation from Java User Groups

2011 - Present Day

18

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Java EE 7 (JSR 342) ndash May 2013

19

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Java ME 8 (JSRs 360 amp 361) ndash April 2014

20

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Java SE 8 JSR 337 - March 2014

21

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JCPnext Changing the Constitution

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JCPnext4 (JSR 364) JCPnext (JSR 364)

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

25

Eliminate Barriers to participation

Introduce new Membership levels

No Membership Fees

Electronic Signatures

Add Contributors for JSR Expert Groups

Add Associate Seats on Executive Committee

JCP 210 Broadening JCP Membership

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

bull JCP 10 ndash Formalization of JCP (1999)

bull JCP 20 ndash Form Executive Committee (2000)

bull JCP 25 ndash Enable Participation for Spec Leadership Individuals (2002)

bull JCP 26 ndash Embrace Open Source (2004)

bull JCP 27 ndash Transparency (2009)

bull JCP 28 ndash Increased transparency (2011)

bull JCP 29 ndash Merge EC (2012)

bull JCP 210 ndash Broaden Participation (2016)

bull 26

Use the Process to Change the Process

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

The JCP is More Open Than Before

27

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

How will you Participate

bullAs an Individual ndash OK

bullAs part of a team ndash better

bullWork through your JUG or employer

ndashHelp each other

ndashTeach other

ndashWork with each other

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Adopt-a-JSR

A JUG-lead initiative to improve Java standards

Global groups of JUG members work on JSRs

ndashReceive attention from local industry

ndashBecome more professional ndash helps focus your group efforts

ndashAttract more developers to your community

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JUGs around the World

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

31

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

SouJava (Brazil)

JSR 310 Date and Time API

JSR 339 JAX-RS 20

344 JSF 22

Many talks books articles classes code dojos (hack days) translations

Use Cases

32

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

33

ADOPTAJSRORG wiki ndash Get Started amp join list

You expanded wiki into eight languages Arabic Chinese English French German Portuguese Spanish Turkishyou choose who will translate next language

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

34

1) Pick JSR - New JSRs httpsjcporgenjsrstagelistBy=active

Recently submitted

Security (JSR 375)

Java EE Management (JSR 373)

JSON-P 11 (JSR 374)

Units of Measurement (JSR 363)

Java Module System (JSR 376)

Desktop Application API (JSR 377)

Java EE 8 (JSR 366)

CDI 2 (JSR 365)

JSON-B (JSR 367)

JMS 21 (JSR 368)

Servlet 4 (JSR 369)

JAX-RS 21 (JSR 370)

MVC (JSR 371)

JSF 23 (JSR 372)

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Java EE 8 Community Survey

Glasfishorgsurveys

Web standardsHTML5 alignment Cloud CDI alignment Enterprise Java SE 8

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JSR example pageSR page example

List of Active JSRs (posting in last 12 months) httpjcporgenjsrallstatus=ActiveampactiveMonths=12

36

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

2) Communication Two Way Street

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

38

4) Enter activity in the matrix - Collaborate

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

39

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

Short (Small) - Minimise bandwidth for the example do not bore the audience

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

40

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

41

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Participate in Adopt OpenJDK

42

bull Go to httpjavanetprojectsadoptopenjdk

bull Also Adoption Group amp Quality Outreach

bull Join mail list prior to sending feedback httpmailopenjdkjavanetmailmanlistinfoadoption-discuss

bull httpswikiopenjdkjavanetdisplayqualityQuality+Outreach

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JDK 9

72 JEPs targeted for JDK 9

ndash JEP == Java Enhancement Proposal

Big one ndash JEP 261ndash Module System

ndash httpopenjdkjavanetjeps261

ndash Related JEPs for the Module System

JEP 200 ndash The Modular JDK

JEP 201 ndash Modular Source Code

JEP 220 ndash Modular Run-Time Images

JEP 260 ndash Encapsulate Most Internal APIs

JEP 162 ndash Prepare for Modularization

Another big step forward

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

JDK 9

Jigsaw available in current JDK 9 EA (early access)

ndash httpsjdk9javanetdownload

Build 111 or later has Jigsaw in it

Current available downloadable build is Build 120

Another big step forward

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Other JEPs

bull JEP 102 Process API Updates

ndash Java APIs for controlling and managing operating-system processes

bull get the process id of the JVM

bull get process information such as process id name and state

bull deal with process trees a means to destroy a process tree

bull Most enhancements added to Process and ProcessHandle classes

bull JEP 158 Unified JVM Logging

ndash Common logging for all of the JVM

ndash Log messages categorized using tags

bull JEP 271 Unified GC Logging

ndash GC logging using Unified JVM Logging

ndash If you have customized programs today that parse GC output these will likely be impacted

bull JEP 197 Segmented Code Cache

ndash Improved organization and maintenance of JIT compiled code (performance improvement)

bull Better instruction cache and instruction TLB behavior

hellip of significant interest

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Other JEPs

JEP 232 Improve Secure Application Performance

ndash Improved security manager performance

JEP 237 LinuxAArch64 Port

ndash JDK JRE for ARM Linux

JEP 254 Compact Strings

ndash Transparently optimize single byte char usage

CJUG presentation in February

JEP 280 Indify String Concatenation

ndash Optimize String concatenation

hellip of significant interest

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

HotSpot VM Improvements

Many performance improvements from the JEPs

ndash JEP 254 Compact Strings

ndash JEP 280 Indify String Concatenation

ndash JEP 197 Segmented Code Cache

ndash JEP 232 Improve Secure Application Performance

JIT compiler supporting enhanced instructions

ndash ie Intel AVX

G1 GC

ndash Continues to be GC area of enhancement investment

Performance performance performance

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

48

JDK 9 Outreach httpswikiopenjdkjavanetdisplayAdoptionJDK+9+OutreachJDK9Outreach-Introduction

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Test Java 9 ndash changes that may affect your code

JDK 9 changes that may affect your code - Added

ndash OCSP Stapling for TLS

ndash Multi-Release JAR Files

ndash Parser API for Nashorn

ndash Prepare JavaFX UI Controls amp CSS APIs for Modularization

ndash Validate JVM Command-Line Flag Arguments

ndash XML Catalogs

ndash Platform-Specific Desktop Features

ndash llbackDialogCallbackHandler

49

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Test Java 9 ndash changes that may affect your code

Changed

ndash ArraysasList(x)toArray() returns Object[]

ndash Create PKCS12 Keystores by Default

ndash HarfBuzz Font-Layout Engine

ndash Make G1 the Default Garbage Collector

ndash Marlin Graphics Renderer

ndash Modular Run-Time Images

ndash New Version-String Scheme

ndash Unified JVM Logging

ndash Use CLDR Locale Data by Default

ndash UTF-8 Property Files

50

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Test Java 9 ndash changes that may affect your code

Removed

ndash Remove GC Combinations Deprecated in JDK 8

ndash Remove Launch-Time JRE Version Selection

ndash Remove the JVM TI hprof Agent

ndash Remove the jhat Tool

ndash Removed API references to javaawtpeer and javaawtdndpeer packages

ndash Removed PackerUnpacker addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed LogManager addPropertyChangeListener and removePropertyChangeListener methods

ndash Removed comsunsecurityauthca

51

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

7) Participate in Hack Days ndash Have Fun

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

We need you

bullFollow the JCP online httpJCPorg

ndashJoin the JCP httpsjcporgenparticipationmembership

ndashTwitter jcp_org JCP

ndashblogsoraclecomjcp

ndashFacebook Java Community Process

bullAdopt-a-JSR online adoptajsrorg adoptajsr

ndashmembersadoptajsrjavanet - the global mailing list

ndashIRC adoptajsr channel on ircfreenodenet

ndashGitHub httpsgithubcomAdopt-a-JSR

53

If you want to go farhellip

54

If you want to go farhellip

54