From aptmac at openjdk.org Wed Nov 1 02:30:39 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 1 Nov 2023 02:30:39 GMT Subject: RFR: 7449: Add GitHub action to verify copyright year Message-ID: This PR looks to address JMC-7449 [[0]](https://bugs.openjdk.org/browse/JMC-7449), in which it'd be nice to have a GitHub action that checks the copyright year of changed files (useful for PR reviews). I've added a `check_copyright_year` job to the github workflow, that checks out the repository and then runs a bash script. This bash script lives alongside the `updatecopyrightyear.sh` script and other build-related scripts in `/scripts`. By using `fetch-depth: 0` on the workflow job, we're able to do a git diff against origin/master to get a list of all files that have been altered in a given PR. From there it does a similar file extension check to what `updatecopyrightyear.sh` does, and then uses sed to get the "latest" copyright years (there can be multiple if the header has multiple company names). It compares those years to the current year, and if there is not a match then it prints out the filename to the console and increases a counter that gets printed out when the script returns 1. I made a quick test commit ([link](https://github.com/aptmac/jmc/commit/d854e14109d775a8228d729c099463ac8b3a6b8a)) that changed a handful of files without updating their headers, the GH workflow can be found here: https://github.com/aptmac/jmc/actions/runs/6712104409/job/18240941002 Example of what the workflow looks like: Run ./scripts/checkcopyrightyear.sh Requires update: agent/src/main/java/org/openjdk/jmc/agent/impl/MalformedConverterException.java Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java Requires update: application/org.openjdk.jmc.browser/pom.xml Requires update: application/org.openjdk.jmc.browser/src/main/java/org/openjdk/jmc/browser/JVMBrowserPlugin.java Requires update: application/org.openjdk.jmc.docs/html/toc.htm Requires update: application/org.openjdk.jmc.rjmx/build.properties There is a total of 7 copyright year(s) that require updating. Error: Process completed with exit code 1. [0] https://bugs.openjdk.org/browse/JMC-7449 ------------- Commit messages: - 7449: Add GitHub action to verify copyright year Changes: https://git.openjdk.org/jmc/pull/530/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=530&range=00 Issue: https://bugs.openjdk.org/browse/JMC-7449 Stats: 39 lines in 2 files changed: 39 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jmc/pull/530.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/530/head:pull/530 PR: https://git.openjdk.org/jmc/pull/530 From jmatsuoka at openjdk.org Wed Nov 1 20:28:36 2023 From: jmatsuoka at openjdk.org (Joshua Matsuoka) Date: Wed, 1 Nov 2023 20:28:36 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: > This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. > > This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . > > [0] https://bugs.openjdk.java.net/browse/JMC-7307 Joshua Matsuoka has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: - Merging changes from upstream - Import cleanup - Running spotless - Removing extraneous merge artifacts - Merge remote-tracking branch 'upstream/master' into 7307 - running spotlesS - Fixing merge conflicts - Merge remote-tracking branch 'upstream/master' into 7307 - Fixing manifest - Fixing visibility of XML classes - ... and 14 more: https://git.openjdk.org/jmc/compare/b0d11227...7904676a ------------- Changes: https://git.openjdk.org/jmc/pull/469/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=469&range=06 Stats: 1066 lines in 106 files changed: 326 ins; 560 del; 180 mod Patch: https://git.openjdk.org/jmc/pull/469.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/469/head:pull/469 PR: https://git.openjdk.org/jmc/pull/469 From vpurnam at openjdk.org Thu Nov 2 04:20:14 2023 From: vpurnam at openjdk.org (Virag Purnam) Date: Thu, 2 Nov 2023 04:20:14 GMT Subject: RFR: 8129: Add tool to simplify platform upgrades [v2] In-Reply-To: References: Message-ID: On Wed, 25 Oct 2023 16:57:53 GMT, Marcus Hirt wrote: >> Getting the versions needed from the eclipse update site. Can make something more out of this at a later point. > > Marcus Hirt has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: > > - Merge branch 'master' into 8129-upgrade-tool > - Copyright and import cleanup > - 8129: Add tool to simplify platform upgrades Marked as reviewed by vpurnam (Committer). ------------- PR Review: https://git.openjdk.org/jmc/pull/524#pullrequestreview-1709421870 From aptmac at openjdk.org Fri Nov 3 17:42:19 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Fri, 3 Nov 2023 17:42:19 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: On Wed, 1 Nov 2023 20:28:36 GMT, Joshua Matsuoka wrote: >> This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. >> >> This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . >> >> [0] https://bugs.openjdk.java.net/browse/JMC-7307 > > Joshua Matsuoka has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: > > - Merging changes from upstream > - Import cleanup > - Running spotless > - Removing extraneous merge artifacts > - Merge remote-tracking branch 'upstream/master' into 7307 > - running spotlesS > - Fixing merge conflicts > - Merge remote-tracking branch 'upstream/master' into 7307 > - Fixing manifest > - Fixing visibility of XML classes > - ... and 14 more: https://git.openjdk.org/jmc/compare/b0d11227...7904676a Looks like there was some weird behaviour when these tests were run. @thegreystone are we able to re-spin this? This should be ready for review at this point now that the merge-conflicts are handled. It looks like linux/mac spent 5 hours trying to resolve dependencies, and windows did a full thread dump ([link](https://github.com/Josh-Matsuoka/jmc/actions/runs/6724712273/job/18277558151#step:7:21)). ------------- PR Comment: https://git.openjdk.org/jmc/pull/469#issuecomment-1792869027 From aptmac at openjdk.org Sun Nov 5 15:20:13 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Sun, 5 Nov 2023 15:20:13 GMT Subject: RFR: 6627: Bring bundles to core Message-ID: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. I still have to go back and cleanup some of the license headers, but wanted to get this PR on the radar. [0] https://bugs.openjdk.org/browse/JMC-6627 [1] https://github.com/openjdk/jmc/pull/469 [2] https://bugs.openjdk.org/browse/JMC-7307 [3] https://bugs.openjdk.org/browse/JMC-7069 [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 ------------- Commit messages: - Update license headers - Restore rjmx.services.jfr Messages.java - 6627: Bring bundles to core - 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core Changes: https://git.openjdk.org/jmc/pull/531/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=531&range=00 Issue: https://bugs.openjdk.org/browse/JMC-6627 Stats: 14583 lines in 556 files changed: 6793 ins; 6548 del; 1242 mod Patch: https://git.openjdk.org/jmc/pull/531.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/531/head:pull/531 PR: https://git.openjdk.org/jmc/pull/531 From aptmac at openjdk.org Mon Nov 6 14:22:49 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Mon, 6 Nov 2023 14:22:49 GMT Subject: RFR: 6627: Bring bundles to core [v2] In-Reply-To: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> References: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> Message-ID: > This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). > > While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. > > As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. > > There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. > > [0] https://bugs.openjdk.org/browse/JMC-6627 > [1] https://github.com/openjdk/jmc/pull/469 > [2] https://bugs.openjdk.org/browse/JMC-7307 > [3] https://bugs.openjdk.org/browse/JMC-7069 > [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f > [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 Alex Macdonald has updated the pull request incrementally with one additional commit since the last revision: Fix typo in license header ------------- Changes: - all: https://git.openjdk.org/jmc/pull/531/files - new: https://git.openjdk.org/jmc/pull/531/files/bea98df4..417fb84f Webrevs: - full: https://webrevs.openjdk.org/?repo=jmc&pr=531&range=01 - incr: https://webrevs.openjdk.org/?repo=jmc&pr=531&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jmc/pull/531.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/531/head:pull/531 PR: https://git.openjdk.org/jmc/pull/531 From aptmac at openjdk.org Wed Nov 8 01:01:29 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 8 Nov 2023 01:01:29 GMT Subject: RFR: 6627: Bring bundles to core [v3] In-Reply-To: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> References: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> Message-ID: > This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). > > While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. > > As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. > > There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. > > [0] https://bugs.openjdk.org/browse/JMC-6627 > [1] https://github.com/openjdk/jmc/pull/469 > [2] https://bugs.openjdk.org/browse/JMC-7307 > [3] https://bugs.openjdk.org/browse/JMC-7069 > [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f > [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 Alex Macdonald has updated the pull request incrementally with three additional commits since the last revision: - Remove duplication of MRITransformationToolkit - Remove flightrecorder.configuration from application/coverage - Fix typo in SyntheticRepositoryInitializer function ------------- Changes: - all: https://git.openjdk.org/jmc/pull/531/files - new: https://git.openjdk.org/jmc/pull/531/files/417fb84f..f6db2f53 Webrevs: - full: https://webrevs.openjdk.org/?repo=jmc&pr=531&range=02 - incr: https://webrevs.openjdk.org/?repo=jmc&pr=531&range=01-02 Stats: 427 lines in 10 files changed: 139 ins; 280 del; 8 mod Patch: https://git.openjdk.org/jmc/pull/531.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/531/head:pull/531 PR: https://git.openjdk.org/jmc/pull/531 From vpurnam at openjdk.org Wed Nov 8 05:56:43 2023 From: vpurnam at openjdk.org (Virag Purnam) Date: Wed, 8 Nov 2023 05:56:43 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 Message-ID: Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. So, we should use the jetty 10.0.17. ------------- Commit messages: - 8145: Upgrade Jetty to version 10.0.17 Changes: https://git.openjdk.org/jmc/pull/532/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=532&range=00 Issue: https://bugs.openjdk.org/browse/JMC-8145 Stats: 13 lines in 4 files changed: 0 ins; 0 del; 13 mod Patch: https://git.openjdk.org/jmc/pull/532.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/532/head:pull/532 PR: https://git.openjdk.org/jmc/pull/532 From aptmac at openjdk.org Wed Nov 8 15:15:16 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 8 Nov 2023 15:15:16 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 In-Reply-To: References: Message-ID: On Wed, 8 Nov 2023 05:50:06 GMT, Virag Purnam wrote: > Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. > > Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) > [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) > [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) > [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) > [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) > [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) > [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) > [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) > [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) > > Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. > So, we should use the jetty 10.0.17. Looks good to me. Just curious about the 2022-09 platform. It's still included, but is pretty old at this point. If we're not going to update it, it's probably time to remove it. Or did you want to update the jetty versions for that target as well? (It will also need a spifly version bump) ------------- PR Review: https://git.openjdk.org/jmc/pull/532#pullrequestreview-1720604288 From vpurnam at openjdk.org Wed Nov 8 18:53:26 2023 From: vpurnam at openjdk.org (Virag Purnam) Date: Wed, 8 Nov 2023 18:53:26 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 [v2] In-Reply-To: References: Message-ID: > Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. > > Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) > [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) > [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) > [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) > [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) > [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) > [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) > [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) > [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) > > Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. > So, we should use the jetty 10.0.17. Virag Purnam has updated the pull request incrementally with one additional commit since the last revision: 8145: Upgrade Jetty to version 10.0.17 ------------- Changes: - all: https://git.openjdk.org/jmc/pull/532/files - new: https://git.openjdk.org/jmc/pull/532/files/71c94f5c..a1437df6 Webrevs: - full: https://webrevs.openjdk.org/?repo=jmc&pr=532&range=01 - incr: https://webrevs.openjdk.org/?repo=jmc&pr=532&range=00-01 Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod Patch: https://git.openjdk.org/jmc/pull/532.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/532/head:pull/532 PR: https://git.openjdk.org/jmc/pull/532 From hirt at openjdk.org Wed Nov 8 18:57:13 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Wed, 8 Nov 2023 18:57:13 GMT Subject: Integrated: 8129: Add tool to simplify platform upgrades In-Reply-To: References: Message-ID: <1jc0NDYJT_fKNnYr12SckSG-24Pb0VUSbW6ya3Rvcig=.326742a2-8743-4ce8-b1ac-efec924f5fb0@github.com> On Sat, 14 Oct 2023 23:03:51 GMT, Marcus Hirt wrote: > Getting the versions needed from the eclipse update site. Can make something more out of this at a later point. This pull request has now been integrated. Changeset: 0d0df70a Author: Marcus Hirt URL: https://git.openjdk.org/jmc/commit/0d0df70a277c2373894758d6695a97b44a71e6f8 Stats: 142 lines in 3 files changed: 142 ins; 0 del; 0 mod 8129: Add tool to simplify platform upgrades Reviewed-by: aptmac, vpurnam ------------- PR: https://git.openjdk.org/jmc/pull/524 From aptmac at openjdk.org Wed Nov 8 18:57:13 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 8 Nov 2023 18:57:13 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 [v2] In-Reply-To: References: Message-ID: On Wed, 8 Nov 2023 18:53:26 GMT, Virag Purnam wrote: >> Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. >> >> Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) >> [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) >> [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) >> [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) >> [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) >> [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) >> [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) >> [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) >> [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) >> >> Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. >> So, we should use the jetty 10.0.17. > > Virag Purnam has updated the pull request incrementally with one additional commit since the last revision: > > 8145: Upgrade Jetty to version 10.0.17 Marked as reviewed by aptmac (Reviewer). ------------- PR Review: https://git.openjdk.org/jmc/pull/532#pullrequestreview-1721060282 From vpurnam at openjdk.org Wed Nov 8 18:57:14 2023 From: vpurnam at openjdk.org (Virag Purnam) Date: Wed, 8 Nov 2023 18:57:14 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 [v2] In-Reply-To: References: Message-ID: On Wed, 8 Nov 2023 15:12:45 GMT, Alex Macdonald wrote: > Looks good to me. > > Just curious about the 2022-09 platform. It's still included, but is pretty old at this point. If we're not going to update it, it's probably time to remove it. Or did you want to update the jetty versions for that target as well? (It will also need a spifly version bump) Hi @aptmac, Thanks for looking into this. I missed to update 2022-09 platform. I have updated the jetty and spifly version for 2022-09 platform. ------------- PR Comment: https://git.openjdk.org/jmc/pull/532#issuecomment-1802469966 From aptmac at openjdk.org Wed Nov 8 20:03:14 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 8 Nov 2023 20:03:14 GMT Subject: RFR: 6627: Bring bundles to core [v3] In-Reply-To: References: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> Message-ID: On Wed, 8 Nov 2023 01:01:29 GMT, Alex Macdonald wrote: >> This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). >> >> While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. >> >> As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. >> >> There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. >> >> [0] https://bugs.openjdk.org/browse/JMC-6627 >> [1] https://github.com/openjdk/jmc/pull/469 >> [2] https://bugs.openjdk.org/browse/JMC-7307 >> [3] https://bugs.openjdk.org/browse/JMC-7069 >> [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f >> [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 > > Alex Macdonald has updated the pull request incrementally with three additional commits since the last revision: > > - Remove duplication of MRITransformationToolkit > - Remove flightrecorder.configuration from application/coverage > - Fix typo in SyntheticRepositoryInitializer function After my last couple commits to do some cleanup, I think this PR should be ready for review. Unit tests come back okay, and uitests are also okay (with the exception of the failure tracked by JMC-8114). ------------- PR Comment: https://git.openjdk.org/jmc/pull/531#issuecomment-1802564662 From bdutheil at openjdk.org Thu Nov 9 10:05:23 2023 From: bdutheil at openjdk.org (Brice Dutheil) Date: Thu, 9 Nov 2023 10:05:23 GMT Subject: RFR: 8145: Upgrade Jetty to version 10.0.17 [v2] In-Reply-To: References: Message-ID: On Wed, 8 Nov 2023 18:53:26 GMT, Virag Purnam wrote: >> Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. >> >> Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) >> [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) >> [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) >> [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) >> [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) >> [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) >> [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) >> [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) >> [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) >> >> Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. >> So, we should use the jetty 10.0.17. > > Virag Purnam has updated the pull request incrementally with one additional commit since the last revision: > > 8145: Upgrade Jetty to version 10.0.17 LGTM ------------- Marked as reviewed by bdutheil (Author). PR Review: https://git.openjdk.org/jmc/pull/532#pullrequestreview-1722167798 From schaturvedi at openjdk.org Mon Nov 13 21:23:17 2023 From: schaturvedi at openjdk.org (Suchita Chaturvedi) Date: Mon, 13 Nov 2023 21:23:17 GMT Subject: RFR: 5560: Support new nio events in JDK 10. Message-ID: This PR addresses the enhancement request of missing event File Force. 1. A new rule File Force has been added to the "Automated Analysis Page", Under Java Application -> File I/O. image 2. "File I/O" screen is updated to accomodate values for the new event. There are two new columns added - Force Count, Update Metadata. Both these columns are hidden by default and user need to make them visible by right clicking the header of the table. Also the corresponding chart for File Force Event has been introduced. image 3. There is a new preference/configuration introduced for the File Force Rule. image ------------- Commit messages: - 5560: Support new nio events in JDK 10. Changes: https://git.openjdk.org/jmc/pull/533/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=533&range=00 Issue: https://bugs.openjdk.org/browse/JMC-5560 Stats: 335 lines in 15 files changed: 333 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jmc/pull/533.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/533/head:pull/533 PR: https://git.openjdk.org/jmc/pull/533 From vpurnam at openjdk.org Tue Nov 14 04:38:40 2023 From: vpurnam at openjdk.org (Virag Purnam) Date: Tue, 14 Nov 2023 04:38:40 GMT Subject: Integrated: 8145: Upgrade Jetty to version 10.0.17 In-Reply-To: References: Message-ID: On Wed, 8 Nov 2023 05:50:06 GMT, Virag Purnam wrote: > Default jetty with Eclipse 4.29 is 10.0.15. But this version of jetty has some vulnerabilities mentioned below. > > Vulnerabilities: ([jetty-project_10.0.15](https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-project/10.0.15)) > [CVE-2023-42503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42503) > [CVE-2023-41900](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41900) > [CVE-2023-40167](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40167) > [CVE-2023-39410](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39410) > [CVE-2023-36479](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36479) > [CVE-2023-36478](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-36478) > [CVE-2023-2976](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2976) > [CVE-2020-8908](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908) > > Vulnerabilities have been fixed in 10.0.17. Currently JMC is using 10.0.12. > So, we should use the jetty 10.0.17. This pull request has now been integrated. Changeset: 2a076d22 Author: Virag Purnam URL: https://git.openjdk.org/jmc/commit/2a076d2217920f6b4517a8bf2d9182f6fabcd9a7 Stats: 18 lines in 5 files changed: 0 ins; 0 del; 18 mod 8145: Upgrade Jetty to version 10.0.17 Reviewed-by: aptmac, bdutheil ------------- PR: https://git.openjdk.org/jmc/pull/532 From hirt at openjdk.org Fri Nov 17 21:24:43 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Fri, 17 Nov 2023 21:24:43 GMT Subject: RFR: 7192: Event browser should be able to search and show event type ids In-Reply-To: <5v3F608JwubGg8bJoswdkEMyOzvrYqo9bnI7G_e8IPk=.2ef93879-548b-4f36-93a4-b2314c48978d@github.com> References: <5v3F608JwubGg8bJoswdkEMyOzvrYqo9bnI7G_e8IPk=.2ef93879-548b-4f36-93a4-b2314c48978d@github.com> Message-ID: <_wLpPtM3ZfGm4Ta0jDNWuwpNkeGDBh0-79h2bwPIV80=.5ba7fb08-3cd1-4337-8cf1-898a82a104bc@github.com> On Mon, 30 Oct 2023 13:25:58 GMT, Alex Macdonald wrote: > This PR addresses JMC-7192 [[0]](https://bugs.openjdk.org/browse/JMC-7192), in which it'd be nice to be able to search by event type ids in the event browser. > > At the moment, the filter is acting on the strings of each label in the event browser tree, which contains the name of the event and the number of entries it has. This PR updates `matches()` to include a check to see if it's of type `EventTypeNode`, and if so, include the event identifier as well. > > JMC-7192 also mentions that there should be a column for type id (hidden by default), which now happens as well. > > Before: > ![before](https://github.com/openjdk/jmc/assets/10425301/c5816504-3a22-4337-bc26-e4b46543bcc4) > > After: > ![after](https://github.com/openjdk/jmc/assets/10425301/3d1d1b59-4906-4029-a511-f40a32f1c9a6) > > [0] https://bugs.openjdk.org/browse/JMC-7192 Marked as reviewed by hirt (Lead). ------------- PR Review: https://git.openjdk.org/jmc/pull/527#pullrequestreview-1737952547 From hirt at openjdk.org Fri Nov 17 21:31:45 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Fri, 17 Nov 2023 21:31:45 GMT Subject: RFR: 8144: Add rule to detect GC Inverted Parallelism In-Reply-To: References: Message-ID: On Mon, 30 Oct 2023 15:11:48 GMT, Alex Macdonald wrote: > This PR addresses JMC-8144 [[0]](https://bugs.openjdk.org/browse/JMC-8144). There is a GC log analysis tool called Garbagecat [[1]](https://github.com/mgm3746/garbagecat/tree/main), which operates on GC logs and identifies performance issues and suggests potential solutions (similar to our automated analysis page). One metric Garbagecat flags is **"inverted parallelism"**, which takes a look at the sys+usr time of a parallel GC and compares it against the real (wall) time. If the parallelism is low, this can indicate that the parallel gc is operating at the efficiency of serial gc, and there could be room for improvement. This GC time information is now included in the jdk.GCCPUTime event added in JDK20+. > > This PR requires support for the jdk.GCCPUTime event [[2]](https://bugs.openjdk.org/browse/JDK-8291753), so it also doubles as a PR towards JMC-7895 [[3]](https://bugs.openjdk.org/browse/JMC-7895). > > [0] https://bugs.openjdk.org/browse/JMC-8144 > [1] https://github.com/mgm3746/garbagecat/tree/main > [2] https://bugs.openjdk.org/browse/JDK-8291753 > [3] https://bugs.openjdk.org/browse/JMC-7895 Looks good. Perhaps a JDK 20 recording should be added to the tests so that some of the rule code is exercised? ------------- PR Comment: https://git.openjdk.org/jmc/pull/528#issuecomment-1817131173 From hirt at openjdk.org Fri Nov 17 21:37:45 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Fri, 17 Nov 2023 21:37:45 GMT Subject: RFR: 7449: Add GitHub action to verify copyright year In-Reply-To: References: Message-ID: On Wed, 1 Nov 2023 02:24:20 GMT, Alex Macdonald wrote: > This PR looks to address JMC-7449 [[0]](https://bugs.openjdk.org/browse/JMC-7449), in which it'd be nice to have a GitHub action that checks the copyright year of changed files (useful for PR reviews). > > I've added a `check_copyright_year` job to the github workflow, that checks out the repository and then runs a bash script. This bash script lives alongside the `updatecopyrightyear.sh` script and other build-related scripts in `/scripts`. By using `fetch-depth: 0` on the workflow job, we're able to do a git diff against origin/master to get a list of all files that have been altered in a given PR. From there it does a similar file extension check to what `updatecopyrightyear.sh` does, and then uses sed to get the "latest" copyright years (there can be multiple if the header has multiple company names). It compares those years to the current year, and if there is not a match then it prints out the filename to the console and increases a counter that gets printed out when the script returns 1. > > I made a quick test commit ([link](https://github.com/aptmac/jmc/commit/d854e14109d775a8228d729c099463ac8b3a6b8a)) that changed a handful of files without updating their headers, the GH workflow can be found here: https://github.com/aptmac/jmc/actions/runs/6712104409/job/18240941002 > Example of what the workflow looks like: > > Run ./scripts/checkcopyrightyear.sh > Requires update: agent/src/main/java/org/openjdk/jmc/agent/impl/MalformedConverterException.java > Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java > Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java > Requires update: application/org.openjdk.jmc.browser/pom.xml > Requires update: application/org.openjdk.jmc.browser/src/main/java/org/openjdk/jmc/browser/JVMBrowserPlugin.java > Requires update: application/org.openjdk.jmc.docs/html/toc.htm > Requires update: application/org.openjdk.jmc.rjmx/build.properties > There is a total of 7 copyright year(s) that require updating. > Error: Process completed with exit code 1. > > > > [0] https://bugs.openjdk.org/browse/JMC-7449 An improvement could be to check for having the mandatory copyright header for new files. ------------- Marked as reviewed by hirt (Lead). PR Review: https://git.openjdk.org/jmc/pull/530#pullrequestreview-1737968602 From aptmac at openjdk.org Mon Nov 20 14:57:08 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Mon, 20 Nov 2023 14:57:08 GMT Subject: Integrated: 7192: Event browser should be able to search and show event type ids In-Reply-To: <5v3F608JwubGg8bJoswdkEMyOzvrYqo9bnI7G_e8IPk=.2ef93879-548b-4f36-93a4-b2314c48978d@github.com> References: <5v3F608JwubGg8bJoswdkEMyOzvrYqo9bnI7G_e8IPk=.2ef93879-548b-4f36-93a4-b2314c48978d@github.com> Message-ID: On Mon, 30 Oct 2023 13:25:58 GMT, Alex Macdonald wrote: > This PR addresses JMC-7192 [[0]](https://bugs.openjdk.org/browse/JMC-7192), in which it'd be nice to be able to search by event type ids in the event browser. > > At the moment, the filter is acting on the strings of each label in the event browser tree, which contains the name of the event and the number of entries it has. This PR updates `matches()` to include a check to see if it's of type `EventTypeNode`, and if so, include the event identifier as well. > > JMC-7192 also mentions that there should be a column for type id (hidden by default), which now happens as well. > > Before: > ![before](https://github.com/openjdk/jmc/assets/10425301/c5816504-3a22-4337-bc26-e4b46543bcc4) > > After: > ![after](https://github.com/openjdk/jmc/assets/10425301/3d1d1b59-4906-4029-a511-f40a32f1c9a6) > > [0] https://bugs.openjdk.org/browse/JMC-7192 This pull request has now been integrated. Changeset: d734567f Author: Alex Macdonald URL: https://git.openjdk.org/jmc/commit/d734567f0786a266ad57ece5e6541995f2c2e114 Stats: 7 lines in 2 files changed: 5 ins; 0 del; 2 mod 7192: Event browser should be able to search and show event type ids Reviewed-by: hirt ------------- PR: https://git.openjdk.org/jmc/pull/527 From aptmac at openjdk.org Mon Nov 20 18:24:06 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Mon, 20 Nov 2023 18:24:06 GMT Subject: RFR: 8144: Add rule to detect GC Inverted Parallelism [v2] In-Reply-To: References: Message-ID: > This PR addresses JMC-8144 [[0]](https://bugs.openjdk.org/browse/JMC-8144). There is a GC log analysis tool called Garbagecat [[1]](https://github.com/mgm3746/garbagecat/tree/main), which operates on GC logs and identifies performance issues and suggests potential solutions (similar to our automated analysis page). One metric Garbagecat flags is **"inverted parallelism"**, which takes a look at the sys+usr time of a parallel GC and compares it against the real (wall) time. If the parallelism is low, this can indicate that the parallel gc is operating at the efficiency of serial gc, and there could be room for improvement. This GC time information is now included in the jdk.GCCPUTime event added in JDK20+. > > This PR requires support for the jdk.GCCPUTime event [[2]](https://bugs.openjdk.org/browse/JDK-8291753), so it also doubles as a PR towards JMC-7895 [[3]](https://bugs.openjdk.org/browse/JMC-7895). > > [0] https://bugs.openjdk.org/browse/JMC-8144 > [1] https://github.com/mgm3746/garbagecat/tree/main > [2] https://bugs.openjdk.org/browse/JDK-8291753 > [3] https://bugs.openjdk.org/browse/JMC-7895 Alex Macdonald has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: - Add jdk21 recordings for rules.jdk test - 8144: Add rule to detect GC Inverted Parallelism ------------- Changes: https://git.openjdk.org/jmc/pull/528/files Webrev: https://webrevs.openjdk.org/?repo=jmc&pr=528&range=01 Stats: 937 lines in 14 files changed: 937 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jmc/pull/528.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/528/head:pull/528 PR: https://git.openjdk.org/jmc/pull/528 From aptmac at openjdk.org Mon Nov 20 18:24:06 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Mon, 20 Nov 2023 18:24:06 GMT Subject: RFR: 8144: Add rule to detect GC Inverted Parallelism In-Reply-To: References: Message-ID: On Fri, 17 Nov 2023 21:29:19 GMT, Marcus Hirt wrote: > Looks good. Perhaps a JDK 20 recording should be added to the tests so that some of the rule code is exercised from a recording/events? I've added two recordings here, taken on jdk21: - **jdk21-inverted-parallelism.jfr**: has jdk.GCCPUTime enabled, and runs for ~10 seconds on a stress test application to force an instance of inverted parallelism - **jdk21.jfr**: enables all events (minus the ones that have my system information), and runs on JMC itself for 1 minute Also added a requirement on jdk.GCConfiguration for GcInvertedParallelismRule, and rebased ontop of master. ------------- PR Comment: https://git.openjdk.org/jmc/pull/528#issuecomment-1819584400 From aptmac at openjdk.org Tue Nov 21 14:30:44 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Tue, 21 Nov 2023 14:30:44 GMT Subject: RFR: 6627: Bring bundles to core [v3] In-Reply-To: References: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> Message-ID: On Wed, 8 Nov 2023 01:01:29 GMT, Alex Macdonald wrote: >> This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). >> >> While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. >> >> As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. >> >> There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. >> >> [0] https://bugs.openjdk.org/browse/JMC-6627 >> [1] https://github.com/openjdk/jmc/pull/469 >> [2] https://bugs.openjdk.org/browse/JMC-7307 >> [3] https://bugs.openjdk.org/browse/JMC-7069 >> [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f >> [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 > > Alex Macdonald has updated the pull request incrementally with three additional commits since the last revision: > > - Remove duplication of MRITransformationToolkit > - Remove flightrecorder.configuration from application/coverage > - Fix typo in SyntheticRepositoryInitializer function Ping for reviews. I know there's a lot of movement here, I generated a couple trees to better illustrate the changes and hopefully make reviewing this PR a bit less daunting. Running a diff on the trees it looks like ~102 classes were moved from rjmx to rjmx.common, plus rjmx.services.jfr and a handful of classes in jmc.common & flightrecorder.configuration. Let me know if you need any more clarification or questions answered. **Before:**
jmc/application/org.openjdk.jmc.rjmx application/org.openjdk.jmc.rjmx/ ??? build.properties ??? icons ??? ??? console_view.png ??? ??? date-span-16.png ??? ??? day-of-week-16.png ??? ??? diagnostic-command-16.png ??? ??? hprof-16.png ??? ??? send-email-16.png ??? ??? time-span-16.png ??? META-INF ??? ??? MANIFEST.MF ??? plugin.properties ??? plugin.readme ??? plugin.xml ??? pom.xml ??? schema ??? ??? actionProvider.exsd ??? ??? attributeTransformation.exsd ??? ??? descriptorProvider.exsd ??? ??? metadataprovider.exsd ??? ??? service.exsd ??? ??? syntheticattribute.exsd ??? ??? syntheticnotification.exsd ??? ??? triggerActionExceptionHandlers.exsd ??? ??? triggerActions.exsd ??? ??? triggerConstraints.exsd ??? ??? triggerEvaluators.exsd ??? src ?? ??? main ?? ??? java ?? ??? ??? org ?? ??? ??? openjdk ?? ??? ??? jmc ?? ??? ??? rjmx ?? ??? ??? actionprovider ?? ??? ??? ??? IActionFactory.java ?? ??? ??? ??? IActionProviderFactory.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? ActionDescriptor.java ?? ??? ??? ??? ??? ActionProviderDescriptor.java ?? ??? ??? ??? ??? ActionProviderGrammar.java ?? ??? ??? ??? ??? ActionProvider.java ?? ??? ??? ??? ??? ActionProviderRepository.java ?? ??? ??? ??? ??? DefaultActionFactory.java ?? ??? ??? ??? package-info.java ?? ??? ??? ConnectionDescriptorBuilder.java ?? ??? ??? ConnectionException.java ?? ??? ??? ConnectionToolkit.java ?? ??? ??? descriptorprovider ?? ??? ??? ??? AbstractDescriptorProvider.java ?? ??? ??? ??? IDescriptorListener.java ?? ??? ??? ??? IDescriptorProvider.java ?? ??? ??? ??? package-info.java ?? ??? ??? IConnectionDescriptor.java ?? ??? ??? IConnectionHandle.java ?? ??? ??? IConnectionListener.java ?? ??? ??? internal ?? ??? ??? ??? DefaultConnectionHandle.java ?? ??? ??? ??? IDisposableService.java ?? ??? ??? ??? JMXConnectionDescriptor.java ?? ??? ??? ??? JMXRMISystemPropertiesProvider.java ?? ??? ??? ??? MBeanOperationWrapper.java ?? ??? ??? ??? MCMBeanServerConnection.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? RJMXConnection.java ?? ??? ??? ??? RJMXSingleton.java ?? ??? ??? ??? ServerDescriptor.java ?? ??? ??? ??? ServerHandle.java ?? ??? ??? ??? ServerToolkit.java ?? ??? ??? ??? SyntheticAttributeEntry.java ?? ??? ??? ??? SyntheticAttributeMBeanEntry.java ?? ??? ??? ??? SyntheticAttributeRepository.java ?? ??? ??? ??? SyntheticNotificationEntry.java ?? ??? ??? ??? SyntheticNotificationMBean.java ?? ??? ??? ??? SyntheticNotificationRepository.java ?? ??? ??? ??? WrappedConnectionException.java ?? ??? ??? IPropertySyntheticAttribute.java ?? ??? ??? IServerDescriptor.java ?? ??? ??? IServerHandle.java ?? ??? ??? ISyntheticAttribute.java ?? ??? ??? ISyntheticNotification.java ?? ??? ??? JVMSupportToolkit.java ?? ??? ??? messages ?? ??? ??? ??? internal ?? ??? ??? ??? Messages.java ?? ??? ??? package-info.java ?? ??? ??? persistence ?? ??? ??? ??? internal ?? ??? ??? ??? AttributeWriter.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? PersistenceFile.java ?? ??? ??? ??? PersistenceReader.java ?? ??? ??? ??? PersistenceServiceFactory.java ?? ??? ??? ??? PersistenceWriter.java ?? ??? ??? preferences ?? ??? ??? ??? Initializer.java ?? ??? ??? ??? JMXRMIPreferences.java ?? ??? ??? ??? PreferencesKeys.java ?? ??? ??? RJMXPlugin.java ?? ??? ??? servermodel ?? ??? ??? ??? IDiscoveryInfo.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? DiscoveryInfo.java ?? ??? ??? ??? ??? ModelPersistence.java ?? ??? ??? ??? ??? Server.java ?? ??? ??? ??? ??? ServerModelCredentials.java ?? ??? ??? ??? ??? ServerModel.java ?? ??? ??? ??? IServer.java ?? ??? ??? ??? IServerModel.java ?? ??? ??? ??? package-info.java ?? ??? ??? ServiceNotAvailableException.java ?? ??? ??? services ?? ??? ??? ??? IAttributeChild.java ?? ??? ??? ??? IAttributeInfo.java ?? ??? ??? ??? IAttribute.java ?? ??? ??? ??? IAttributeStorage.java ?? ??? ??? ??? IAttributeStorageService.java ?? ??? ??? ??? ICommercialFeaturesService.java ?? ??? ??? ??? IDiagnosticCommandService.java ?? ??? ??? ??? IDummyService.java ?? ??? ??? ??? IIndexedAttributeChild.java ?? ??? ??? ??? IKeyedAttributeChild.java ?? ??? ??? ??? IllegalOperandException.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? AbstractOperation.java ?? ??? ??? ??? ??? AttributeStorageServiceFactory.java ?? ??? ??? ??? ??? CommercialFeaturesServiceFactory.java ?? ??? ??? ??? ??? DiagnosticCommandServiceFactory.java ?? ??? ??? ??? ??? HotSpot23CommercialFeaturesService.java ?? ??? ??? ??? ??? HotSpot24DiagnosticCommandService.java ?? ??? ??? ??? ??? HotspotManagementToolkit.java ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? MRIMetadataServiceFactory.java ?? ??? ??? ??? ??? NoCommercialFeaturesService.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? ServiceEntry.java ?? ??? ??? ??? ??? ServiceFactoryManager.java ?? ??? ??? ??? ??? SubscriptionServiceFactory.java ?? ??? ??? ??? IOperation.java ?? ??? ??? ??? IPersistenceService.java ?? ??? ??? ??? IReadOnlyAttribute.java ?? ??? ??? ??? IServiceFactory.java ?? ??? ??? ??? IUpdateInterval.java ?? ??? ??? ??? MRIDataSeries.java ?? ??? ??? ??? package-info.java ?? ??? ??? subscription ?? ??? ??? ??? IMBeanHelperService.java ?? ??? ??? ??? IMBeanServerChangeListener.java ?? ??? ??? ??? IMRIMetadata.java ?? ??? ??? ??? IMRIMetadataProvider.java ?? ??? ??? ??? IMRIMetadataProviderService.java ?? ??? ??? ??? IMRIMetadataService.java ?? ??? ??? ??? IMRIService.java ?? ??? ??? ??? IMRISubscription.java ?? ??? ??? ??? IMRITransformationFactory.java ?? ??? ??? ??? IMRITransformation.java ?? ??? ??? ??? IMRIValueListener.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? AbstractAttributeSubscription.java ?? ??? ??? ??? ??? AbstractPropertySyntheticAttribute.java ?? ??? ??? ??? ??? AbstractSingleMRITransformation.java ?? ??? ??? ??? ??? AbstractSyntheticAttribute.java ?? ??? ??? ??? ??? AbstractSyntheticNotification.java ?? ??? ??? ??? ??? AbstractUpdatePolicy.java ?? ??? ??? ??? ??? AttributeExceptionEvent.java ?? ??? ??? ??? ??? AttributeReregisteredEvent.java ?? ??? ??? ??? ??? AttributeValueToolkit.java ?? ??? ??? ??? ??? AverageTransformation.java ?? ??? ??? ??? ??? ConnectionLostEvent.java ?? ??? ??? ??? ??? DeadlockedThreadCountAttribute.java ?? ??? ??? ??? ??? DefaultAttributeSubscription.java ?? ??? ??? ??? ??? DefaultAttributeSubscriptionService.java ?? ??? ??? ??? ??? DefaultAttributeSubscriptionThread.java ?? ??? ??? ??? ??? DefaultMRIMetadataService.java ?? ??? ??? ??? ??? DefaultNotificationSubscriptionManager.java ?? ??? ??? ??? ??? DefaultSubscriptionDebugInformation.java ?? ??? ??? ??? ??? DefaultUpdatePolicy.java ?? ??? ??? ??? ??? DeltaTransformation.java ?? ??? ??? ??? ??? DifferenceAttribute.java ?? ??? ??? ??? ??? DifferenceTransformation.java ?? ??? ??? ??? ??? DivisionAttribute.java ?? ??? ??? ??? ??? EmptySubscriptionDebugService.java ?? ??? ??? ??? ??? ExtendedMRIMetadataToolkit.java ?? ??? ??? ??? ??? ExtensionMetadataProviderService.java ?? ??? ??? ??? ??? FileMRIMetadataDB.java ?? ??? ??? ??? ??? FileMRIMetadata.java ?? ??? ??? ??? ??? HotSpotGcNotification.java ?? ??? ??? ??? ??? HotSpotLastGcAttribute.java ?? ??? ??? ??? ??? HotSpotLiveSetAttribute.java ?? ??? ??? ??? ??? IIntervalUpdatePolicy.java ?? ??? ??? ??? ??? IMRISubscriptionDebugInformation.java ?? ??? ??? ??? ??? InvoluntaryDisconnectException.java ?? ??? ??? ??? ??? ISubscriptionDebugService.java ?? ??? ??? ??? ??? LongDifferenceAttribute.java ?? ??? ??? ??? ??? MBeanMRIMetadataDB.java ?? ??? ??? ??? ??? MonitoredDeadlockedThreadCountAttribute.java ?? ??? ??? ??? ??? MRIMetadataWrapper.java ?? ??? ??? ??? ??? MRITransformationToolkit.java ?? ??? ??? ??? ??? OneShotUpdatePolicy.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? SimpleUpdatePolicy.java ?? ??? ??? ??? ??? SingleMRITransformationFactory.java ?? ??? ??? ??? ??? SyntheticAttributeToolkit.java ?? ??? ??? ??? ??? TransformationSubscription.java ?? ??? ??? ??? ??? UnavailableChildSubscriptions.java ?? ??? ??? ??? ??? UnavailableSubscriptionsRepository.java ?? ??? ??? ??? ??? UpdatePolicyToolkit.java ?? ??? ??? ??? ISubscriptionService.java ?? ??? ??? ??? IUpdatePolicy.java ?? ??? ??? ??? MRI.java ?? ??? ??? ??? MRIMetadataToolkit.java ?? ??? ??? ??? MRIValueEvent.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? PolicyFactory.java ?? ??? ??? ??? storage ?? ??? ??? ??? internal ?? ??? ??? ??? BufferingAttributeStorage.java ?? ??? ??? ??? DefaultAttributeStorageService.java ?? ??? ??? ??? package-info.java ?? ??? ??? triggers ?? ??? ??? ??? actions ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerActionDiagnosticCommand.java ?? ??? ??? ??? ??? TriggerActionHPROF.java ?? ??? ??? ??? ??? TriggerActionLogToFile.java ?? ??? ??? ??? ??? TriggerActionMail.java ?? ??? ??? ??? ??? TriggerActionSystemOut.java ?? ??? ??? ??? condition ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerCondition.java ?? ??? ??? ??? constraints ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerConstraintDateRange.java ?? ??? ??? ??? ??? TriggerConstraintDayOfWeek.java ?? ??? ??? ??? ??? TriggerConstraintTimeRange.java ?? ??? ??? ??? extension ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? ExtensionLoader.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerComponent.java ?? ??? ??? ??? ??? TriggerFactory.java ?? ??? ??? ??? fields ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? BooleanField.java ?? ??? ??? ??? ??? DateField.java ?? ??? ??? ??? ??? FieldHolder.java ?? ??? ??? ??? ??? Field.java ?? ??? ??? ??? ??? FileField.java ?? ??? ??? ??? ??? FloatField.java ?? ??? ??? ??? ??? IntegerField.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? PasswordField.java ?? ??? ??? ??? ??? QuantityField.java ?? ??? ??? ??? ??? StringField.java ?? ??? ??? ??? ??? TimeField.java ?? ??? ??? ??? IActivatableTriggerAction.java ?? ??? ??? ??? IExceptionHandler.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? DefaultExceptionHandler.java ?? ??? ??? ??? ??? INotificationFactory.java ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? NotificationRegistry.java ?? ??? ??? ??? ??? NotificationRuleBag.java ?? ??? ??? ??? ??? NotificationToolkit.java ?? ??? ??? ??? ??? NotificationTrigger.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? RegistryEntry.java ?? ??? ??? ??? ??? ValueEvaluationException.java ?? ??? ??? ??? ??? ValueEvaluatorBoolean.java ?? ??? ??? ??? ??? ValueEvaluatorNumberMax.java ?? ??? ??? ??? ??? ValueEvaluatorNumberMin.java ?? ??? ??? ??? ??? ValueEvaluatorStringMatch.java ?? ??? ??? ??? ISetting.java ?? ??? ??? ??? ITriggerAction.java ?? ??? ??? ??? ITriggerConstraint.java ?? ??? ??? ??? ITrigger.java ?? ??? ??? ??? IValueEvaluator.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? TriggerAction.java ?? ??? ??? ??? TriggerConstraintHolder.java ?? ??? ??? ??? TriggerConstraint.java ?? ??? ??? ??? TriggerEvent.java ?? ??? ??? ??? TriggerRule.java ?? ??? ??? util ?? ??? ??? internal ?? ??? ??? AbstractReadOnlyAttribute.java ?? ??? ??? DefaultAttribute.java ?? ??? ??? package-info.java ?? ??? ??? PartitionedList.java ?? ??? ??? RJMXStartCommand.java ?? ??? ??? SimpleAttributeInfo.java ?? ??? resources ?? ??? org ?? ??? openjdk ?? ??? jmc ?? ??? rjmx ?? ??? messages ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? services ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? subscription ?? ??? ??? internal ?? ??? ??? mrimetadata.xml ?? ??? triggers ?? ??? actions ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? condition ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? internal ?? ??? messages.properties
**After**
jmc/application/org.openjdk.jmc.rjmx application/org.openjdk.jmc.rjmx/ ??? build.properties ??? icons ??? ??? console_view.png ??? ??? date-span-16.png ??? ??? day-of-week-16.png ??? ??? diagnostic-command-16.png ??? ??? hprof-16.png ??? ??? send-email-16.png ??? ??? time-span-16.png ??? META-INF ??? ??? MANIFEST.MF ??? plugin.properties ??? plugin.readme ??? plugin.xml ??? pom.xml ??? schema ??? ??? actionProvider.exsd ??? ??? attributeTransformation.exsd ??? ??? descriptorProvider.exsd ??? ??? metadataprovider.exsd ??? ??? service.exsd ??? ??? syntheticattribute.exsd ??? ??? syntheticnotification.exsd ??? ??? triggerActionExceptionHandlers.exsd ??? ??? triggerActions.exsd ??? ??? triggerConstraints.exsd ??? ??? triggerEvaluators.exsd ??? src ?? ??? main ?? ??? java ?? ??? ??? org ?? ??? ??? openjdk ?? ??? ??? jmc ?? ??? ??? rjmx ?? ??? ??? actionprovider ?? ??? ??? ??? IActionFactory.java ?? ??? ??? ??? IActionProviderFactory.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? ActionDescriptor.java ?? ??? ??? ??? ??? ActionProviderDescriptor.java ?? ??? ??? ??? ??? ActionProviderGrammar.java ?? ??? ??? ??? ??? ActionProvider.java ?? ??? ??? ??? ??? ActionProviderRepository.java ?? ??? ??? ??? ??? DefaultActionFactory.java ?? ??? ??? ??? package-info.java ?? ??? ??? descriptorprovider ?? ??? ??? ??? AbstractDescriptorProvider.java ?? ??? ??? ??? IDescriptorListener.java ?? ??? ??? ??? IDescriptorProvider.java ?? ??? ??? ??? package-info.java ?? ??? ??? internal ?? ??? ??? ??? package-info.java ?? ??? ??? ??? RJMXSingleton.java ?? ??? ??? ??? ServerHandle.java ?? ??? ??? ??? ServerToolkit.java ?? ??? ??? ??? ServiceFactoryInitializer.java ?? ??? ??? ??? SyntheticRepositoryInitializer.java ?? ??? ??? IPropertySyntheticAttribute.java ?? ??? ??? IServerHandle.java ?? ??? ??? JVMSupportToolkit.java ?? ??? ??? messages ?? ??? ??? ??? internal ?? ??? ??? ??? Messages.java ?? ??? ??? package-info.java ?? ??? ??? persistence ?? ??? ??? ??? internal ?? ??? ??? ??? AttributeWriter.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? PersistenceFile.java ?? ??? ??? ??? PersistenceReader.java ?? ??? ??? ??? PersistenceServiceFactory.java ?? ??? ??? ??? PersistenceWriter.java ?? ??? ??? preferences ?? ??? ??? ??? Initializer.java ?? ??? ??? ??? PreferencesKeys.java ?? ??? ??? RJMXPlugin.java ?? ??? ??? servermodel ?? ??? ??? ??? internal ?? ??? ??? ??? ??? DiscoveryInfo.java ?? ??? ??? ??? ??? ModelPersistence.java ?? ??? ??? ??? ??? Server.java ?? ??? ??? ??? ??? ServerModelCredentials.java ?? ??? ??? ??? ??? ServerModel.java ?? ??? ??? ??? IServer.java ?? ??? ??? ??? IServerModel.java ?? ??? ??? services ?? ??? ??? ??? IAttributeChild.java ?? ??? ??? ??? IAttribute.java ?? ??? ??? ??? IIndexedAttributeChild.java ?? ??? ??? ??? IKeyedAttributeChild.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? MRIMetadataServiceFactory.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? IPersistenceService.java ?? ??? ??? ??? IReadOnlyAttribute.java ?? ??? ??? ??? IUpdateInterval.java ?? ??? ??? ??? package-info.java ?? ??? ??? subscription ?? ??? ??? ??? IMRIMetadataProviderService.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? AbstractPropertySyntheticAttribute.java ?? ??? ??? ??? ??? AbstractSingleMRITransformation.java ?? ??? ??? ??? ??? AbstractSyntheticAttribute.java ?? ??? ??? ??? ??? AbstractSyntheticNotification.java ?? ??? ??? ??? ??? AverageTransformation.java ?? ??? ??? ??? ??? DeadlockedThreadCountAttribute.java ?? ??? ??? ??? ??? DefaultMRIMetadataService.java ?? ??? ??? ??? ??? DeltaTransformation.java ?? ??? ??? ??? ??? DifferenceAttribute.java ?? ??? ??? ??? ??? DifferenceTransformation.java ?? ??? ??? ??? ??? DivisionAttribute.java ?? ??? ??? ??? ??? EmptySubscriptionDebugService.java ?? ??? ??? ??? ??? ExtendedMRIMetadataToolkit.java ?? ??? ??? ??? ??? ExtensionMetadataProviderService.java ?? ??? ??? ??? ??? FileMRIMetadataDB.java ?? ??? ??? ??? ??? FileMRIMetadata.java ?? ??? ??? ??? ??? HotSpotGcNotification.java ?? ??? ??? ??? ??? HotSpotLastGcAttribute.java ?? ??? ??? ??? ??? HotSpotLiveSetAttribute.java ?? ??? ??? ??? ??? LongDifferenceAttribute.java ?? ??? ??? ??? ??? MonitoredDeadlockedThreadCountAttribute.java ?? ??? ??? ??? ??? MRIMetadataWrapper.java ?? ??? ??? ??? ??? MRITransformationToolkit.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? SyntheticAttributeToolkit.java ?? ??? ??? ??? ??? UpdatePolicyToolkit.java ?? ??? ??? ??? MRIMetadataToolkit.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? PolicyFactory.java ?? ??? ??? triggers ?? ??? ??? ??? actions ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerActionDiagnosticCommand.java ?? ??? ??? ??? ??? TriggerActionHPROF.java ?? ??? ??? ??? ??? TriggerActionLogToFile.java ?? ??? ??? ??? ??? TriggerActionMail.java ?? ??? ??? ??? ??? TriggerActionSystemOut.java ?? ??? ??? ??? condition ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerCondition.java ?? ??? ??? ??? constraints ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerConstraintDateRange.java ?? ??? ??? ??? ??? TriggerConstraintDayOfWeek.java ?? ??? ??? ??? ??? TriggerConstraintTimeRange.java ?? ??? ??? ??? extension ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? ExtensionLoader.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? TriggerComponent.java ?? ??? ??? ??? ??? TriggerFactory.java ?? ??? ??? ??? fields ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? BooleanField.java ?? ??? ??? ??? ??? DateField.java ?? ??? ??? ??? ??? FieldHolder.java ?? ??? ??? ??? ??? Field.java ?? ??? ??? ??? ??? FileField.java ?? ??? ??? ??? ??? FloatField.java ?? ??? ??? ??? ??? IntegerField.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? PasswordField.java ?? ??? ??? ??? ??? QuantityField.java ?? ??? ??? ??? ??? StringField.java ?? ??? ??? ??? ??? TimeField.java ?? ??? ??? ??? IActivatableTriggerAction.java ?? ??? ??? ??? IExceptionHandler.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? DefaultExceptionHandler.java ?? ??? ??? ??? ??? INotificationFactory.java ?? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? NotificationRegistry.java ?? ??? ??? ??? ??? NotificationRuleBag.java ?? ??? ??? ??? ??? NotificationToolkit.java ?? ??? ??? ??? ??? NotificationTrigger.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? ??? RegistryEntry.java ?? ??? ??? ??? ??? ValueEvaluationException.java ?? ??? ??? ??? ??? ValueEvaluatorBoolean.java ?? ??? ??? ??? ??? ValueEvaluatorNumberMax.java ?? ??? ??? ??? ??? ValueEvaluatorNumberMin.java ?? ??? ??? ??? ??? ValueEvaluatorStringMatch.java ?? ??? ??? ??? ISetting.java ?? ??? ??? ??? ITriggerAction.java ?? ??? ??? ??? ITriggerConstraint.java ?? ??? ??? ??? ITrigger.java ?? ??? ??? ??? IValueEvaluator.java ?? ??? ??? ??? package-info.java ?? ??? ??? ??? TriggerAction.java ?? ??? ??? ??? TriggerConstraintHolder.java ?? ??? ??? ??? TriggerConstraint.java ?? ??? ??? ??? TriggerEvent.java ?? ??? ??? ??? TriggerRule.java ?? ??? ??? util ?? ??? ??? internal ?? ??? ??? AbstractReadOnlyAttribute.java ?? ??? ??? DefaultAttribute.java ?? ??? ??? package-info.java ?? ??? ??? PartitionedList.java ?? ??? ??? RJMXStartCommand.java ?? ??? resources ?? ??? org ?? ??? openjdk ?? ??? jmc ?? ??? rjmx ?? ??? messages ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? subscription ?? ??? ??? internal ?? ??? ??? mrimetadata.xml ?? ??? triggers ?? ??? actions ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? condition ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? internal ?? ??? messages.properties
jmc/core/org.openjdk.jmc.rjmx.common core/org.openjdk.jmc.rjmx.common/ ??? build.properties ??? META-INF ??? ??? MANIFEST.MF ??? pom.xml ??? src ?? ??? main ?? ??? java ?? ??? ??? org ?? ??? ??? openjdk ?? ??? ??? jmc ?? ??? ??? rjmx ?? ??? ??? common ?? ??? ??? ConnectionDescriptorBuilder.java ?? ??? ??? ConnectionException.java ?? ??? ??? ConnectionToolkit.java ?? ??? ??? IConnectionDescriptor.java ?? ??? ??? IConnectionHandle.java ?? ??? ??? IConnectionListener.java ?? ??? ??? internal ?? ??? ??? ??? DefaultConnectionHandle.java ?? ??? ??? ??? IDisposableService.java ?? ??? ??? ??? JMXConnectionDescriptor.java ?? ??? ??? ??? JMXRMISystemPropertiesProvider.java ?? ??? ??? ??? MBeanOperationWrapper.java ?? ??? ??? ??? MCMBeanServerConnection.java ?? ??? ??? ??? RJMXConnection.java ?? ??? ??? ??? ServerDescriptor.java ?? ??? ??? ??? SyntheticAttributeEntry.java ?? ??? ??? ??? SyntheticAttributeMBeanEntry.java ?? ??? ??? ??? SyntheticAttributeRepository.java ?? ??? ??? ??? SyntheticNotificationEntry.java ?? ??? ??? ??? SyntheticNotificationMBean.java ?? ??? ??? ??? SyntheticNotificationRepository.java ?? ??? ??? ??? WrappedConnectionException.java ?? ??? ??? IServerDescriptor.java ?? ??? ??? ISyntheticAttribute.java ?? ??? ??? ISyntheticNotification.java ?? ??? ??? messages ?? ??? ??? ??? internal ?? ??? ??? ??? Messages.java ?? ??? ??? preferences ?? ??? ??? ??? JMXRMIPreferences.java ?? ??? ??? RJMXCorePlugin.java ?? ??? ??? servermodel ?? ??? ??? ??? IDiscoveryInfo.java ?? ??? ??? ??? package-info.java ?? ??? ??? ServiceNotAvailableException.java ?? ??? ??? services ?? ??? ??? ??? IAttributeInfo.java ?? ??? ??? ??? IAttributeStorage.java ?? ??? ??? ??? ICommercialFeaturesService.java ?? ??? ??? ??? IDiagnosticCommandService.java ?? ??? ??? ??? IDummyService.java ?? ??? ??? ??? IllegalOperandException.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? AbstractOperation.java ?? ??? ??? ??? ??? AttributeStorageServiceFactory.java ?? ??? ??? ??? ??? CommercialFeaturesServiceFactory.java ?? ??? ??? ??? ??? DiagnosticCommandServiceFactory.java ?? ??? ??? ??? ??? HotSpot23CommercialFeaturesService.java ?? ??? ??? ??? ??? HotSpot24DiagnosticCommandService.java ?? ??? ??? ??? ??? IAttributeStorageService.java ?? ??? ??? ??? ??? NoCommercialFeaturesService.java ?? ??? ??? ??? ??? ServiceEntry.java ?? ??? ??? ??? ??? ServiceFactoryManager.java ?? ??? ??? ??? ??? SubscriptionServiceFactory.java ?? ??? ??? ??? IOperation.java ?? ??? ??? ??? IServiceFactory.java ?? ??? ??? ??? jfr ?? ??? ??? ??? ??? FlightRecorderToolkit.java ?? ??? ??? ??? ??? internal ?? ??? ??? ??? ??? ??? EventOptionsToolkitV1.java ?? ??? ??? ??? ??? ??? EventTypeMetadataV1.java ?? ??? ??? ??? ??? ??? EventTypeMetadataV2.java ?? ??? ??? ??? ??? ??? ExcludingEventOptionMapper.java ?? ??? ??? ??? ??? ??? FlightRecorderCommunicationHelperV1.java ?? ??? ??? ??? ??? ??? FlightRecorderCommunicationHelperV2.java ?? ??? ??? ??? ??? ??? FlightRecorderServiceFactory.java ?? ??? ??? ??? ??? ??? FlightRecorderServiceV1.java ?? ??? ??? ??? ??? ??? FlightRecorderServiceV2.java ?? ??? ??? ??? ??? ??? HotspotManagementToolkit.java ?? ??? ??? ??? ??? ??? IFlightRecorderCommunicationHelper.java ?? ??? ??? ??? ??? ??? JfrRecordingInputStreamV1.java ?? ??? ??? ??? ??? ??? JfrRecordingInputStreamV2.java ?? ??? ??? ??? ??? ??? Messages.java ?? ??? ??? ??? ??? ??? OpenTypeConverter.java ?? ??? ??? ??? ??? ??? RecordingDescriptorToolkitV1.java ?? ??? ??? ??? ??? ??? RecordingDescriptorV1.java ?? ??? ??? ??? ??? ??? RecordingDescriptorV2.java ?? ??? ??? ??? ??? ??? RecordingOptionsToolkitV1.java ?? ??? ??? ??? ??? ??? RecordingOptionsToolkitV2.java ?? ??? ??? ??? ??? ??? RecordingTemplateToolkit.java ?? ??? ??? ??? ??? package-info.java ?? ??? ??? ??? MRIDataSeries.java ?? ??? ??? subscription ?? ??? ??? ??? IMBeanHelperService.java ?? ??? ??? ??? IMBeanServerChangeListener.java ?? ??? ??? ??? IMRIMetadata.java ?? ??? ??? ??? IMRIMetadataProvider.java ?? ??? ??? ??? IMRIMetadataService.java ?? ??? ??? ??? IMRIService.java ?? ??? ??? ??? IMRISubscription.java ?? ??? ??? ??? IMRITransformationFactory.java ?? ??? ??? ??? IMRITransformation.java ?? ??? ??? ??? IMRIValueListener.java ?? ??? ??? ??? internal ?? ??? ??? ??? ??? AbstractAttributeSubscription.java ?? ??? ??? ??? ??? AbstractUpdatePolicy.java ?? ??? ??? ??? ??? AttributeExceptionEvent.java ?? ??? ??? ??? ??? AttributeReregisteredEvent.java ?? ??? ??? ??? ??? AttributeValueToolkit.java ?? ??? ??? ??? ??? ConnectionLostEvent.java ?? ??? ??? ??? ??? DefaultAttributeSubscription.java ?? ??? ??? ??? ??? DefaultAttributeSubscriptionService.java ?? ??? ??? ??? ??? DefaultAttributeSubscriptionThread.java ?? ??? ??? ??? ??? DefaultNotificationSubscriptionManager.java ?? ??? ??? ??? ??? DefaultSubscriptionDebugInformation.java ?? ??? ??? ??? ??? DefaultUpdatePolicy.java ?? ??? ??? ??? ??? IIntervalUpdatePolicy.java ?? ??? ??? ??? ??? IMRISubscriptionDebugInformation.java ?? ??? ??? ??? ??? InvoluntaryDisconnectException.java ?? ??? ??? ??? ??? ISubscriptionDebugService.java ?? ??? ??? ??? ??? MBeanMRIMetadataDB.java ?? ??? ??? ??? ??? MRITransformationBaseToolkit.java ?? ??? ??? ??? ??? OneShotUpdatePolicy.java ?? ??? ??? ??? ??? SimpleUpdatePolicy.java ?? ??? ??? ??? ??? SingleMRITransformationFactory.java ?? ??? ??? ??? ??? TransformationSubscription.java ?? ??? ??? ??? ??? UnavailableChildSubscriptions.java ?? ??? ??? ??? ??? UnavailableSubscriptionsRepository.java ?? ??? ??? ??? ??? UpdatePolicyToolkit.java ?? ??? ??? ??? ISubscriptionService.java ?? ??? ??? ??? IUpdatePolicy.java ?? ??? ??? ??? MRI.java ?? ??? ??? ??? MRIValueEvent.java ?? ??? ??? ??? storage ?? ??? ??? ??? internal ?? ??? ??? ??? BufferingAttributeStorage.java ?? ??? ??? ??? DefaultAttributeStorageService.java ?? ??? ??? ??? package-info.java ?? ??? ??? util ?? ??? ??? internal ?? ??? ??? SimpleAttributeInfo.java ?? ??? resources ?? ??? org ?? ??? openjdk ?? ??? jmc ?? ??? rjmx ?? ??? common ?? ??? messages ?? ??? ??? internal ?? ??? ??? messages.properties ?? ??? services ?? ??? jfr ?? ??? internal ?? ??? messages_ja.properties ?? ??? messages.properties ?? ??? messages_zh_CN.properties
------------- PR Comment: https://git.openjdk.org/jmc/pull/531#issuecomment-1821029134 From aptmac at openjdk.org Wed Nov 22 14:59:27 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Wed, 22 Nov 2023 14:59:27 GMT Subject: RFR: 5560: Support new nio events in JDK 10. In-Reply-To: References: Message-ID: On Mon, 13 Nov 2023 21:17:23 GMT, Suchita Chaturvedi wrote: > This PR addresses the enhancement request of missing event File Force. > 1. A new rule File Force has been added to the "Automated Analysis Page", Under Java Application -> File I/O. > image > > 2. "File I/O" screen is updated to accomodate values for the new event. There are two new columns added - Force Count, Update Metadata. Both these columns are hidden by default and user need to make them visible by right clicking the header of the table. Also the corresponding chart for File Force Event has been introduced. > image > > 3. There is a new preference/configuration introduced for the File Force Rule. > > image Looks good, I left a few comments inline. The license headers on the modified files will need to be updated as well. core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/io/FileForceRule.java line 83: > 81: .addEventType(JdkTypeIDs.FILE_FORCE, EventAvailability.ENABLED).build(); > 82: > 83: //public static final TypedResult LONGEST_FORCE_AMOUNT = new TypedResult<>("longestForceAmount", //$NON-NLS-1$ Commented out, could be removed? core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/io/FileForceRule.java line 111: > 109: > 110: // Aggregate of all file forced events - if null, then we had no events > 111: if (longestEvent == null) { I think if you used `EventAvailability.AVAILABLE` instead of `EventAvailability.ENABLED` for the REQUIRED_EVENTS at line 81 then there'd be no need to check if there's any events here. core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/jdk/messages/internal/Messages.java line 99: > 97: public static final String AGGR_FILE_FORCE_COUNT = "AGGR_FILE_FORCE_COUNT"; //$NON-NLS-1$ > 98: public static final String AGGR_FILE_FORCE_COUNT_DESC = "AGGR_FILE_FORCE_COUNT_DESC"; //$NON-NLS-1$ > 99: Doesn't need the new line? ------------- PR Review: https://git.openjdk.org/jmc/pull/533#pullrequestreview-1732991487 PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1394802748 PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1394806117 PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1402182224 From hdafgard at openjdk.org Fri Nov 24 15:39:21 2023 From: hdafgard at openjdk.org (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Fri, 24 Nov 2023 15:39:21 GMT Subject: RFR: 5560: Support new nio events in JDK 10. In-Reply-To: References: Message-ID: <6k4-lGPZcan3kRYAX5BD5-Yyuok1iK6_CRNSUrK6YWI=.a7208c83-4939-4ec7-93a4-45b0b9731b67@github.com> On Wed, 15 Nov 2023 21:10:27 GMT, Alex Macdonald wrote: >> This PR addresses the enhancement request of missing event File Force. >> 1. A new rule File Force has been added to the "Automated Analysis Page", Under Java Application -> File I/O. >> image >> >> 2. "File I/O" screen is updated to accomodate values for the new event. There are two new columns added - Force Count, Update Metadata. Both these columns are hidden by default and user need to make them visible by right clicking the header of the table. Also the corresponding chart for File Force Event has been introduced. >> image >> >> 3. There is a new preference/configuration introduced for the File Force Rule. >> >> image > > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/io/FileForceRule.java line 111: > >> 109: >> 110: // Aggregate of all file forced events - if null, then we had no events >> 111: if (longestEvent == null) { > > I think if you used `EventAvailability.AVAILABLE` instead of `EventAvailability.ENABLED` for the REQUIRED_EVENTS at line 81 then there'd be no need to check if there's any events here. Yes, if the required events specify that the event type is to be available then JMC won't run this rule on that JFR file if the event is enabled but not present in the file. I'd still say that this is a nit, and not required as being extra defensive is fine here and we might want to improve the core APIs to prevent NPEs in general. ------------- PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1404474130 From hdafgard at openjdk.org Fri Nov 24 16:07:20 2023 From: hdafgard at openjdk.org (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Fri, 24 Nov 2023 16:07:20 GMT Subject: RFR: 5560: Support new nio events in JDK 10. In-Reply-To: References: Message-ID: On Mon, 13 Nov 2023 21:17:23 GMT, Suchita Chaturvedi wrote: > This PR addresses the enhancement request of missing event File Force. > 1. A new rule File Force has been added to the "Automated Analysis Page", Under Java Application -> File I/O. > image > > 2. "File I/O" screen is updated to accomodate values for the new event. There are two new columns added - Force Count, Update Metadata. Both these columns are hidden by default and user need to make them visible by right clicking the header of the table. Also the corresponding chart for File Force Event has been introduced. > image > > 3. There is a new preference/configuration introduced for the File Force Rule. > > image core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/io/FileForceRule.java line 68: > 66: import org.owasp.encoder.Encode; > 67: > 68: public class FileForceRule implements IRule { I'd like to see some testing of this rule and some clearer explanation of what is meant by the rule. When is it warning, what is it warning for and what (if anything) can the user do about that? If there's nothing to be done and there's no clear _problem_ with a long forced file update then we should maybe scrap the rule entirely? I think having a UI that shows if 1) file force events are enabled and 2) if any such events occurred and if the force write was metadata only or not would be enough for supporting this event type. This is because the file force event might also be very valuable to know if it did _not_ happen and you expected that it should, i.e. an important update that needed to be written down to disk wasn't and then the application terminated unexpectedly. So when a user investigates what went wrong using a JFR dumped on exit that's the info they need, the _absence_ of a file force event. However, this logic is hard to formalize as a _rule_ so I think we might be better off without one. ------------- PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1404496252 From hdafgard at openjdk.org Fri Nov 24 16:07:20 2023 From: hdafgard at openjdk.org (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Fri, 24 Nov 2023 16:07:20 GMT Subject: RFR: 5560: Support new nio events in JDK 10. In-Reply-To: References: Message-ID: On Fri, 24 Nov 2023 16:03:38 GMT, Henrik Dafg?rd wrote: >> This PR addresses the enhancement request of missing event File Force. >> 1. A new rule File Force has been added to the "Automated Analysis Page", Under Java Application -> File I/O. >> image >> >> 2. "File I/O" screen is updated to accomodate values for the new event. There are two new columns added - Force Count, Update Metadata. Both these columns are hidden by default and user need to make them visible by right clicking the header of the table. Also the corresponding chart for File Force Event has been introduced. >> image >> >> 3. There is a new preference/configuration introduced for the File Force Rule. >> >> image > > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/io/FileForceRule.java line 68: > >> 66: import org.owasp.encoder.Encode; >> 67: >> 68: public class FileForceRule implements IRule { > > I'd like to see some testing of this rule and some clearer explanation of what is meant by the rule. When is it warning, what is it warning for and what (if anything) can the user do about that? If there's nothing to be done and there's no clear _problem_ with a long forced file update then we should maybe scrap the rule entirely? > > I think having a UI that shows if 1) file force events are enabled and 2) if any such events occurred and if the force write was metadata only or not would be enough for supporting this event type. This is because the file force event might also be very valuable to know if it did _not_ happen and you expected that it should, i.e. an important update that needed to be written down to disk wasn't and then the application terminated unexpectedly. So when a user investigates what went wrong using a JFR dumped on exit that's the info they need, the _absence_ of a file force event. However, this logic is hard to formalize as a _rule_ so I think we might be better off without one. If we still want to keep the rule though I'd vote for 1) adding tests and 2) removing warning severity from being output. ------------- PR Review Comment: https://git.openjdk.org/jmc/pull/533#discussion_r1404496948 From jmatsuoka at openjdk.org Wed Nov 29 19:59:25 2023 From: jmatsuoka at openjdk.org (Joshua Matsuoka) Date: Wed, 29 Nov 2023 19:59:25 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core In-Reply-To: <1HVGKMAWCIfJ6Sn-Qx-aThMkbP9bWRDZJbG12A76yGg=.ba062869-9c3f-4481-8780-2f6795675d72@github.com> References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> <1HVGKMAWCIfJ6Sn-Qx-aThMkbP9bWRDZJbG12A76yGg=.ba062869-9c3f-4481-8780-2f6795675d72@github.com> Message-ID: On Tue, 23 May 2023 07:02:44 GMT, Christoph Langer wrote: >> Can't seem to figure out how to request reviews like other PRs have, but @RealCLanger could you take a look when you have time? > > @Josh-Matsuoka / @aptmac - I guess this one needs some merging/rebasing now? @RealCLanger @thegreystone are either of you able to review this to get it moving? ------------- PR Comment: https://git.openjdk.org/jmc/pull/469#issuecomment-1832611662 From clanger at openjdk.org Wed Nov 29 22:10:20 2023 From: clanger at openjdk.org (Christoph Langer) Date: Wed, 29 Nov 2023 22:10:20 GMT Subject: RFR: 7449: Add GitHub action to verify copyright year In-Reply-To: References: Message-ID: On Wed, 1 Nov 2023 02:24:20 GMT, Alex Macdonald wrote: > This PR looks to address JMC-7449 [[0]](https://bugs.openjdk.org/browse/JMC-7449), in which it'd be nice to have a GitHub action that checks the copyright year of changed files (useful for PR reviews). > > I've added a `check_copyright_year` job to the github workflow, that checks out the repository and then runs a bash script. This bash script lives alongside the `updatecopyrightyear.sh` script and other build-related scripts in `/scripts`. By using `fetch-depth: 0` on the workflow job, we're able to do a git diff against origin/master to get a list of all files that have been altered in a given PR. From there it does a similar file extension check to what `updatecopyrightyear.sh` does, and then uses sed to get the "latest" copyright years (there can be multiple if the header has multiple company names). It compares those years to the current year, and if there is not a match then it prints out the filename to the console and increases a counter that gets printed out when the script returns 1. > > I made a quick test commit ([link](https://github.com/aptmac/jmc/commit/d854e14109d775a8228d729c099463ac8b3a6b8a)) that changed a handful of files without updating their headers, the GH workflow can be found here: https://github.com/aptmac/jmc/actions/runs/6712104409/job/18240941002 > Example of what the workflow looks like: > > Run ./scripts/checkcopyrightyear.sh > Requires update: agent/src/main/java/org/openjdk/jmc/agent/impl/MalformedConverterException.java > Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java > Requires update: agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/package-info.java > Requires update: application/org.openjdk.jmc.browser/pom.xml > Requires update: application/org.openjdk.jmc.browser/src/main/java/org/openjdk/jmc/browser/JVMBrowserPlugin.java > Requires update: application/org.openjdk.jmc.docs/html/toc.htm > Requires update: application/org.openjdk.jmc.rjmx/build.properties > There is a total of 7 copyright year(s) that require updating. > Error: Process completed with exit code 1. > > > > [0] https://bugs.openjdk.org/browse/JMC-7449 This is a good addition for formal correctness. ------------- Marked as reviewed by clanger (Committer). PR Review: https://git.openjdk.org/jmc/pull/530#pullrequestreview-1756300037 From clanger at openjdk.org Wed Nov 29 22:13:30 2023 From: clanger at openjdk.org (Christoph Langer) Date: Wed, 29 Nov 2023 22:13:30 GMT Subject: RFR: 6627: Bring bundles to core [v3] In-Reply-To: References: <9wthogRbq4YBsRzMYmr-lYCwotywABIpVGbxzjXXzPc=.c55e1e10-b0ab-4f98-8393-3e11293fc9c3@github.com> Message-ID: On Wed, 8 Nov 2023 01:01:29 GMT, Alex Macdonald wrote: >> This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069). >> >> While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX. >> >> As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application. >> >> There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization. >> >> [0] https://bugs.openjdk.org/browse/JMC-6627 >> [1] https://github.com/openjdk/jmc/pull/469 >> [2] https://bugs.openjdk.org/browse/JMC-7307 >> [3] https://bugs.openjdk.org/browse/JMC-7069 >> [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f >> [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72 > > Alex Macdonald has updated the pull request incrementally with three additional commits since the last revision: > > - Remove duplication of MRITransformationToolkit > - Remove flightrecorder.configuration from application/coverage > - Fix typo in SyntheticRepositoryInitializer function Will try to find some time for this within the next days. ------------- PR Comment: https://git.openjdk.org/jmc/pull/531#issuecomment-1832782520 From clanger at openjdk.org Wed Nov 29 22:13:30 2023 From: clanger at openjdk.org (Christoph Langer) Date: Wed, 29 Nov 2023 22:13:30 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core In-Reply-To: <1HVGKMAWCIfJ6Sn-Qx-aThMkbP9bWRDZJbG12A76yGg=.ba062869-9c3f-4481-8780-2f6795675d72@github.com> References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> <1HVGKMAWCIfJ6Sn-Qx-aThMkbP9bWRDZJbG12A76yGg=.ba062869-9c3f-4481-8780-2f6795675d72@github.com> Message-ID: On Tue, 23 May 2023 07:02:44 GMT, Christoph Langer wrote: >> Can't seem to figure out how to request reviews like other PRs have, but @RealCLanger could you take a look when you have time? > > @Josh-Matsuoka / @aptmac - I guess this one needs some merging/rebasing now? > @RealCLanger @thegreystone are either of you able to review this to get it moving? Will try to find some time for this within the next days. ------------- PR Comment: https://git.openjdk.org/jmc/pull/469#issuecomment-1832781948 From hirt at openjdk.org Thu Nov 30 14:52:29 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Thu, 30 Nov 2023 14:52:29 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: On Wed, 1 Nov 2023 20:28:36 GMT, Joshua Matsuoka wrote: >> This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. >> >> This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . >> >> [0] https://bugs.openjdk.java.net/browse/JMC-7307 > > Joshua Matsuoka has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: > > - Merging changes from upstream > - Import cleanup > - Running spotless > - Removing extraneous merge artifacts > - Merge remote-tracking branch 'upstream/master' into 7307 > - running spotlesS > - Fixing merge conflicts > - Merge remote-tracking branch 'upstream/master' into 7307 > - Fixing manifest > - Fixing visibility of XML classes > - ... and 14 more: https://git.openjdk.org/jmc/compare/b0d11227...7904676a Note that all copyright updates need to be updated to 2023. ------------- Changes requested by hirt (Lead). PR Review: https://git.openjdk.org/jmc/pull/469#pullrequestreview-1757657621 From hirt at openjdk.org Thu Nov 30 14:59:29 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Thu, 30 Nov 2023 14:59:29 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: On Wed, 1 Nov 2023 20:28:36 GMT, Joshua Matsuoka wrote: >> This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. >> >> This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . >> >> [0] https://bugs.openjdk.java.net/browse/JMC-7307 > > Joshua Matsuoka has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: > > - Merging changes from upstream > - Import cleanup > - Running spotless > - Removing extraneous merge artifacts > - Merge remote-tracking branch 'upstream/master' into 7307 > - running spotlesS > - Fixing merge conflicts > - Merge remote-tracking branch 'upstream/master' into 7307 > - Fixing manifest > - Fixing visibility of XML classes > - ... and 14 more: https://git.openjdk.org/jmc/compare/b0d11227...7904676a core/org.openjdk.jmc.common/src/main/java/org/openjdk/jmc/common/resource/Resource.java line 38: > 36: * Class identifying a resource in an Eclipse plugin. > 37: */ > 38: public class Resource { Feels a bit weird to have this in common, but I guess it can't easily be helped. ------------- PR Review Comment: https://git.openjdk.org/jmc/pull/469#discussion_r1410798477 From aptmac at openjdk.org Thu Nov 30 16:34:41 2023 From: aptmac at openjdk.org (Alex Macdonald) Date: Thu, 30 Nov 2023 16:34:41 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: On Thu, 30 Nov 2023 14:49:54 GMT, Marcus Hirt wrote: > Note that all copyright updates need to be updated to 2023. @Josh-Matsuoka See this patch: https://bugs.openjdk.org/secure/attachment/107378/0001-Update-license-headers.patch I think that covers all the license headers. It also looks like some files were copied cover that are duplicated and might not necessarily fit in here, that patch removes the duplcated classes too. They'd be the one's under `jmc/common/action`, `jmc/common/resource`, `jmc/common/tree`, and `jmc/common/util`. ------------- PR Comment: https://git.openjdk.org/jmc/pull/469#issuecomment-1834119304 From hirt at openjdk.org Thu Nov 30 16:44:28 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Thu, 30 Nov 2023 16:44:28 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v7] In-Reply-To: References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: On Wed, 1 Nov 2023 20:28:36 GMT, Joshua Matsuoka wrote: >> This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. >> >> This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . >> >> [0] https://bugs.openjdk.java.net/browse/JMC-7307 > > Joshua Matsuoka has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: > > - Merging changes from upstream > - Import cleanup > - Running spotless > - Removing extraneous merge artifacts > - Merge remote-tracking branch 'upstream/master' into 7307 > - running spotlesS > - Fixing merge conflicts > - Merge remote-tracking branch 'upstream/master' into 7307 > - Fixing manifest > - Fixing visibility of XML classes > - ... and 14 more: https://git.openjdk.org/jmc/compare/b0d11227...7904676a Approved assuming check style is happy and the headers are updated. ------------- Marked as reviewed by hirt (Lead). PR Review: https://git.openjdk.org/jmc/pull/469#pullrequestreview-1757917648 From hirt at openjdk.org Thu Nov 30 16:46:23 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Thu, 30 Nov 2023 16:46:23 GMT Subject: RFR: 8144: Add rule to detect GC Inverted Parallelism [v2] In-Reply-To: References: Message-ID: <25HaMx4ohpIBqT051WKf5J1BGjEWv_ZvlKB-ic-LaxQ=.b2d02ab0-38f5-48e6-abe0-d3e81202c51e@github.com> On Mon, 20 Nov 2023 18:24:06 GMT, Alex Macdonald wrote: >> This PR addresses JMC-8144 [[0]](https://bugs.openjdk.org/browse/JMC-8144). There is a GC log analysis tool called Garbagecat [[1]](https://github.com/mgm3746/garbagecat/tree/main), which operates on GC logs and identifies performance issues and suggests potential solutions (similar to our automated analysis page). One metric Garbagecat flags is **"inverted parallelism"**, which takes a look at the sys+usr time of a parallel GC and compares it against the real (wall) time. If the parallelism is low, this can indicate that the parallel gc is operating at the efficiency of serial gc, and there could be room for improvement. This GC time information is now included in the jdk.GCCPUTime event added in JDK20+. >> >> This PR requires support for the jdk.GCCPUTime event [[2]](https://bugs.openjdk.org/browse/JDK-8291753), so it also doubles as a PR towards JMC-7895 [[3]](https://bugs.openjdk.org/browse/JMC-7895). >> >> [0] https://bugs.openjdk.org/browse/JMC-8144 >> [1] https://github.com/mgm3746/garbagecat/tree/main >> [2] https://bugs.openjdk.org/browse/JDK-8291753 >> [3] https://bugs.openjdk.org/browse/JMC-7895 > > Alex Macdonald has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: > > - Add jdk21 recordings for rules.jdk test > - 8144: Add rule to detect GC Inverted Parallelism Marked as reviewed by hirt (Lead). ------------- PR Review: https://git.openjdk.org/jmc/pull/528#pullrequestreview-1757920376 From hirt at openjdk.org Thu Nov 30 16:48:27 2023 From: hirt at openjdk.org (Marcus Hirt) Date: Thu, 30 Nov 2023 16:48:27 GMT Subject: RFR: 4262: Duplicate headers when copying thread dump text to clipboard In-Reply-To: References: Message-ID: <7PiHPrwnonRkvu4al340uQcEe-ZdSSnm7lsrcXU33ug=.6bfd090f-460f-427a-996d-536d3af3483a@github.com> On Mon, 30 Oct 2023 17:31:47 GMT, Alex Macdonald wrote: > This PR addresses JMC-4262 [[0]](https://bugs.openjdk.org/browse/JMC-4262), in which copying thread dump nodes in the tree view exhibits some unexpected behaviour. > > The above issue describes that if you select two nodes from the tree and use the copy context menu action, then the thread dump header gets duplicated. However, what I'm seeing is that the parent thread dump information is also added to the clipboard along side the actual selected information I'm looking for. Further more, if I'm selecting parent nodes from the treeview, I get both the entire thread dump plus the thread dump body (duplicated) for each selected node. > > For example, if I'm trying to copy 2 parent nodes, I end up with 4 thread dump bodies. Or if I'm just trying to copy the entries from GC Threads 0 through 4, I end up with my selection, plus 4 copies of the thread dump. > > This PR adjusts the copy action to use the same functionality used for displaying the selection in the sashform. This way, the selections the user makes in the treeview is what is actually copied into the clipboard. > > Before: > - the clipboard text includes what the user selects in the treeviewer, along with the parent node for each selection > > After: > - clipboard text is based on exactly what the user selects in the treeviewer > > [0] https://bugs.openjdk.org/browse/JMC-4262 Marked as reviewed by hirt (Lead). ------------- PR Review: https://git.openjdk.org/jmc/pull/529#pullrequestreview-1757926354 From jmatsuoka at openjdk.org Thu Nov 30 17:13:43 2023 From: jmatsuoka at openjdk.org (Joshua Matsuoka) Date: Thu, 30 Nov 2023 17:13:43 GMT Subject: RFR: 7307: Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core [v8] In-Reply-To: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> References: <8p-z-kv8ll6PNFq7L5wxKpIv7n1Cy8KIv2wzlSRD7PU=.2073f3f6-ad4e-480d-b20c-431ace2e9d7a@github.com> Message-ID: > This PR addresses JMC-7307 [[0]](https://bugs.openjdk.java.net/browse/JMC-7307), in which it would be helpful to have flightrecorder.configuration distributed in jmc core. > > This PR continues from #299 , Alex is currently away so I'll be continuing this PR/bug. This PR builds off of Alex's existing branch and preserves the history. It fixes the merge conflicts and addresses the remaining review comments on #299 . > > [0] https://bugs.openjdk.java.net/browse/JMC-7307 Joshua Matsuoka has updated the pull request incrementally with one additional commit since the last revision: Update license headers ------------- Changes: - all: https://git.openjdk.org/jmc/pull/469/files - new: https://git.openjdk.org/jmc/pull/469/files/7904676a..68e6ef52 Webrevs: - full: https://webrevs.openjdk.org/?repo=jmc&pr=469&range=07 - incr: https://webrevs.openjdk.org/?repo=jmc&pr=469&range=06-07 Stats: 617 lines in 73 files changed: 2 ins; 556 del; 59 mod Patch: https://git.openjdk.org/jmc/pull/469.diff Fetch: git fetch https://git.openjdk.org/jmc.git pull/469/head:pull/469 PR: https://git.openjdk.org/jmc/pull/469