SlideShare a Scribd company logo
1 of 31
Download to read offline
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 JavaC4Media
 
CISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentCISOA Conference 2020 Banner 9 Development
CISOA Conference 2020 Banner 9 DevelopmentBrad Rippe
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon 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 FelchGR8Conf
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectGreat 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 PlatformVMware 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 forksCommand Prompt., Inc
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still FreeSimon Ritter
 
Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10Migration Novaforge OW2 Conference Nov10
Migration Novaforge OW2 Conference Nov10OW2
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changingSimon Ritter
 
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 LiquibaseDan 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 6Jeffrey 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 ControlMarcus Hirt
 
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 MicroProfileKevin 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 JavaSimon Ritter
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware 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 PrimeFacesMert Çalışkan
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
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 JavaJamie 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 worldRoberto 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 - LinagoraLINAGORA
 
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 MicroservicesMarcus 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 DominoSerdar 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 meetupNitu 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

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

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