participate in the future of java -...

70
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Participate in the Future of Java Heather VanCura [email protected] Twitter @heathervc Baltimore/DC/Philly May 2016

Upload: dinhcong

Post on 17-Apr-2018

221 views

Category:

Documents


3 download

TRANSCRIPT

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Participate in the Future of Java

Heather VanCura heatherjcporg

Twitter heathervc

BaltimoreDCPhilly

May 2016

What Runs Java

3

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Scalable amp Secure

5

Compatible

6

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

What Runs Java

3

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Scalable amp Secure

5

Compatible

6

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

4

9 Million Java developers

3 Billion devices

1 Choice for developers

1 Development platform

Ubiquitous

Scalable amp Secure

5

Compatible

6

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Scalable amp Secure

5

Compatible

6

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Compatible

6

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Collaboratively Developed - Community

7

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

History

bull1995 Sun Microsystems develops Java

9

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

History

bull1995 Sun Microsystems develops Java

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

10

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

History

bull1995 Sun Microsystems develops Java

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

bull2006 Sun open-sources Java

11

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

12

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

13

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

14

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Organization

15

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

bull

16

Who Are The Members

httpsjcporgenparticipationmembership

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

The Executive Committee

17

bull Corporations bull Non-ProfitsOpen

Source bull Java User Groups bull Individual

Developers

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Work of the JCP ndash How We Do It

bull Java Specification Requests (JSRs)

bull A JSR is a single version of a Java specification

bull JSRs are led by a community member (the Spec Lead) with a group of interested members (the Expert Group) helping with the day-to-day decisions and work

bull Any JCP member can submit and lead a JSR

bull Each Expert Group must deliver

bull The Specification

bull A Reference Implementation (RI)

bull A Technology Compatibility Kit (TCK)

bull 18

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Compatibility Triangle

Can you build an implementation

Is the specification unambiguous

Is the TCK correct Does the RI conform

19

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

20

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

How else can you get involved

bullShare ideas and feedback comment on list and public issue trackers

bullRead early versions of specifications and Javadocs

bullTry writing sample applications using early builds of reference implementation

bullWrite or speak about the technology and encourage others to participate Translate into your native language

Evangelize the JSR -social media blogging or lightning talks

Help with documentation

bull 21

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

How Open Standards amp Open Source

22

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Complimentary bullOpen source important requirement So are Standards

bull Coop-etition Agree on what to standardize (cooperation) amp what to complete on (implementations)

bullOpen standards implemented in open source = easier to implement standard amp for developers to understand technology

bull Results in more implementations and greater adoption of the standard

bullAn effective way to develop a standard-start with an open source project that has demonstrated the need for standardization

bull 23

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

24

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Click icon to add picture

Why Participate

1 Knowledge 2 Skills 3 Visibility 4 Altruism 5 Fun

25

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

26

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

27

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Java EE 7 (JSR 342) ndash May 2013

28

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

29

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Java SE 8 JSR 337 - March 2014

30

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Java 8 Adoption

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JCPnext Changing the Constitution

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JCPnext (JSR 348)

33

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JCPnext (JSR 355)

34

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JCPnext4 (JSR 364) JCPnext (JSR 364)

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

36

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

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

37

Associate Members are individuals who can contribute to JSRs and vote for the Executive Committee

Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee

Full Members can serve on Expert Groups lead JSRs serve on and vote for the Executive Committee

Memberships

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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 38

Use the Process to Change the Process

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

The JCP is More Open Than Before

39

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

41

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JUGs around the World

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

44

Chennai JUG

JSR 338 Java Persistence 21

JSR 344 JSF 22

JSR 352 Batch

JSR 353 JSON

JSR 356 WebSocket

Developed sample lsquoUrban Travelerrsquo application

Use Cases

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

45

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

46

BeJUG (Belgium)

JSR 356 Java API for WebSocket

Hack day (s)

Developed Tic-Tac-Toe game Included in Java EE 7 SDK

Use Cases

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

47

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

48

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

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

49

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

JSR example pageSR page example

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

51

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

2) Communication Two Way Street

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Java EE JSRs 3) Decide on Steps Java EE Adopt-a-JSR

53

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

54

4) Enter activity in the matrix - Collaborate

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

55

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

5) How to Write a Bug - SSCE

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

56

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

57

6) Share - Add amp Use Resources on GitHub

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

Participate in Adopt OpenJDK

58

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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 116

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

64

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

65

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

66

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

67

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

69

If you want to go farhellip

70

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

66

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

67

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

69

If you want to go farhellip

70

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

67

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

69

If you want to go farhellip

70

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

69

If you want to go farhellip

70

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

69

If you want to go farhellip

70

If you want to go farhellip

70