SlideShare a Scribd company logo
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Contributing to Mission Control
The OpenJDK Project
Marcus Hirt
Consulting Member of Technical Staff
OMC
October, 2018
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Agenda
• Introduction to JDK Mission Control
• How to Contribute
– Process
– Tools and Techniques
– Resources
• Roadmap
• Q & A
2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Introduction to JMC
3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Introduction to JDK Mission Control
Mission Control is:
• A Production Time Profiling and Diagnostics Tools Suite
– A JMX console
– A visualizer of JDK Flight Recorder data (henceforth ”flight recordings”)
• Extensible with plug-ins
– Joverflow (hprof format dump analyzer)
• A set libraries to parse and analyse flight recordings
• Open Source! (2018-05-03)
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 5
JFR
Recording
Java Mission Control
Local JVM Process
Local JVM Process
Local JVM Process
Local JVM Process
Remote JVM
Processes
JFR
Recording
JFR
Recording
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 6
JMC Demos
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Where to get JDK Mission Control?
• Release of JDK Mission Control is planned to 2019-01-30
• But OpenJDK 11 contained the first open source version JFR, what to do?
à Working EA builds available here: http://jdk.java.net/jmc/ ß
7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
What About the Core Libraries?
Group: org.openjdk.jmc
Artifacts: common,
flightrecorder,
flightrecorder.rules,
flightrecorder.rules.jdk
Version: 7.0.0-SNAPSHOT
8
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>common</artifactId>
<version>${jmc.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>flightrecorder</artifactId>
<version>${jmc.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>flightrecorder.rules</artifactId>
<version>${jmc.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>flightrecorder.rules.jdk</artifactId>
<version>${jmc.version}</version>
</dependency>
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Contributing to OpenJDK JMC
9
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Processes
• JMC is an OpenJDK Project
– Follows the same basic processes in terms of roles and responsibilities
– Uses some of the same tools (Mercurial, webrev) for the main source repos
• Branching is slightly different to the JDK project
– Lazy-branching at Ramp Down Phase 2
• Ongoing development takes place in the main-line Mercurial repo
http://hg.openjdk.java.net/jmc/jmc/
10
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Experimenting with Development at GitHub
• JMC Flame Chart View in repo at GitHub
– Experiment - development of stand alone functionality at GitHub?
– Later include in main-line?
– Every contribution still requires OCA
11
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
First Contribution
• To contribute
– Must either sign an OCA (Oracle Contributor Agreement)…
– …or work for a company with a signed OCA
• Find something intersting to work on
– Discuss on the IRC (#jmc at OFTC)
– Join the mailinglist (jmc-dev)
– Search the bug database (JBS, project JMC, label ’polish’ good start)
12
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
First Contribution
• Discuss the intended change
– E-mail the jmc-dev list with subject <bugid>: <summary> ß preferred
– Discuss on the IRC
• Submit a patch
– The patch must be built and tested (Windows, Linux and Mac) before submission
– When ready, send a message to the jmc-dev
• Subject should be [PATCH] JMC-1234: Bug description
• A description of the change
• The code change (more on this later)
• A unit test, when applicable
13
Continued (1/2)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
First Contribution
• Work with your sponsor
– Find a JMC Committer to sponsor your change
– If a JMC Committer is found to sponsor the bug, that Committer will take ownership
of the bug
– The Committer will be responsible for first evaluation of the patch
• Review
– All code entering the JMC project will be reviewed (informal demand)
14
Continued (2/2)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Project Roles
• Becoming a Participant
– Someone who has subscribed to the jmc-dev list
• Participants can:
– Post messages to the dev-list
15
Participant
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Project Rules
• Becoming a Contributor
– Sign the OCA (or work for an organization with a signed OCA)
• Contributors can:
– Submit patches to the mailinglist
16
Contributor
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Project Roles
• Becoming an Author
– Have at least two sponsored contributions
– Likely to continue contributing in the future
– Any Contributor may request the Author role by contacting the JMC Project Lead
• Author perks
– An OpenJDK username
– Access to cr.openjdk.java.net for publishing patches (webrevs)
17
Author
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Project Roles
• Becoming a Committer
– Approved by Lazy Consensus by the project Committers
– As a rough guide, should have contributed 8 significant contributions
– Any Committer can nominate a Contributor or an Author to Committer
• Committer Perks
– Granted right to directly push change sets
18
Committer
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Current JMC People
• Lead
– Marcus Hirt
• Reviewers
– Erik Gahlin
– Erik Greijus
– Henrik Dafgård
– Klara Ward
– Ola Westin
– Per Kroon
• Committers
– David Buck
– Guru Hb
– Mario Torre
– Sharath Ballal
• Authors
– Joshua Matsuoka
– Mirosla Wengner
– Tejpal Rebari
– Deepa Avhad
19
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Tools
• Mercurial (SCM)
• Maven (3.5.3+)
• JDK 8 (for building the application)
20
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Mercurial
• Is not Git…
• …but is similar enough
• Getting the JMC main-line source:
hg clone http://hg.openjdk.java.net/jmc/jmc/
21
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Building JMC Core Libraries
• Core built with vanilla Maven
• Either mvn package or mvn install (to fulfil dependencies from other code,
such as the application)
22
>cd core
>mvn install
[INFO] Blah, blah, blah…
[INFO] BUILD SUCCESS
[INFO] ---------------------
[INFO] Total time: 01:12 min
[INFO] ---------------------
>
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Building the Application
• The application is built with Maven + Tycho
– Depends on the previously installed core modules
– Requires a local p2 repository to be built and run for the third party dependencies
23
>cd releng/thirdparty
>mvn clean package
>mvn p2:site
>mvn jetty:run
[INFO] Blah, blah, I am Jetty, blah, blah…
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 60
seconds.
>mvn clean package
[INFO] Downloading The Internet…
[INFO] Resolving ALL the bundles…
[INFO] Blah, blah, blah…
[INFO] BUILD SUCCESS
[INFO] ---------------------
[INFO] Total time: 02:02 min
[INFO] ---------------------
>
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Process for a Committer
24
Start Fixing
Bug/Enhancement
• (Discuss on the jmc-
dev list / IRC)
• Assign Bug in JBS
• Set bug to in progress
• (Discuss on the jmc-
dev list / IRC)
Post patch for
review
• ksh /usr/local/bin/webrev.ksh
-> webrev
• mv webrev ../webrevs/JMC-
1234/webrev.01
• rsync -avz JMC-1234
<openjdkid>@cr.openjdk.java.net:~/
• Post request to jmc-dev mailinglist
Push the
changes
• hg commit
(See the
commit
message
template)
• hg push
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Roadmap
• JMC 7
– GA release planned for 2019-01-30
– Support for Oracle JDK 7, 8, 9, 10, 11, support for OpenJDK 11
– New contributors, new stand alone release format, new build system (Maven +
Tycho), bug fixes, enhancements…
• JMC 7.1
– GA release planned for 2019-03-19
– Support for JDK 12
– Support for cipher events (visualization/rules)
– Enhancements to the Trace View (filtering, focus on methods etc)
– Improved overview visualization of all threads/events (behave more like 5.x)
25
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Roadmap, cont’d
• JMC 7.2
– GA release not decided, but likely September 2019
– JMC BCI agent
– Improved range navigator
– Better UI support for the OldObject sample event.
– FlameChart view (run at https://github.com/thegreystone/jmc-flame-view)
– Support for JDK 13
• JMC 8
– Support for JDK 14
– Being discussed with the community
26
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Support for Cipher
Events
Roadmap
Open Source JMC
Support for JDK11 Core on Maven
Central
Build and Release
updates
Streaming JFR
support?
Tighter IDE
Integration
Data Race
Detection
Flame Chart View
All the Events!
JMC Agent
Improved Thread
Visualization
JMC 7.0.0
(In development)
JMC 7.1.0
JDK 12
JMC 7.2.0
JDK 13
Integrated support
for JMC Agent
Future
On-Line Heap
Analysis
Agent Rules
Engine?
JMC 8.0.0
JDK 14
Differential Analysis Multi Process
Analysis
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The preceding is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Resources
• OpenJDK: http://openjdk.java.net/projects/jmc/
• My blog: http://hirt.se/blog
• Forum: http://oracle.com/missioncontrol (click Discussion)
• IRC: #jmc at OFTC (https://webchat.oftc.net/?nick=&channels=jmc)
• Dev list: http://mail.openjdk.java.net/mailman/listinfo/jmc-dev
• Twitter: @javamissionctrl, @hirt
• EA builds: http://jdk.java.net/jmc/
29
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Other JMC-/JFR-related Presentations
Day Time Title Location
Monday 10:30 Contributing to the Mission Control OpenJDK Project MW 2004
Tuesday 11:30 Three Productive Ways to Use Open Source Java Flight Recorder and
Java Mission Control
MW 2024
Tuesday 14:30 Fast and Furious: Java Flight Recorder and Flame Graphs MW 2020
Wednesday 10:30 Production-Time Profiling and Diagnostics on the JVM MW 2004
Wednesday 12:30 OpenJDK Mission Control: The Hands-on-Lab MW 2001A
Wednesday 16:30 Diagnose Your Microservices: OpenTracing/Oracle APM Cloud MW 2011
Thursday 11:00 Getting Started with the (Open Source) JDK Mission Control MW 2014
Thursday 12:30 Flight Recorder in OpenJDK MW 2018
30
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 31

More Related Content

What's hot

Project Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To JavaProject Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To Java
C4Media
 
CISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentCISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 Development
Brad Rippe
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
Simon Ritter
 
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan FelchGR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight Project
Great Wide Open
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Red Hat Developers
 
A Tour of the Modern Java Platform
A Tour of the Modern Java PlatformA Tour of the Modern Java Platform
A Tour of the Modern Java Platform
VMware Tanzu
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forks
Command Prompt., Inc
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
Simon Ritter
 
Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10OW2
 
OpenDaylight nluug_november
OpenDaylight nluug_novemberOpenDaylight nluug_november
OpenDaylight nluug_november
Christopher Price
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changing
Simon Ritter
 
Java modules
Java modulesJava modules
Java modules
Rory Preddy
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)
Bobby Curtis
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
Dan Stine
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Bartosz Chrabski
 
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
GlobalLogic Ukraine
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
Jeffrey West
 

What's hot (20)

Project Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To JavaProject Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To Java
 
CISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentCISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 Development
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan FelchGR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight Project
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
 
Java one2013
Java one2013Java one2013
Java one2013
 
A Tour of the Modern Java Platform
A Tour of the Modern Java PlatformA Tour of the Modern Java Platform
A Tour of the Modern Java Platform
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forks
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10
 
OpenDaylight nluug_november
OpenDaylight nluug_novemberOpenDaylight nluug_november
OpenDaylight nluug_november
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changing
 
Java modules
Java modulesJava modules
Java modules
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
 

Similar to Contributing to JDK Mission Control

Getting Started with JDK Mission Control
Getting Started with JDK Mission ControlGetting Started with JDK Mission Control
Getting Started with JDK Mission Control
Marcus Hirt
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Kevin Sutter
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for Java
Simon Ritter
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
David Buck
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
Mert Çalışkan
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
Wolfgang Weigend
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
Jamie Coleman
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Roberto Pérez Alcolea
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013Martin Fousek
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
GlobalLogic Ukraine
 
How to react: Chapter 1, The Beginning
How to react: Chapter 1, The Beginning How to react: Chapter 1, The Beginning
How to react: Chapter 1, The Beginning
Om Prakash
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
Marcus Hirt
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems
Aparna Gaonkar
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
 
Dev ops in the cloud use case and best practices meetup
Dev ops in the cloud use case and best practices   meetupDev ops in the cloud use case and best practices   meetup
Dev ops in the cloud use case and best practices meetup
Nitu Parimi
 

Similar to Contributing to JDK Mission Control (20)

Getting Started with JDK Mission Control
Getting Started with JDK Mission ControlGetting Started with JDK Mission Control
Getting Started with JDK Mission Control
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for Java
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
 
How to react: Chapter 1, The Beginning
How to react: Chapter 1, The Beginning How to react: Chapter 1, The Beginning
How to react: Chapter 1, The Beginning
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
Dev ops in the cloud use case and best practices meetup
Dev ops in the cloud use case and best practices   meetupDev ops in the cloud use case and best practices   meetup
Dev ops in the cloud use case and best practices meetup
 

Recently uploaded

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

Contributing to JDK Mission Control

  • 1. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Contributing to Mission Control The OpenJDK Project Marcus Hirt Consulting Member of Technical Staff OMC October, 2018
  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Agenda • Introduction to JDK Mission Control • How to Contribute – Process – Tools and Techniques – Resources • Roadmap • Q & A 2
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Introduction to JMC 3
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Introduction to JDK Mission Control Mission Control is: • A Production Time Profiling and Diagnostics Tools Suite – A JMX console – A visualizer of JDK Flight Recorder data (henceforth ”flight recordings”) • Extensible with plug-ins – Joverflow (hprof format dump analyzer) • A set libraries to parse and analyse flight recordings • Open Source! (2018-05-03) 4
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 5 JFR Recording Java Mission Control Local JVM Process Local JVM Process Local JVM Process Local JVM Process Remote JVM Processes JFR Recording JFR Recording
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 6 JMC Demos
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Where to get JDK Mission Control? • Release of JDK Mission Control is planned to 2019-01-30 • But OpenJDK 11 contained the first open source version JFR, what to do? à Working EA builds available here: http://jdk.java.net/jmc/ ß 7
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. What About the Core Libraries? Group: org.openjdk.jmc Artifacts: common, flightrecorder, flightrecorder.rules, flightrecorder.rules.jdk Version: 7.0.0-SNAPSHOT 8 <dependency> <groupId>org.openjdk.jmc</groupId> <artifactId>common</artifactId> <version>${jmc.version}</version> </dependency> <dependency> <groupId>org.openjdk.jmc</groupId> <artifactId>flightrecorder</artifactId> <version>${jmc.version}</version> </dependency> <dependency> <groupId>org.openjdk.jmc</groupId> <artifactId>flightrecorder.rules</artifactId> <version>${jmc.version}</version> </dependency> <dependency> <groupId>org.openjdk.jmc</groupId> <artifactId>flightrecorder.rules.jdk</artifactId> <version>${jmc.version}</version> </dependency>
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Contributing to OpenJDK JMC 9
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Processes • JMC is an OpenJDK Project – Follows the same basic processes in terms of roles and responsibilities – Uses some of the same tools (Mercurial, webrev) for the main source repos • Branching is slightly different to the JDK project – Lazy-branching at Ramp Down Phase 2 • Ongoing development takes place in the main-line Mercurial repo http://hg.openjdk.java.net/jmc/jmc/ 10
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Experimenting with Development at GitHub • JMC Flame Chart View in repo at GitHub – Experiment - development of stand alone functionality at GitHub? – Later include in main-line? – Every contribution still requires OCA 11
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. First Contribution • To contribute – Must either sign an OCA (Oracle Contributor Agreement)… – …or work for a company with a signed OCA • Find something intersting to work on – Discuss on the IRC (#jmc at OFTC) – Join the mailinglist (jmc-dev) – Search the bug database (JBS, project JMC, label ’polish’ good start) 12
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. First Contribution • Discuss the intended change – E-mail the jmc-dev list with subject <bugid>: <summary> ß preferred – Discuss on the IRC • Submit a patch – The patch must be built and tested (Windows, Linux and Mac) before submission – When ready, send a message to the jmc-dev • Subject should be [PATCH] JMC-1234: Bug description • A description of the change • The code change (more on this later) • A unit test, when applicable 13 Continued (1/2)
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. First Contribution • Work with your sponsor – Find a JMC Committer to sponsor your change – If a JMC Committer is found to sponsor the bug, that Committer will take ownership of the bug – The Committer will be responsible for first evaluation of the patch • Review – All code entering the JMC project will be reviewed (informal demand) 14 Continued (2/2)
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Project Roles • Becoming a Participant – Someone who has subscribed to the jmc-dev list • Participants can: – Post messages to the dev-list 15 Participant
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Project Rules • Becoming a Contributor – Sign the OCA (or work for an organization with a signed OCA) • Contributors can: – Submit patches to the mailinglist 16 Contributor
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Project Roles • Becoming an Author – Have at least two sponsored contributions – Likely to continue contributing in the future – Any Contributor may request the Author role by contacting the JMC Project Lead • Author perks – An OpenJDK username – Access to cr.openjdk.java.net for publishing patches (webrevs) 17 Author
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Project Roles • Becoming a Committer – Approved by Lazy Consensus by the project Committers – As a rough guide, should have contributed 8 significant contributions – Any Committer can nominate a Contributor or an Author to Committer • Committer Perks – Granted right to directly push change sets 18 Committer
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Current JMC People • Lead – Marcus Hirt • Reviewers – Erik Gahlin – Erik Greijus – Henrik Dafgård – Klara Ward – Ola Westin – Per Kroon • Committers – David Buck – Guru Hb – Mario Torre – Sharath Ballal • Authors – Joshua Matsuoka – Mirosla Wengner – Tejpal Rebari – Deepa Avhad 19
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Tools • Mercurial (SCM) • Maven (3.5.3+) • JDK 8 (for building the application) 20
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Mercurial • Is not Git… • …but is similar enough • Getting the JMC main-line source: hg clone http://hg.openjdk.java.net/jmc/jmc/ 21
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Building JMC Core Libraries • Core built with vanilla Maven • Either mvn package or mvn install (to fulfil dependencies from other code, such as the application) 22 >cd core >mvn install [INFO] Blah, blah, blah… [INFO] BUILD SUCCESS [INFO] --------------------- [INFO] Total time: 01:12 min [INFO] --------------------- >
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Building the Application • The application is built with Maven + Tycho – Depends on the previously installed core modules – Requires a local p2 repository to be built and run for the third party dependencies 23 >cd releng/thirdparty >mvn clean package >mvn p2:site >mvn jetty:run [INFO] Blah, blah, I am Jetty, blah, blah… [INFO] Started Jetty Server [INFO] Starting scanner at interval of 60 seconds. >mvn clean package [INFO] Downloading The Internet… [INFO] Resolving ALL the bundles… [INFO] Blah, blah, blah… [INFO] BUILD SUCCESS [INFO] --------------------- [INFO] Total time: 02:02 min [INFO] --------------------- >
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Process for a Committer 24 Start Fixing Bug/Enhancement • (Discuss on the jmc- dev list / IRC) • Assign Bug in JBS • Set bug to in progress • (Discuss on the jmc- dev list / IRC) Post patch for review • ksh /usr/local/bin/webrev.ksh -> webrev • mv webrev ../webrevs/JMC- 1234/webrev.01 • rsync -avz JMC-1234 <openjdkid>@cr.openjdk.java.net:~/ • Post request to jmc-dev mailinglist Push the changes • hg commit (See the commit message template) • hg push
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Roadmap • JMC 7 – GA release planned for 2019-01-30 – Support for Oracle JDK 7, 8, 9, 10, 11, support for OpenJDK 11 – New contributors, new stand alone release format, new build system (Maven + Tycho), bug fixes, enhancements… • JMC 7.1 – GA release planned for 2019-03-19 – Support for JDK 12 – Support for cipher events (visualization/rules) – Enhancements to the Trace View (filtering, focus on methods etc) – Improved overview visualization of all threads/events (behave more like 5.x) 25
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Roadmap, cont’d • JMC 7.2 – GA release not decided, but likely September 2019 – JMC BCI agent – Improved range navigator – Better UI support for the OldObject sample event. – FlameChart view (run at https://github.com/thegreystone/jmc-flame-view) – Support for JDK 13 • JMC 8 – Support for JDK 14 – Being discussed with the community 26
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Support for Cipher Events Roadmap Open Source JMC Support for JDK11 Core on Maven Central Build and Release updates Streaming JFR support? Tighter IDE Integration Data Race Detection Flame Chart View All the Events! JMC Agent Improved Thread Visualization JMC 7.0.0 (In development) JMC 7.1.0 JDK 12 JMC 7.2.0 JDK 13 Integrated support for JMC Agent Future On-Line Heap Analysis Agent Rules Engine? JMC 8.0.0 JDK 14 Differential Analysis Multi Process Analysis
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Resources • OpenJDK: http://openjdk.java.net/projects/jmc/ • My blog: http://hirt.se/blog • Forum: http://oracle.com/missioncontrol (click Discussion) • IRC: #jmc at OFTC (https://webchat.oftc.net/?nick=&channels=jmc) • Dev list: http://mail.openjdk.java.net/mailman/listinfo/jmc-dev • Twitter: @javamissionctrl, @hirt • EA builds: http://jdk.java.net/jmc/ 29
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Other JMC-/JFR-related Presentations Day Time Title Location Monday 10:30 Contributing to the Mission Control OpenJDK Project MW 2004 Tuesday 11:30 Three Productive Ways to Use Open Source Java Flight Recorder and Java Mission Control MW 2024 Tuesday 14:30 Fast and Furious: Java Flight Recorder and Flame Graphs MW 2020 Wednesday 10:30 Production-Time Profiling and Diagnostics on the JVM MW 2004 Wednesday 12:30 OpenJDK Mission Control: The Hands-on-Lab MW 2001A Wednesday 16:30 Diagnose Your Microservices: OpenTracing/Oracle APM Cloud MW 2011 Thursday 11:00 Getting Started with the (Open Source) JDK Mission Control MW 2014 Thursday 12:30 Flight Recorder in OpenJDK MW 2018 30
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 31