join the java evolution nyc

69
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Participate in the Future of Java Heather VanCura Email: [email protected] Twitter: @heathervc June 2016 NYC

Upload: heather-vancura

Post on 08-Feb-2017

79 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Join the Java Evolution NYC

Copyright copy 2014 Oracle andor its affiliates All rights reserved |

Participate in the Future of Java

Heather VanCura Email heatherjcporg

Twitter heathervc

June 2016 NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 2: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 3: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 4: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 5: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 6: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 7: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 8: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 9: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 10: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 11: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 12: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 13: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 14: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 15: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 16: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 17: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 18: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 19: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 20: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 21: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 22: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 23: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 24: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 25: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 26: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 27: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 28: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 29: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 30: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 31: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 32: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 33: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 34: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 35: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 36: Join the Java Evolution NYC

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

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 37: Join the Java Evolution NYC

The JCP is More Open Than Before

38

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 38: Join the Java Evolution NYC

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

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 39: Join the Java Evolution NYC

Working Together ndash JavaOne 2016 in September httpswwwyoutubecomwatchv=J5_MH5jCYh0

40

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 40: Join the Java Evolution NYC

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

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 41: Join the Java Evolution NYC

JUGs around the World

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 42: Join the Java Evolution NYC

43

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

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 43: Join the Java Evolution NYC

London Java Community

JSR 310 Date and Time API

JSR 335 Lambda Expressions

Myriad hack days talks and events organized

Use Cases

44

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 44: Join the Java Evolution NYC

45

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 45: Join the Java Evolution NYC

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

46

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 46: Join the Java Evolution NYC

47

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

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 47: Join the Java Evolution NYC

48

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 48: Join the Java Evolution NYC

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 49: Join the Java Evolution NYC

JSR example pageSR page example

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

50

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 50: Join the Java Evolution NYC

2) Communication Two Way Street

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 51: Join the Java Evolution NYC

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

52

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 52: Join the Java Evolution NYC

53

4) Enter activity in the matrix - Collaborate

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 53: Join the Java Evolution NYC

54

5) Follow Public Discussions amp Comment - Jira example

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 54: Join the Java Evolution NYC

5) How to Write a Bug - SSCCE

Short Self Contained Correct (Compilable) Example

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

Self Contained - Ensure everything is included ready to go

Correct - Copy paste (compile) see is the aim

Example - Displays the problem we are trying to solve

55

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 55: Join the Java Evolution NYC

56

6) Share - Add amp Use Resources on GitHub

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 56: Join the Java Evolution NYC

Participate in OpenJDK

57

bull 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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 57: Join the Java Evolution NYC

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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 58: Join the Java Evolution NYC

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 122

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 59: Join the Java Evolution NYC

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 60: Join the Java Evolution NYC

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 61: Join the Java Evolution NYC

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

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 62: Join the Java Evolution NYC

63

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 63: Join the Java Evolution NYC

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

64

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

65

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

66

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

68

If you want to go farhellip

69

Page 64: Join the Java Evolution NYC

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

65

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

66

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

68

If you want to go farhellip

69

Page 65: Join the Java Evolution NYC

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

66

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

68

If you want to go farhellip

69

Page 66: Join the Java Evolution NYC

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

68

If you want to go farhellip

69

Page 67: Join the Java Evolution NYC

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

68

If you want to go farhellip

69

Page 68: Join the Java Evolution NYC

If you want to go farhellip

69