From marcus.hirt at oracle.com Thu Aug 2 19:11:36 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Thu, 02 Aug 2018 21:11:36 +0200 Subject: Review request for JMC-6110: should change the class path to reflect the current status of the jemmy project Message-ID: <6FA0B086-F292-4F3C-8F4F-949844F6E711@oracle.com> Hi all, Please review this small fix to properly represent the state of the Jemmy repo. Jira:???https://bugs.openjdk.java.net/browse/JMC-6110 Webrev:?http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.0/ Kind regards, Marcus From sharath.ballal at oracle.com Fri Aug 3 07:50:04 2018 From: sharath.ballal at oracle.com (Sharath Ballal) Date: Fri, 3 Aug 2018 00:50:04 -0700 (PDT) Subject: Review request for JMC-6110: should change the class path to reflect the current status of the jemmy project In-Reply-To: <6FA0B086-F292-4F3C-8F4F-949844F6E711@oracle.com> References: <6FA0B086-F292-4F3C-8F4F-949844F6E711@oracle.com> Message-ID: <034e5f44-a526-421d-9104-3d629d2f5285@default> Hi Marcus, Is "sourcepath=" not required now ? Thanks, Sharath -----Original Message----- From: Marcus Hirt Sent: Friday, August 03, 2018 12:42 AM To: jmc-dev at openjdk.java.net Subject: Review request for JMC-6110: should change the class path to reflect the current status of the jemmy project Hi all, Please review this small fix to properly represent the state of the Jemmy repo. Jira:???https://bugs.openjdk.java.net/browse/JMC-6110 Webrev:?http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.0/ Kind regards, Marcus From marcus.hirt at oracle.com Fri Aug 3 13:39:51 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Fri, 03 Aug 2018 15:39:51 +0200 Subject: Review request for JMC-6110: should change the class path to reflect the current status of the jemmy project In-Reply-To: References: <6FA0B086-F292-4F3C-8F4F-949844F6E711@oracle.com> Message-ID: <5B241484-77FD-4C2A-B661-B51BA06F0A47@oracle.com> Only for looking up the source if you have the source jars. In other words, mostly if you want to debug into Jemmy from within Eclipse. But since this will soon be superseded by a proper maven dependency, I just skipped them for now. /M ?On 2018-08-03, 09:51, "Sharath Ballal" wrote: Hi Marcus, Is "sourcepath=" not required now ? Thanks, Sharath -----Original Message----- From: Marcus Hirt Sent: Friday, August 03, 2018 12:42 AM To: jmc-dev at openjdk.java.net Subject: Review request for JMC-6110: should change the class path to reflect the current status of the jemmy project Hi all, Please review this small fix to properly represent the state of the Jemmy repo. Jira: https://bugs.openjdk.java.net/browse/JMC-6110 Webrev: http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.0/ Kind regards, Marcus From marcus.hirt at oracle.com Sat Aug 4 17:08:58 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Sat, 04 Aug 2018 17:08:58 +0000 Subject: hg: jmc/jmc: JMC-6110: Changing the classpath to reflect changes in the Jemmy project Message-ID: <201808041708.w74H8wOG003154@aojmv0008.oracle.com> Changeset: b908f78e9f9d Author: hirt Date: 2018-08-04 19:08 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/b908f78e9f9d JMC-6110: Changing the classpath to reflect changes in the Jemmy project Reviewed-by: ghb,reinhapa ! application/uitests/org.openjdk.jmc.test.jemmy/.classpath From marcus.hirt at oracle.com Tue Aug 7 08:41:52 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Tue, 07 Aug 2018 10:41:52 +0200 Subject: JDK Mission Control 7.0 Early Access Message-ID: <680BD365-1F8E-4F44-B980-2AF7278B296E@oracle.com> Hi all, Early access builds for JDK Mission Control 7.0 are now available here: http://jdk.java.net/jmc/ Kudos to Guru and the IDC JMC team for making this happen! Kind regards, Marcus From praveen.s.srivastava at oracle.com Wed Aug 8 02:59:48 2018 From: praveen.s.srivastava at oracle.com (Praveen Srivastava) Date: Tue, 7 Aug 2018 19:59:48 -0700 (PDT) Subject: JDK Mission Control 7.0 Early Access In-Reply-To: <680BD365-1F8E-4F44-B980-2AF7278B296E@oracle.com> References: <680BD365-1F8E-4F44-B980-2AF7278B296E@oracle.com> Message-ID: <35a0571a-b867-4f34-b336-c49ad740b81e@default> Hi All, It is a great news !! On behalf of IDC JMC team, I would like to sincerely thanks Marcus for his continued guidance and support from earlier Stockholm JMC team. Regards Praveen -----Original Message----- From: Marcus Hirt Sent: Tuesday, August 07, 2018 2:12 PM To: jmc-dev at openjdk.java.net Subject: JDK Mission Control 7.0 Early Access Hi all, Early access builds for JDK Mission Control 7.0 are now available here: http://jdk.java.net/jmc/ Kudos to Guru and the IDC JMC team for making this happen! Kind regards, Marcus From guru.hb at oracle.com Thu Aug 9 16:39:58 2018 From: guru.hb at oracle.com (Guru) Date: Thu, 9 Aug 2018 22:09:58 +0530 Subject: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar Message-ID: <921D91F0-F3A1-4A38-A196-46E74F2CF18E@oracle.com> Hi Marcus, Please review the fix for JBS : https://bugs.openjdk.java.net/browse/JMC-5859 Webrev : http://cr.openjdk.java.net/~ghb/JMC-5859/webrev.0/ RC and Solution is updated in JBS. Thanks, Guru From marcus.hirt at oracle.com Thu Aug 9 17:11:11 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Thu, 09 Aug 2018 19:11:11 +0200 Subject: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar In-Reply-To: References: Message-ID: Looks good. I?d consider dropping JMC from the class names though. No new review necessary if you do change the class names. /M From: Guru Date: Thursday, 9 August 2018 at 18:40 To: , Marcus Hirt Cc: Jayathirth D V , Klara Ward , Sharath Ballal , Viplove Paliwal Subject: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar Hi Marcus, Please review the fix for JBS : https://bugs.openjdk.java.net/browse/JMC-5859 Webrev : http://cr.openjdk.java.net/~ghb/JMC-5859/webrev.0/ RC and Solution is updated in JBS. Thanks, Guru From jayathirth.d.v at oracle.com Fri Aug 10 08:27:30 2018 From: jayathirth.d.v at oracle.com (Jayathirth D V) Date: Fri, 10 Aug 2018 01:27:30 -0700 (PDT) Subject: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar In-Reply-To: References: Message-ID: <9b310244-5631-4816-a481-5bc2f8380d8e@default> Hi Guru, ? Changes are fine. ? Thanks, Jay ? From: Marcus Hirt Sent: Thursday, August 09, 2018 10:41 PM To: Guru; jmc-dev at openjdk.java.net Cc: Jayathirth D V; Klara Ward; Sharath Ballal; Viplove Paliwal Subject: Re: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar ? Looks good. I?d consider dropping JMC from the class names though. No new review necessary if you do change the class names. ? /M ? From: Guru Date: Thursday, 9 August 2018 at 18:40 To: , Marcus Hirt Cc: Jayathirth D V , Klara Ward , Sharath Ballal , Viplove Paliwal Subject: Review request: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar ? Hi Marcus, ? Please review the fix for? JBS :?https://bugs.openjdk.java.net/browse/JMC-5859 Webrev :?http://cr.openjdk.java.net/~ghb/JMC-5859/webrev.0/ ? RC and Solution is updated in JBS. ? Thanks, Guru From guru.hb at oracle.com Fri Aug 10 08:34:07 2018 From: guru.hb at oracle.com (guru.hb at oracle.com) Date: Fri, 10 Aug 2018 08:34:07 +0000 Subject: hg: jmc/jmc: JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar Message-ID: <201808100834.w7A8Y71n006195@aojmv0008.oracle.com> Changeset: 2cc768144a86 Author: ghb Date: 2018-08-10 14:03 +0530 URL: http://hg.openjdk.java.net/jmc/jmc/rev/2cc768144a86 JMC-5859: Upgrade to Tycho 1.2.0 with class loader hook for javafx-swt.jar Reviewed-by: hirt,jdv ! application/org.openjdk.jmc.feature.rcp/feature.xml ! application/org.openjdk.jmc.javafx.osgi/META-INF/MANIFEST.MF + application/org.openjdk.jmc.osgi.extension/.classpath + application/org.openjdk.jmc.osgi.extension/.project + application/org.openjdk.jmc.osgi.extension/.settings/org.eclipse.jdt.core.prefs + application/org.openjdk.jmc.osgi.extension/.settings/org.eclipse.pde.core.prefs + application/org.openjdk.jmc.osgi.extension/META-INF/MANIFEST.MF + application/org.openjdk.jmc.osgi.extension/build.properties + application/org.openjdk.jmc.osgi.extension/hookconfigurators.properties + application/org.openjdk.jmc.osgi.extension/pom.xml + application/org.openjdk.jmc.osgi.extension/src/org/openjdk/jmc/osgi/extension/ExtClassLoaderHook.java + application/org.openjdk.jmc.osgi.extension/src/org/openjdk/jmc/osgi/extension/ExtHookConfigurator.java ! application/org.openjdk.jmc.rcp.product/jmc.product ! application/pom.xml ! pom.xml From guru.hb at oracle.com Mon Aug 13 03:53:47 2018 From: guru.hb at oracle.com (Guru) Date: Mon, 13 Aug 2018 09:23:47 +0530 Subject: Review request: JMC-6113: enable gpg-sign only for deploy phase Message-ID: <6CC45AB5-05D3-4BF8-B70C-7DCAF7E64E4E@oracle.com> Please review the fix for https://bugs.openjdk.java.net/browse/JMC-6113 Web rev : http://cr.openjdk.java.net/~ghb/JMC-6113/webrev.0/ Thanks, Guru From jayathirth.d.v at oracle.com Mon Aug 13 04:08:40 2018 From: jayathirth.d.v at oracle.com (Jayathirth D V) Date: Sun, 12 Aug 2018 21:08:40 -0700 (PDT) Subject: Review request: JMC-6113: enable gpg-sign only for deploy phase In-Reply-To: <6CC45AB5-05D3-4BF8-B70C-7DCAF7E64E4E@oracle.com> References: <6CC45AB5-05D3-4BF8-B70C-7DCAF7E64E4E@oracle.com> Message-ID: <6cbeb2aa-c383-403c-adfa-ae6b13520302@default> Hi Guru, Changes are fine. Thanks, Jay From: Guru Sent: Monday, August 13, 2018 9:24 AM To: jmc-dev at openjdk.java.net Cc: Jayathirth D V; Sharath Ballal Subject: Review request: JMC-6113: enable gpg-sign only for deploy phase Please review the fix for https://bugs.openjdk.java.net/browse/JMC-6113 Web rev : http://cr.openjdk.java.net/~ghb/JMC-6113/webrev.0/ Thanks, Guru From sharath.ballal at oracle.com Mon Aug 13 04:18:27 2018 From: sharath.ballal at oracle.com (Sharath Ballal) Date: Sun, 12 Aug 2018 21:18:27 -0700 (PDT) Subject: Review request: JMC-6113: enable gpg-sign only for deploy phase In-Reply-To: <6CC45AB5-05D3-4BF8-B70C-7DCAF7E64E4E@oracle.com> References: <6CC45AB5-05D3-4BF8-B70C-7DCAF7E64E4E@oracle.com> Message-ID: <1cd45c0c-e596-4e87-9f27-f9265612f0f0@default> Looks good Guru. Thanks, Sharath From: Guru Sent: Monday, August 13, 2018 9:24 AM To: jmc-dev at openjdk.java.net Cc: Jayathirth D V; Sharath Ballal Subject: Review request: JMC-6113: enable gpg-sign only for deploy phase Please review the fix for https://bugs.openjdk.java.net/browse/JMC-6113 Web rev : http://cr.openjdk.java.net/~ghb/JMC-6113/webrev.0/ Thanks, Guru From guru.hb at oracle.com Mon Aug 13 05:09:50 2018 From: guru.hb at oracle.com (guru.hb at oracle.com) Date: Mon, 13 Aug 2018 05:09:50 +0000 Subject: hg: jmc/jmc: JMC-6113: enable gpg-sign only for deploy phase Message-ID: <201808130509.w7D59pwe003886@aojmv0008.oracle.com> Changeset: c178c31fdcf2 Author: ghb Date: 2018-08-13 10:39 +0530 URL: http://hg.openjdk.java.net/jmc/jmc/rev/c178c31fdcf2 JMC-6113: enable gpg-sign only for deploy phase Reviewed-by: jdv,sballal ! core/org.openjdk.jmc.agent/pom.xml ! core/org.openjdk.jmc.common/pom.xml ! core/org.openjdk.jmc.flightrecorder.rules.jdk/pom.xml ! core/org.openjdk.jmc.flightrecorder.rules/pom.xml ! core/org.openjdk.jmc.flightrecorder/pom.xml From marcus.hirt at oracle.com Mon Aug 13 09:49:06 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 11:49:06 +0200 Subject: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit Message-ID: <6252D904-F4E2-4B39-9E40-9E29C0C60914@oracle.com> Hi all, Please review this small fix to get the tests to run properly. Jira: https://bugs.openjdk.java.net/browse/JMC-6114 Webrev: http://cr.openjdk.java.net/~hirt/JMC-6114/webrev.01/ Kind regards, Marcus From marcus.hirt at oracle.com Mon Aug 13 10:15:45 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 12:15:45 +0200 Subject: Input needed (Tycho & OSGi vs Maven)! Message-ID: Hi all, We have an issue that requires your input. We want to make the JMC core libraries available at maven central. For that to work, we must make the core artifacts independently buildable (i.e. not use Tycho to build them as part of everything else). This will mean that the core libraries will be consumed as part of the other third-party dependencies. Now, since these third-party dependencies are exposed to OSGi by artifact name only (not by group id and artifact id), we have the following alternatives: 1. Use group id: org.openjdk.jmc, artifact id: common. This is probably the nicest way to consume this from non-OSGi programs. However, from the OSGi side, this will be consumed as just common. 2. Use group id: org.openjdk, artifact id: jmc.common. This provides a bit of a qualifier (jmc) for OSGi programs. Uses a very wide group. 3. Use group id: org.openjdk.jmc, artifact id: jmc.common. Also provides a bit of a qualifier (jmc) for OSGi programs. Uses a less wide group. Will look artificial to non-OSGi programs. 4. Use group id: org.openjdk.jmc, artifact id: org.openjdk.jmc.common. Provides an FQN for OSGi-programs. Will look artificial to non-OSGi programs. What do you guys think? Kind regards, Marcus From chrishantha at gmail.com Mon Aug 13 11:28:15 2018 From: chrishantha at gmail.com (Isuru Perera) Date: Mon, 13 Aug 2018 16:58:15 +0530 Subject: Input needed (Tycho & OSGi vs Maven)! In-Reply-To: References: Message-ID: Hi, I think that the option #4 is good. It'll look artificial to non-OSGi programs, but that's just the name. It's better to have FQN for OSGi programs. As a developer, I know that these artifacts are mainly used by the JMC tool, based on an OSGi framework. I do not mind the artifact id in non-OSGi programs as long as I can get the dependencies from the Maven Central and use JMC core libraries to consume JFR APIs. Currently, I'm getting the artifacts from local JDK path ( https://github.com/chrishantha/jfr-flame-graph/blob/d563550dcb2b3d87ee78524ff01d712102f8c6d0/gradle/missioncontrol.gradle) and I could avoid this workaround if the JMC core libraries are available in Maven Central. Thank you. On Mon, Aug 13, 2018 at 3:46 PM Marcus Hirt wrote: > Hi all, > > We have an issue that requires your input. We want to make the JMC core > libraries available at maven central. For that to work, we must make the > core > artifacts independently buildable (i.e. not use Tycho to build them as > part > of everything else). This will mean that the core libraries will be > consumed > as part of the other third-party dependencies. > > Now, since these third-party dependencies are exposed to OSGi by artifact > name > only (not by group id and artifact id), we have the following alternatives: > > 1. Use group id: org.openjdk.jmc, artifact id: common. > This is probably the nicest way to consume this from non-OSGi programs. > However, from the OSGi side, this will be consumed as just common. > > 2. Use group id: org.openjdk, artifact id: jmc.common. > This provides a bit of a qualifier (jmc) for OSGi programs. Uses a very > wide > group. > > 3. Use group id: org.openjdk.jmc, artifact id: jmc.common. > Also provides a bit of a qualifier (jmc) for OSGi programs. Uses a less > wide > group. Will look artificial to non-OSGi programs. > > 4. Use group id: org.openjdk.jmc, artifact id: org.openjdk.jmc.common. > Provides an FQN for OSGi-programs. Will look artificial to non-OSGi > programs. > > What do you guys think? > > Kind regards, > Marcus > > > -- Isuru Perera about.me/chrishantha From guru.hb at oracle.com Mon Aug 13 13:10:29 2018 From: guru.hb at oracle.com (Guru) Date: Mon, 13 Aug 2018 18:40:29 +0530 Subject: Review request: JMC-6072: Incorrect artifactId for snapshot build Message-ID: Hi All, Please review the fix for : https://bugs.openjdk.java.net/browse/JMC-6072 webrev : http://cr.openjdk.java.net/~ghb/JMC-6072/webrev.0/ RC and solution is updated in JBS. With this fix the core artifactID will be with group id : ?org.openjdk.jmc? (as it was earlier) and artifactId (from maven point of view and Bundle-SymbolicName from Tyco point of view) name will be artifactId(old) ?? artifactdId(new) org.openjdk.jmc.common (old) ? jmc.common org.openjdk.jmc.flightrecorder (old) ? jmc.flightrecorder org.openjdk.jmc.flightrecorder.rules (old) ? jmc.flightrecorder.rules org.openjdk.jmc.flightrecorder.rules.jdk (old) ? jmc.common.flightrecorder.rules.jdk For naming convention Please update your views on http://mail.openjdk.java.net/pipermail/jmc-dev/2018-August/000155.html Thanks, Guru From marcus.hirt at oracle.com Mon Aug 13 13:32:05 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 15:32:05 +0200 Subject: Review request: JMC-6072: Incorrect artifactId for snapshot build In-Reply-To: References: Message-ID: <9439CD39-71F7-4C10-9CFD-EB3FFD974EE7@oracle.com> Hi Guru, I think the last one was meant to be: org.openjdk.jmc.flightrecorder.rules.jdk (old) ? jmc.flightrecorder.rules.jdk Right? Kind regards, Marcus From: Guru Date: Monday, 13 August 2018 at 15:10 To: , Marcus Hirt Cc: Jayathirth D V , Sharath Ballal Subject: Review request: JMC-6072: Incorrect artifactId for snapshot build Hi All, Please review the fix for :?https://bugs.openjdk.java.net/browse/JMC-6072? webrev :?http://cr.openjdk.java.net/~ghb/JMC-6072/webrev.0/? RC and solution is updated in JBS. With this fix the core artifactID will be with group id : ?org.openjdk.jmc? (as it was earlier) and artifactId (from maven point of view and Bundle-SymbolicName from Tyco point of view) name will be? artifactId(old) ??? artifactdId(new) org.openjdk.jmc.common (old) ? jmc.common org.openjdk.jmc.flightrecorder (old) ? jmc.flightrecorder? org.openjdk.jmc.flightrecorder.rules (old) ? jmc.flightrecorder.rules org.openjdk.jmc.flightrecorder.rules.jdk (old) ? jmc.common.flightrecorder.rules.jdk For naming convention Please update your views on?http://mail.openjdk.java.net/pipermail/jmc-dev/2018-August/000155.html? Thanks, Guru From guru.hb at oracle.com Mon Aug 13 13:34:07 2018 From: guru.hb at oracle.com (Guru) Date: Mon, 13 Aug 2018 19:04:07 +0530 Subject: Review request: JMC-6072: Incorrect artifactId for snapshot build In-Reply-To: <9439CD39-71F7-4C10-9CFD-EB3FFD974EE7@oracle.com> References: <9439CD39-71F7-4C10-9CFD-EB3FFD974EE7@oracle.com> Message-ID: > On 13-Aug-2018, at 7:02 PM, Marcus Hirt wrote: > > > Hi Guru, > > I think the last one was meant to be: > org.openjdk.jmc.flightrecorder.rules.jdk (old) ? jmc.flightrecorder.rules.jdk > > Right? Yes, Marcus you are right, > > Kind regards, > Marcus > > From: Guru > Date: Monday, 13 August 2018 at 15:10 > To: , Marcus Hirt > Cc: Jayathirth D V , Sharath Ballal > Subject: Review request: JMC-6072: Incorrect artifactId for snapshot build > > Hi All, > > Please review the fix for : https://bugs.openjdk.java.net/browse/JMC-6072 > webrev : http://cr.openjdk.java.net/~ghb/JMC-6072/webrev.0/ > RC and solution is updated in JBS. > > With this fix the core artifactID will be with group id : ?org.openjdk.jmc? (as it was earlier) and artifactId (from maven point of view and Bundle-SymbolicName from Tyco point of view) name will be > artifactId(old) ?? artifactdId(new) > org.openjdk.jmc.common (old) ? jmc.common > org.openjdk.jmc.flightrecorder (old) ? jmc.flightrecorder > org.openjdk.jmc.flightrecorder.rules (old) ? jmc.flightrecorder.rules > org.openjdk.jmc.flightrecorder.rules.jdk (old) ? jmc.common.flightrecorder.rules.jdk > > For naming convention Please update your views on http://mail.openjdk.java.net/pipermail/jmc-dev/2018-August/000155.html > > Thanks, > Guru > > > > > From marcus.hirt at oracle.com Mon Aug 13 13:37:02 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 15:37:02 +0200 Subject: Input needed (Tycho & OSGi vs Maven)! In-Reply-To: <0440C85E-0DEE-4740-A380-69765872BDE3@gmail.com> References: <0440C85E-0DEE-4740-A380-69765872BDE3@gmail.com> Message-ID: <36EB6A9D-53E5-4AC1-808A-D52885490BC8@oracle.com> Hi all, I am leaning towards FQN (alternative 4), unless there is a way to: 1. Build core with the Maven groupID and artifactID from alternative 1. 2. Get the Tycho and the p2-maven-plugin to play well with a Bundle-SymbolicName that is built up from both the groupID _and_ artifactID. Kind regards, Marcus From: Isuru Perera Date: Monday, 13 August 2018 at 13:28 To: Cc: Subject: Re: Input needed (Tycho & OSGi vs Maven)! Hi, I think that the option #4 is good. It'll look artificial to non-OSGi programs, but that's just the name. It's better to have FQN for OSGi programs. As a developer, I know that these artifacts are mainly used by the JMC tool, based on an OSGi framework. I do not mind the artifact id in non-OSGi programs as long as I can get the dependencies from the Maven Central and use JMC core libraries to consume JFR APIs. Currently, I'm getting the artifacts from local JDK path (https://github.com/chrishantha/jfr-flame-graph/blob/d563550dcb2b3d87ee78524ff01d712102f8c6d0/gradle/missioncontrol.gradle) and I could avoid this workaround if the JMC core libraries are available in Maven Central. Thank you. On Mon, Aug 13, 2018 at 3:46 PM Marcus Hirt wrote: Hi all, We have an issue that requires your input. We want to make the JMC core libraries available at maven central. For that to work, we must make the core artifacts independently buildable (i.e. not use Tycho to build them as part of everything else). This will mean that the core libraries will be consumed as part of the other third-party dependencies. Now, since these third-party dependencies are exposed to OSGi by artifact name only (not by group id and artifact id), we have the following alternatives: 1. Use group id: org.openjdk.jmc, artifact id: common. ? ?This is probably the nicest way to consume this from non-OSGi programs. ? ?However, from the OSGi side, this will be consumed as just common. 2. Use group id: org.openjdk, artifact id: jmc.common. ? ?This provides a bit of a qualifier (jmc) for OSGi programs. Uses a very wide ? ?group. 3. Use group id: org.openjdk.jmc, artifact id: jmc.common. ? ?Also provides a bit of a qualifier (jmc) for OSGi programs. Uses a less wide ? ?group. Will look artificial to non-OSGi programs. 4. Use group id: org.openjdk.jmc, artifact id: org.openjdk.jmc.common. ? ?Provides an FQN for OSGi-programs. Will look artificial to non-OSGi programs. What do you guys think? Kind regards, Marcus -- Isuru Perera http://about.me/chrishantha From miro.wengner at gmail.com Mon Aug 13 15:13:07 2018 From: miro.wengner at gmail.com (Miro Wengner) Date: Mon, 13 Aug 2018 17:13:07 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes Message-ID: <1DCA0E7B-BDD5-456C-95C1-110C513117D2@gmail.com> Hi Everyone, here is my patch for review Kind Regards, Miro -------------- next part -------------- -------------- next part -------------- From marcus.hirt at oracle.com Mon Aug 13 15:21:09 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 17:21:09 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: References: Message-ID: <951D6638-E7FB-4EBC-AC0A-3DB2CAEA69ED@oracle.com> Hi Miro, You will need to list the diffs in the e-mail. It's a mailing list, so your attachments didn't make it through. Kind regards, Marcus ?On 2018-08-13, 17:13, "jmc-dev on behalf of Miro Wengner" wrote: Hi Everyone, here is my patch for review Kind Regards, Miro From miro.wengner at gmail.com Mon Aug 13 15:25:25 2018 From: miro.wengner at gmail.com (Miro Wengner) Date: Mon, 13 Aug 2018 17:25:25 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes Message-ID: <0FF3D306-EC7E-4B3F-9173-7D079437BBAF@gmail.com> Hi Everyone, here is my patch for a review, Thank you Marcus! Kind Regards, Miro diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 @@ -38,6 +38,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -145,6 +146,7 @@ import org.openjdk.jmc.ui.charts.XYQuantities; import org.openjdk.jmc.ui.column.ColumnMenusFactory; import org.openjdk.jmc.ui.column.TableSettings; +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; import org.openjdk.jmc.ui.handlers.ActionToolkit; import org.openjdk.jmc.ui.handlers.MCContextMenuManager; import org.openjdk.jmc.ui.misc.ChartCanvas; @@ -176,17 +178,25 @@ }; } - private static Map fieldColorMap = new HashMap<>(); + private static final Map FIELD_COLOR_MAP = new HashMap<>(); + private static final Map DEFAULT_COLUMNS_ORDER; static { // FIXME: Create FieldAppearance class, similar to TypeAppearence? - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); // FIXME: Handle ColorProvider and combined events + Map columnsOrderMap = new HashMap<>(); + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); + } public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); @@ -198,7 +208,7 @@ public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ public static Color getFieldColor(String fieldId) { - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); } public static Color getFieldColor(IAttribute attribute) { @@ -1053,4 +1063,33 @@ && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); } + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { + final Stream defaultOrderColumns = columns.stream() + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) + .filter(c -> !c.isHidden()) + .sorted((c1, c2) -> + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), + DEFAULT_COLUMNS_ORDER.get(c2.getId())) + ); + final Stream naturalOrderColumns = columns.stream() + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); + return new TableSettings(orderBy, resultColumns); + } + + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { + final List defaultListCols = new ArrayList<>(); + for (String columnId : allColumns) { + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); + } + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); + } + + private static String createColumnId(IAttribute attr) { + return new StringBuilder().append(attr.getIdentifier()) + .append(":") + .append(attr.getContentType().getIdentifier()) + .toString(); + } } diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 @@ -335,7 +335,8 @@ Composite parent = oldListControl.getParent(); oldListControl.dispose(); list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); parent.layout(); list.show(filteredItems); } diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 @@ -67,6 +67,7 @@ import org.openjdk.jmc.flightrecorder.ui.IPageContainer; import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; import org.openjdk.jmc.flightrecorder.ui.StreamModel; +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; @@ -153,10 +154,11 @@ // FIXME: Should we use the state here, if the columns have been updated? // FIXME: Should we change the column state if the user explicitly has configured the columns? - TableSettings itemListSettings = TableSettings.forStateAndColumns( - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), - acc.getCommonAttributes().keySet()); - + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), + acc.getCommonAttributes().keySet()); + Composite listComposite = toolkit.createComposite(tabFolder); listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); From jmatsuok at redhat.com Mon Aug 13 15:41:11 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Mon, 13 Aug 2018 11:41:11 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Message-ID: Hi, This is a patch that addresses JMC-5128 and JMC-5149. Currently the event thread field in the GC Phase Events isn't used by the UI. This patch accomplishes the following: - Adds this field to the phases table. - Adds a Thread table similar to the Java Application page which displays the threads that the phase events occurred on. - Adds a Thread lane to visualize the thread selected by the above table. This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 Thoughts? Cheers, - Josh -------------- next part -------------- A non-text attachment was scrubbed... Name: JMC-5128.patch Type: text/x-patch Size: 10813 bytes Desc: not available URL: From marcus.hirt at oracle.com Mon Aug 13 15:43:47 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 17:43:47 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> Message-ID: I will sponsor this change, but I think someone else should review it, as I helped with it. Guru, Sharath? Kind regards, Marcus ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: Hi Everyone, here is my patch for a review, Thank you Marcus! Kind Regards, Miro diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 @@ -38,6 +38,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -145,6 +146,7 @@ import org.openjdk.jmc.ui.charts.XYQuantities; import org.openjdk.jmc.ui.column.ColumnMenusFactory; import org.openjdk.jmc.ui.column.TableSettings; +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; import org.openjdk.jmc.ui.handlers.ActionToolkit; import org.openjdk.jmc.ui.handlers.MCContextMenuManager; import org.openjdk.jmc.ui.misc.ChartCanvas; @@ -176,17 +178,25 @@ }; } - private static Map fieldColorMap = new HashMap<>(); + private static final Map FIELD_COLOR_MAP = new HashMap<>(); + private static final Map DEFAULT_COLUMNS_ORDER; static { // FIXME: Create FieldAppearance class, similar to TypeAppearence? - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); // FIXME: Handle ColorProvider and combined events + Map columnsOrderMap = new HashMap<>(); + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); + } public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); @@ -198,7 +208,7 @@ public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ public static Color getFieldColor(String fieldId) { - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); } public static Color getFieldColor(IAttribute attribute) { @@ -1053,4 +1063,33 @@ && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); } + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { + final Stream defaultOrderColumns = columns.stream() + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) + .filter(c -> !c.isHidden()) + .sorted((c1, c2) -> + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), + DEFAULT_COLUMNS_ORDER.get(c2.getId())) + ); + final Stream naturalOrderColumns = columns.stream() + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); + return new TableSettings(orderBy, resultColumns); + } + + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { + final List defaultListCols = new ArrayList<>(); + for (String columnId : allColumns) { + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); + } + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); + } + + private static String createColumnId(IAttribute attr) { + return new StringBuilder().append(attr.getIdentifier()) + .append(":") + .append(attr.getContentType().getIdentifier()) + .toString(); + } } diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 @@ -335,7 +335,8 @@ Composite parent = oldListControl.getParent(); oldListControl.dispose(); list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); parent.layout(); list.show(filteredItems); } diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 @@ -67,6 +67,7 @@ import org.openjdk.jmc.flightrecorder.ui.IPageContainer; import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; import org.openjdk.jmc.flightrecorder.ui.StreamModel; +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; @@ -153,10 +154,11 @@ // FIXME: Should we use the state here, if the columns have been updated? // FIXME: Should we change the column state if the user explicitly has configured the columns? - TableSettings itemListSettings = TableSettings.forStateAndColumns( - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), - acc.getCommonAttributes().keySet()); - + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), + acc.getCommonAttributes().keySet()); + Composite listComposite = toolkit.createComposite(tabFolder); listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); From marcus.hirt at oracle.com Mon Aug 13 15:56:36 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 17:56:36 +0200 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> Message-ID: <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> Hi Josh, Thanks for the suggestion! The normal work process is to focus the UI on whatever is of interest, and then just go to the Applications view. That way we end up not having to replicate that functionality on every page. Can you tell me a little bit more about your use case and how you see this being used? (Good initiative! I think you're the first non-Oracle employee attempting to improve on the visualization, so kudos!) Kind regards, Marcus ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" wrote: Hi, This is a patch that addresses JMC-5128 and JMC-5149. Currently the event thread field in the GC Phase Events isn't used by the UI. This patch accomplishes the following: - Adds this field to the phases table. - Adds a Thread table similar to the Java Application page which displays the threads that the phase events occurred on. - Adds a Thread lane to visualize the thread selected by the above table. This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 Thoughts? Cheers, - Josh From jmatsuok at redhat.com Mon Aug 13 18:51:45 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Mon, 13 Aug 2018 14:51:45 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> Message-ID: Hi Marcus, Thanks for the feedback! I was following the suggestions in the comments/history on https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to having the thread lane able to be visualized alongside the rest of the GC information. It's nice being able to see the thread events/activity align with the pause visualization and heap activity. I can also seeing this be useful for users who may have custom events defined, where it may be useful to see these events alongside the heap/gc behaviour. I noticed as well that the thread activity display on the Java Application page lacks the context menu options to display additional types of events in the visualization. Perhaps if we feel that these changes are unnecessary, I can make an additional patch that could add that functionality to the thread lane on the application page. In either case though, we should probably still add the event thread to the information displayed for pause events. Cheers, - Josh On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt wrote: > Hi Josh, > > Thanks for the suggestion! The normal work process is to focus the UI on > whatever is of interest, and then just go to the Applications view. That > way > we end up not having to replicate that functionality on every page. > > Can you tell me a little bit more about your use case and how you see this > being used? > > (Good initiative! I think you're the first non-Oracle employee attempting > to > improve on the visualization, so kudos!) > > Kind regards, > Marcus > > ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" < > jmc-dev-bounces at openjdk.java.net on behalf of jmatsuok at redhat.com> wrote: > > Hi, > > This is a patch that addresses JMC-5128 and JMC-5149. Currently the > event > thread field in the GC Phase Events isn't used by the UI. This patch > accomplishes the following: > > - Adds this field to the phases table. > - Adds a Thread table similar to the Java Application page which > displays > the threads that the phase events occurred on. > - Adds a Thread lane to visualize the thread selected by the above > table. > > This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 > > Thoughts? > > Cheers, > > - Josh > > > > > From marcus.hirt at oracle.com Mon Aug 13 19:59:28 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 13 Aug 2018 21:59:28 +0200 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> Message-ID: <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Hi Joshua, I agree that the thread field should be added to the phases table. I worry about having a threads table in the beginning of the page, as it moves the focus from GCs to threads. If you are only interested in thread halts in relation to other events in the recording, you should really go to the Application page. Then you see all the halts (for example other vm-operations), and not only the GC-related ones. You could keep the Thread Activity lane, but for example make it show events for the threads involved in whatever selection you do in the tables above (without having an explicit threads table). What do you think? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 13 August 2018 at 20:51 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Thanks for the feedback! I was following the suggestions in the comments/history on https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to having the thread lane able to be visualized alongside the rest of the GC information. It's nice being able to see the thread events/activity align with the pause visualization and heap activity. I can also seeing this be useful for users who may have custom events defined, where it may be useful to see these events alongside the heap/gc behaviour.? I noticed as well that the thread activity display on the Java Application page lacks the context menu options to display additional types of events in the visualization. Perhaps if we feel that these changes are unnecessary, I can make an additional patch that could add that functionality to the thread lane on the application page. In either case though, we should probably still add the event thread to the information displayed for pause events. Cheers, - Josh On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt wrote: Hi Josh, Thanks for the suggestion! The normal work process is to focus the UI on whatever is of interest, and then just go to the Applications view. That way we end up not having to replicate that functionality on every page. Can you tell me a little bit more about your use case and how you see this being used? (Good initiative! I think you're the first non-Oracle employee attempting to improve on the visualization, so kudos!) Kind regards, Marcus ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" wrote: ? ? Hi, ? ? This is a patch that addresses JMC-5128 and JMC-5149. Currently the event ? ? thread field in the GC Phase Events isn't used by the UI. This patch ? ? accomplishes the following: ? ? - Adds this field to the phases table. ? ? - Adds a Thread table similar to the Java Application page which displays ? ? the threads that the phase events occurred on. ? ? - Adds a Thread lane to visualize the thread selected by the above table. ? ? This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 ? ? Thoughts? ? ? Cheers, ? ? - Josh From jmatsuok at redhat.com Mon Aug 13 20:07:12 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Mon, 13 Aug 2018 16:07:12 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Marcus, Sounds good to me! I agree the thread chart seems a little odd looking at it again. I'll remove it but keep the activity lane as you suggested. Would you be opposed to a separate patch adding the thread lane context menu entries to the application page? It seems inconsistent with the other uses of activity lanes. Cheers, - Josh On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt wrote: > Hi Joshua, > > I agree that the thread field should be added to the phases table. I worry > about having a threads table in the beginning of the page, as it moves the > focus from GCs to threads. If you are only interested in thread halts in > relation to other events in the recording, you should really go to the > Application page. Then you see all the halts (for example other > vm-operations), and not only the GC-related ones. > > You could keep the Thread Activity lane, but for example make it show > events for the threads involved in whatever selection you do in the tables > above (without having an explicit threads table). > > What do you think? > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Monday, 13 August 2018 at 20:51 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > Thanks for the feedback! > > I was following the suggestions in the comments/history on > https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to > having the thread lane able to be visualized alongside the rest of the GC > information. It's nice being able to see the thread events/activity align > with the pause visualization and heap activity. I can also seeing this be > useful for users who may have custom events defined, where it may be useful > to see these events alongside the heap/gc behaviour. I noticed as well > that the thread activity display on the Java Application page lacks the > context menu options to display additional types of events in the > visualization. Perhaps if we feel that these changes are unnecessary, I can > make an additional patch that could add that functionality to the thread > lane on the application page. In either case though, we should probably > still add the event thread to the information displayed for pause events. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt marcus.hirt at oracle.com> wrote: > Hi Josh, > > Thanks for the suggestion! The normal work process is to focus the UI on > whatever is of interest, and then just go to the Applications view. That > way > we end up not having to replicate that functionality on every page. > > Can you tell me a little bit more about your use case and how you see this > being used? > > (Good initiative! I think you're the first non-Oracle employee attempting > to > improve on the visualization, so kudos!) > > Kind regards, > Marcus > > ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" jmc-dev-bounces at openjdk.java.net on behalf of mailto:jmatsuok at redhat.com> > wrote: > > Hi, > > This is a patch that addresses JMC-5128 and JMC-5149. Currently the > event > thread field in the GC Phase Events isn't used by the UI. This patch > accomplishes the following: > > - Adds this field to the phases table. > - Adds a Thread table similar to the Java Application page which > displays > the threads that the phase events occurred on. > - Adds a Thread lane to visualize the thread selected by the above > table. > > This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 > > Thoughts? > > Cheers, > > - Josh > > > > > > > From mtorre at redhat.com Mon Aug 13 20:10:44 2018 From: mtorre at redhat.com (Mario Torre) Date: Mon, 13 Aug 2018 20:10:44 +0000 Subject: Input needed (Tycho & OSGi vs Maven)! In-Reply-To: <36EB6A9D-53E5-4AC1-808A-D52885490BC8@oracle.com> References: <0440C85E-0DEE-4740-A380-69765872BDE3@gmail.com>, <36EB6A9D-53E5-4AC1-808A-D52885490BC8@oracle.com> Message-ID: I like #4 too, seems very clean. Cheers, Mario ? Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 ________________________________ From: jmc-dev on behalf of Marcus Hirt Sent: Monday, August 13, 2018 3:37:02 PM To: jmc-dev at openjdk.java.net Subject: Re: Input needed (Tycho & OSGi vs Maven)! Hi all, I am leaning towards FQN (alternative 4), unless there is a way to: 1. Build core with the Maven groupID and artifactID from alternative 1. 2. Get the Tycho and the p2-maven-plugin to play well with a Bundle-SymbolicName that is built up from both the groupID _and_ artifactID. Kind regards, Marcus From: Isuru Perera Date: Monday, 13 August 2018 at 13:28 To: Cc: Subject: Re: Input needed (Tycho & OSGi vs Maven)! Hi, I think that the option #4 is good. It'll look artificial to non-OSGi programs, but that's just the name. It's better to have FQN for OSGi programs. As a developer, I know that these artifacts are mainly used by the JMC tool, based on an OSGi framework. I do not mind the artifact id in non-OSGi programs as long as I can get the dependencies from the Maven Central and use JMC core libraries to consume JFR APIs. Currently, I'm getting the artifacts from local JDK path (https://github.com/chrishantha/jfr-flame-graph/blob/d563550dcb2b3d87ee78524ff01d712102f8c6d0/gradle/missioncontrol.gradle) and I could avoid this workaround if the JMC core libraries are available in Maven Central. Thank you. On Mon, Aug 13, 2018 at 3:46 PM Marcus Hirt wrote: Hi all, We have an issue that requires your input. We want to make the JMC core libraries available at maven central. For that to work, we must make the core artifacts independently buildable (i.e. not use Tycho to build them as part of everything else). This will mean that the core libraries will be consumed as part of the other third-party dependencies. Now, since these third-party dependencies are exposed to OSGi by artifact name only (not by group id and artifact id), we have the following alternatives: 1. Use group id: org.openjdk.jmc, artifact id: common. This is probably the nicest way to consume this from non-OSGi programs. However, from the OSGi side, this will be consumed as just common. 2. Use group id: org.openjdk, artifact id: jmc.common. This provides a bit of a qualifier (jmc) for OSGi programs. Uses a very wide group. 3. Use group id: org.openjdk.jmc, artifact id: jmc.common. Also provides a bit of a qualifier (jmc) for OSGi programs. Uses a less wide group. Will look artificial to non-OSGi programs. 4. Use group id: org.openjdk.jmc, artifact id: org.openjdk.jmc.common. Provides an FQN for OSGi-programs. Will look artificial to non-OSGi programs. What do you guys think? Kind regards, Marcus -- Isuru Perera http://about.me/chrishantha From patrick at reini.net Mon Aug 13 20:22:39 2018 From: patrick at reini.net (Patrick Reinhart) Date: Mon, 13 Aug 2018 22:22:39 +0200 Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central Message-ID: Hi everybody, I added a new feature to have the jemmy libraries resolved from maven central. http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ -Patrick From jayathirth.d.v at oracle.com Tue Aug 14 09:37:39 2018 From: jayathirth.d.v at oracle.com (Jayathirth D V) Date: Tue, 14 Aug 2018 09:37:39 +0000 (UTC) Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: References: Message-ID: Hi Patrick, Thanks for your contribution to this important change. I created new repo to run UI tests with this patch. I am facing below problems related to this patch: 1) While importing the patch I am getting "abort: path '.\README.md' is inside nested repo '.'". Since README.md has only comments, I selectively removed the changes in README.md and imported the patch. 2) After importing the patch "mvn package" & "mvn verify -Dspotbugs.skip=true" is running fine. But when I try to run UI tests using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many Access restriction errors for org.openjdk.jmc.test.jemmy. [ERROR] Access restriction: The type 'Image' is not API (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') [ERROR] D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper s\MCJemmyBase.java:[810] [ERROR] image.save(fileName); [ERROR] ^^^^^^^^^^^^^^^^^^^^ [ERROR] Access restriction: The method 'Image.save(String)' is not API (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') [ERROR] 92 problems (92 errors) [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy Please clarify. Regards, Jay -----Original Message----- From: Patrick Reinhart [mailto:patrick at reini.net] Sent: Tuesday, August 14, 2018 1:53 AM To: jmc-dev at openjdk.java.net Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central Hi everybody, I added a new feature to have the jemmy libraries resolved from maven central. http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ -Patrick From jmatsuok at redhat.com Tue Aug 14 15:25:17 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Tue, 14 Aug 2018 11:25:17 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Marcus, Heres an updated patch, I've removed the thread table and made the thread activity lane dependent on the table selection. Cheers, - Josh On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka wrote: > Hi Marcus, > > Sounds good to me! I agree the thread chart seems a little odd looking at > it again. I'll remove it but keep the activity lane as you suggested. > > Would you be opposed to a separate patch adding the thread lane context > menu entries to the application page? It seems inconsistent with the other > uses of activity lanes. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt > wrote: > >> Hi Joshua, >> >> I agree that the thread field should be added to the phases table. I >> worry about having a threads table in the beginning of the page, as it >> moves the focus from GCs to threads. If you are only interested in thread >> halts in relation to other events in the recording, you should really go to >> the Application page. Then you see all the halts (for example other >> vm-operations), and not only the GC-related ones. >> >> You could keep the Thread Activity lane, but for example make it show >> events for the threads involved in whatever selection you do in the tables >> above (without having an explicit threads table). >> >> What do you think? >> >> Kind regards, >> Marcus >> >> From: Joshua Matsuoka >> Date: Monday, 13 August 2018 at 20:51 >> To: Marcus Hirt >> Cc: >> Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC >> Phase Events >> >> Hi Marcus, >> >> Thanks for the feedback! >> >> I was following the suggestions in the comments/history on >> https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to >> having the thread lane able to be visualized alongside the rest of the GC >> information. It's nice being able to see the thread events/activity align >> with the pause visualization and heap activity. I can also seeing this be >> useful for users who may have custom events defined, where it may be useful >> to see these events alongside the heap/gc behaviour. I noticed as well >> that the thread activity display on the Java Application page lacks the >> context menu options to display additional types of events in the >> visualization. Perhaps if we feel that these changes are unnecessary, I can >> make an additional patch that could add that functionality to the thread >> lane on the application page. In either case though, we should probably >> still add the event thread to the information displayed for pause events. >> >> Cheers, >> >> - Josh >> >> On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt > marcus.hirt at oracle.com> wrote: >> Hi Josh, >> >> Thanks for the suggestion! The normal work process is to focus the UI on >> whatever is of interest, and then just go to the Applications view. That >> way >> we end up not having to replicate that functionality on every page. >> >> Can you tell me a little bit more about your use case and how you see this >> being used? >> >> (Good initiative! I think you're the first non-Oracle employee attempting >> to >> improve on the visualization, so kudos!) >> >> Kind regards, >> Marcus >> >> ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" > jmc-dev-bounces at openjdk.java.net on behalf of mailto:jmatsuok at redhat.com> >> wrote: >> >> Hi, >> >> This is a patch that addresses JMC-5128 and JMC-5149. Currently the >> event >> thread field in the GC Phase Events isn't used by the UI. This patch >> accomplishes the following: >> >> - Adds this field to the phases table. >> - Adds a Thread table similar to the Java Application page which >> displays >> the threads that the phase events occurred on. >> - Adds a Thread lane to visualize the thread selected by the above >> table. >> >> This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 >> >> Thoughts? >> >> Cheers, >> >> - Josh >> >> >> >> >> >> >> > -------------- next part -------------- A non-text attachment was scrubbed... Name: JMC-5128-1.patch Type: text/x-patch Size: 7659 bytes Desc: not available URL: From patrick at reini.net Wed Aug 15 06:10:56 2018 From: patrick at reini.net (Patrick Reinhart) Date: Wed, 15 Aug 2018 08:10:56 +0200 Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: References: Message-ID: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> Hi jay, The changes where made on a Mac though. I now tried it on my Linux machine starting at: [rep at bisonchws12019 jmc]$ hg branches default 31:c178c31fdcf2 Applied the patch not having any problems: [rep at bisonchws12019 jmc]$ curl http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch | patch -p1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 31304 100 31304 0 0 26086 0 0:00:01 0:00:01 --:--:-- 26108 patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath patching file application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs patching file application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF patching file application/uitests/org.openjdk.jmc.test.jemmy/build.properties patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml patching file releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target patching file releng/platform-definitions/platform-definition-photon/platform-definition-photon.target patching file releng/third-party/pom.xml patching file application/org.openjdk.jmc.feature.jemmy/.project patching file application/org.openjdk.jmc.feature.jemmy/build.properties patching file application/org.openjdk.jmc.feature.jemmy/feature.properties patching file application/org.openjdk.jmc.feature.jemmy/feature.xml patching file application/org.openjdk.jmc.feature.jemmy/pom.xml patching file application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs After building the site (mvn p2:site) and starting the local jetty instance (mvn jetty:run) mvn package mvn verify -Dspotbugs.skip=true mvn verify -Dspotbugs.skip=true -Puitests All went well... even though I will check the same parts on Windows later too... -Patrick On 2018-08-14 11:37, Jayathirth D V wrote: > Hi Patrick, > > Thanks for your contribution to this important change. > I created new repo to run UI tests with this patch. I am facing below > problems related to this patch: > > 1) While importing the patch I am getting "abort: path '.\README.md' > is inside nested repo '.'". Since README.md has only comments, I > selectively removed the changes in README.md and imported the patch. > > 2) After importing the patch "mvn package" & "mvn verify > -Dspotbugs.skip=true" is running fine. But when I try to run UI tests > using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many > Access restriction errors for org.openjdk.jmc.test.jemmy. > > [ERROR] Access restriction: The type 'Image' is not API (restriction > on classpath entry > 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o > rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > [ERROR] > D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper > s\MCJemmyBase.java:[810] > [ERROR] image.save(fileName); > [ERROR] ^^^^^^^^^^^^^^^^^^^^ > [ERROR] Access restriction: The method 'Image.save(String)' is not API > (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p > 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > [ERROR] 92 problems (92 errors) > [ERROR] -> [Help 1] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with > the -e switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, > please read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > [ERROR] > [ERROR] After correcting the problems, you can resume the build with > the command > [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy > > Please clarify. > > Regards, > Jay > > -----Original Message----- > From: Patrick Reinhart [mailto:patrick at reini.net] > Sent: Tuesday, August 14, 2018 1:53 AM > To: jmc-dev at openjdk.java.net > Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central > > Hi everybody, > > I added a new feature to have the jemmy libraries resolved from maven > central. > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ > > -Patrick From jmatsuok at redhat.com Wed Aug 15 17:47:53 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Wed, 15 Aug 2018 13:47:53 -0400 Subject: [PATCH] JMC-6116 Make Applications page context menu consistent with threads page Message-ID: Hi, Currently on the Java Applications page the context menu for editing the thread activity lanes is only present over the chart legend, rather than over the chart/lane itself. This is inconsistent with the context menu of the Threads page. This patch moves the context menu to the chart instead, making it consistent with the other usage of thread activity lanes. I've also added the edit thread lanes action to the form toolbar, again for consistency. Thoughts? Cheers, - Josh -------------- next part -------------- A non-text attachment was scrubbed... Name: JMC-6116.patch Type: text/x-patch Size: 1895 bytes Desc: not available URL: From marcus.hirt at oracle.com Wed Aug 15 17:53:40 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Wed, 15 Aug 2018 19:53:40 +0200 Subject: [PATCH] JMC-6116 Make Applications page context menu consistent with threads page In-Reply-To: <54A50D45-5099-4013-8EA7-68D98C212A8B@redhat.com> References: <54A50D45-5099-4013-8EA7-68D98C212A8B@redhat.com> Message-ID: <1FB08257-93A4-4FA2-8B0C-45EB6D603AA5@oracle.com> Hi Josh, Sounds good, though I think it would be good to have the context menu present on the legend as well, allowing the old behaviour to still be supported as well. I can sponsor this one. Kind regards, Marcus ?On 2018-08-15, 19:48, "jmc-dev on behalf of Joshua Matsuoka" wrote: Hi, Currently on the Java Applications page the context menu for editing the thread activity lanes is only present over the chart legend, rather than over the chart/lane itself. This is inconsistent with the context menu of the Threads page. This patch moves the context menu to the chart instead, making it consistent with the other usage of thread activity lanes. I've also added the edit thread lanes action to the form toolbar, again for consistency. Thoughts? Cheers, - Josh From jmatsuok at redhat.com Wed Aug 15 18:03:52 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Wed, 15 Aug 2018 14:03:52 -0400 Subject: [PATCH] JMC-6116 Make Applications page context menu consistent with threads page In-Reply-To: <1FB08257-93A4-4FA2-8B0C-45EB6D603AA5@oracle.com> References: <54A50D45-5099-4013-8EA7-68D98C212A8B@redhat.com> <1FB08257-93A4-4FA2-8B0C-45EB6D603AA5@oracle.com> Message-ID: Hi Marcus, Sounds good, here's the patch preserving the old behaviour as well. Cheers, - Josh On Wed, Aug 15, 2018 at 1:53 PM, Marcus Hirt wrote: > Hi Josh, > > Sounds good, though I think it would be good to have the context menu > present on the legend as well, allowing the old behaviour to still be > supported as well. > > I can sponsor this one. > > Kind regards, > Marcus > > ?On 2018-08-15, 19:48, "jmc-dev on behalf of Joshua Matsuoka" < > jmc-dev-bounces at openjdk.java.net on behalf of jmatsuok at redhat.com> wrote: > > Hi, > > Currently on the Java Applications page the context menu for editing > the > thread activity lanes is only present over the chart legend, rather > than > over the chart/lane itself. This is inconsistent with the context menu > of > the Threads page. This patch moves the context menu to the chart > instead, > making it consistent with the other usage of thread activity lanes. > I've > also added the edit thread lanes action to the form toolbar, again for > consistency. > > Thoughts? > > Cheers, > > - Josh > > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: JMC-6116.patch Type: text/x-patch Size: 1979 bytes Desc: not available URL: From jayathirth.d.v at oracle.com Thu Aug 16 10:08:31 2018 From: jayathirth.d.v at oracle.com (Jayathirth D V) Date: Thu, 16 Aug 2018 03:08:31 -0700 (PDT) Subject: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit In-Reply-To: <6252D904-F4E2-4B39-9E40-9E29C0C60914@oracle.com> References: <6252D904-F4E2-4B39-9E40-9E29C0C60914@oracle.com> Message-ID: <1735e331-71d8-4ac4-8cc8-a5107c71c24c@default> Hi Marcus, Changes are fine. Before the change browser.attach test was causing "mvn verify" to fail. After the change "mvn verify" passes. Thanks, Jay -----Original Message----- From: Marcus Hirt Sent: Monday, August 13, 2018 3:19 PM To: jmc-dev at openjdk.java.net Subject: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit Hi all, Please review this small fix to get the tests to run properly. Jira: https://bugs.openjdk.java.net/browse/JMC-6114 Webrev: http://cr.openjdk.java.net/~hirt/JMC-6114/webrev.01/ Kind regards, Marcus From sharath.ballal at oracle.com Fri Aug 17 15:06:30 2018 From: sharath.ballal at oracle.com (Sharath Ballal) Date: Fri, 17 Aug 2018 15:06:30 +0000 (UTC) Subject: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit In-Reply-To: <1735e331-71d8-4ac4-8cc8-a5107c71c24c@default> References: <6252D904-F4E2-4B39-9E40-9E29C0C60914@oracle.com> <1735e331-71d8-4ac4-8cc8-a5107c71c24c@default> Message-ID: <3813795f-d38e-4b64-be26-2b80bfb551d8@default> Hi Marcus, Though vm may not be null all the time, if it is null we will still try to detach. Is there a reason why you don?t want to check the vm for NULL before detaching ? Thanks, Sharath -----Original Message----- From: Jayathirth D V Sent: Thursday, August 16, 2018 3:39 PM To: Marcus Hirt; jmc-dev at openjdk.java.net Subject: RE: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit Hi Marcus, Changes are fine. Before the change browser.attach test was causing "mvn verify" to fail. After the change "mvn verify" passes. Thanks, Jay -----Original Message----- From: Marcus Hirt Sent: Monday, August 13, 2018 3:19 PM To: jmc-dev at openjdk.java.net Subject: Review request for JMC-6114: Fixing spotbugs violation (false positive) in LocalJVMToolkit Hi all, Please review this small fix to get the tests to run properly. Jira: https://bugs.openjdk.java.net/browse/JMC-6114 Webrev: http://cr.openjdk.java.net/~hirt/JMC-6114/webrev.01/ Kind regards, Marcus From marcus.hirt at oracle.com Fri Aug 17 15:33:31 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Fri, 17 Aug 2018 15:33:31 +0000 Subject: hg: jmc/jmc: JMC-6114: Excluding false positive in spotbugs Message-ID: <201808171533.w7HFXViA027227@aojmv0008.oracle.com> Changeset: 44a11db664e9 Author: hirt Date: 2018-08-17 17:33 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/44a11db664e9 JMC-6114: Excluding false positive in spotbugs Reviewed-by: jdv ! configuration/spotbugs/spotbugs-exclude.xml From marcus.hirt at oracle.com Fri Aug 17 16:37:57 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Fri, 17 Aug 2018 16:37:57 +0000 Subject: hg: jmc/jmc: JMC-6116: Making context menu items for lane control available on the chart in the Java Application page Message-ID: <201808171637.w7HGbv5D016935@aojmv0008.oracle.com> Changeset: b06ca8658cd4 Author: hirt Date: 2018-08-17 18:37 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/b06ca8658cd4 JMC-6116: Making context menu items for lane control available on the chart in the Java Application page Reviewed-by: hirt Contributed-by: Joshua Matsouka ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/JavaApplicationPage.java From marcus.hirt at oracle.com Fri Aug 17 16:41:19 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Fri, 17 Aug 2018 18:41:19 +0200 Subject: Friendly formatting reminder! Message-ID: Hi all, Please make sure that you?re using the Mission Control formatting template! Kind regards, Marcus From marcus.hirt at oracle.com Fri Aug 17 16:49:03 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Fri, 17 Aug 2018 18:49:03 +0200 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Josh, In older recordings, the thread information may not be available: <--> java.lang.NullPointerException at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.buildChart(GarbageCollectionsPage.java:515) at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.lambda$0(GarbageCollectionsPage.java:255) at org.openjdk.jmc.ui.handlers.ActionToolkit$3.run(ActionToolkit.java:166) at org.openjdk.jmc.ui.misc.ActionUiToolkit.lambda$4(ActionUiToolkit.java:129) at org.eclipse.jface.viewers.CheckboxTableViewer$1.run(CheckboxTableViewer.java:212) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44) <--> Ping me on IRC and I can share a representative recording with you! Kind regards, Marcus From: Joshua Matsuoka Date: Tuesday, 14 August 2018 at 17:25 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Heres an updated patch, I've removed the thread table and made the thread activity lane dependent on the table selection. Cheers, - Josh On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka wrote: Hi Marcus, Sounds good to me! I agree the thread chart seems a little odd looking at it again. I'll remove it but keep the activity lane as you suggested. Would you be opposed to a separate patch adding the thread lane context menu entries to the application page? It seems inconsistent with the other uses of activity lanes. Cheers, - Josh On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt wrote: Hi Joshua, I agree that the thread field should be added to the phases table. I worry about having a threads table in the beginning of the page, as it moves the focus from GCs to threads. If you are only interested in thread halts in relation to other events in the recording, you should really go to the Application page. Then you see all the halts (for example other vm-operations), and not only the GC-related ones. You could keep the Thread Activity lane, but for example make it show events for the threads involved in whatever selection you do in the tables above (without having an explicit threads table). What do you think? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 13 August 2018 at 20:51 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Thanks for the feedback! I was following the suggestions in the comments/history on https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to having the thread lane able to be visualized alongside the rest of the GC information. It's nice being able to see the thread events/activity align with the pause visualization and heap activity. I can also seeing this be useful for users who may have custom events defined, where it may be useful to see these events alongside the heap/gc behaviour.? I noticed as well that the thread activity display on the Java Application page lacks the context menu options to display additional types of events in the visualization. Perhaps if we feel that these changes are unnecessary, I can make an additional patch that could add that functionality to the thread lane on the application page. In either case though, we should probably still add the event thread to the information displayed for pause events. Cheers, - Josh On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt wrote: Hi Josh, Thanks for the suggestion! The normal work process is to focus the UI on whatever is of interest, and then just go to the Applications view. That way we end up not having to replicate that functionality on every page. Can you tell me a little bit more about your use case and how you see this being used? (Good initiative! I think you're the first non-Oracle employee attempting to improve on the visualization, so kudos!) Kind regards, Marcus ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" wrote: ? ? Hi, ? ? This is a patch that addresses JMC-5128 and JMC-5149. Currently the event ? ? thread field in the GC Phase Events isn't used by the UI. This patch ? ? accomplishes the following: ? ? - Adds this field to the phases table. ? ? - Adds a Thread table similar to the Java Application page which displays ? ? the threads that the phase events occurred on. ? ? - Adds a Thread lane to visualize the thread selected by the above table. ? ? This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 ? ? Thoughts? ? ? Cheers, ? ? - Josh From marcus.hirt at oracle.com Mon Aug 20 12:00:19 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Mon, 20 Aug 2018 12:00:19 +0000 Subject: hg: jmc/jmc: JMC-6117: Adding ignore for patch files Message-ID: <201808201200.w7KC0JbC026431@aojmv0008.oracle.com> Changeset: 95d5fcaa5f9c Author: hirt Date: 2018-08-20 14:00 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/95d5fcaa5f9c JMC-6117: Adding ignore for patch files Reviewed-by: ghb ! .hgignore From marcus.hirt at oracle.com Mon Aug 20 12:52:17 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 20 Aug 2018 14:52:17 +0200 Subject: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: References: Message-ID: Hi Jay/Patrick, Jay, you can remove a './' on the first two lines of the patch to make the patching work. From: --- old/./README.md 2018-08-13 22:12:58.000000000 +0200 +++ new/./README.md 2018-08-13 22:12:58.000000000 +0200 To: --- old/README.md 2018-08-13 22:12:58.000000000 +0200 +++ new/README.md 2018-08-13 22:12:58.000000000 +0200 I too get the access restriction problem when running the uitests. Patrick, you can probably fix the access restriction error by making Tycho ignore the forbidden references. See application/org.openjdk.jmc.attach/pom.xml (compilerArgument). Kind regards, Marcus ?On 2018-08-14, 11:37, "jmc-dev on behalf of Jayathirth D V" wrote: Hi Patrick, Thanks for your contribution to this important change. I created new repo to run UI tests with this patch. I am facing below problems related to this patch: 1) While importing the patch I am getting "abort: path '.\README.md' is inside nested repo '.'". Since README.md has only comments, I selectively removed the changes in README.md and imported the patch. 2) After importing the patch "mvn package" & "mvn verify -Dspotbugs.skip=true" is running fine. But when I try to run UI tests using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many Access restriction errors for org.openjdk.jmc.test.jemmy. [ERROR] Access restriction: The type 'Image' is not API (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') [ERROR] D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper s\MCJemmyBase.java:[810] [ERROR] image.save(fileName); [ERROR] ^^^^^^^^^^^^^^^^^^^^ [ERROR] Access restriction: The method 'Image.save(String)' is not API (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') [ERROR] 92 problems (92 errors) [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy Please clarify. Regards, Jay -----Original Message----- From: Patrick Reinhart [mailto:patrick at reini.net] Sent: Tuesday, August 14, 2018 1:53 AM To: jmc-dev at openjdk.java.net Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central Hi everybody, I added a new feature to have the jemmy libraries resolved from maven central. http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ -Patrick From jmatsuok at redhat.com Mon Aug 20 16:09:44 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Mon, 20 Aug 2018 12:09:44 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Marcus, I've updated the patch. It now checks if the pause events have thread information before proceeding with the rendering, as well as disabling the thread activity actions if there is no thread information present in the events, as in that situation there is no point to those actions. Cheers, - Josh On Fri, Aug 17, 2018 at 12:49 PM, Marcus Hirt wrote: > Hi Josh, > > In older recordings, the thread information may not be available: > <--> > java.lang.NullPointerException > at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$ > GarbageCollectionsUi.buildChart(GarbageCollectionsPage.java:515) > at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$ > GarbageCollectionsUi.lambda$0(GarbageCollectionsPage.java:255) > at org.openjdk.jmc.ui.handlers.ActionToolkit$3.run( > ActionToolkit.java:166) > at org.openjdk.jmc.ui.misc.ActionUiToolkit.lambda$4( > ActionUiToolkit.java:129) > at org.eclipse.jface.viewers.CheckboxTableViewer$1.run( > CheckboxTableViewer.java:212) > at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) > at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44) > <--> > > Ping me on IRC and I can share a representative recording with you! > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Tuesday, 14 August 2018 at 17:25 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > Heres an updated patch, I've removed the thread table and made the thread > activity lane dependent on the table selection. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka jmatsuok at redhat.com> wrote: > Hi Marcus, > > Sounds good to me! I agree the thread chart seems a little odd looking at > it again. I'll remove it but keep the activity lane as you suggested. > > Would you be opposed to a separate patch adding the thread lane context > menu entries to the application page? It seems inconsistent with the other > uses of activity lanes. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt marcus.hirt at oracle.com> wrote: > Hi Joshua, > > I agree that the thread field should be added to the phases table. I worry > about having a threads table in the beginning of the page, as it moves the > focus from GCs to threads. If you are only interested in thread halts in > relation to other events in the recording, you should really go to the > Application page. Then you see all the halts (for example other > vm-operations), and not only the GC-related ones. > > You could keep the Thread Activity lane, but for example make it show > events for the threads involved in whatever selection you do in the tables > above (without having an explicit threads table). > > What do you think? > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Monday, 13 August 2018 at 20:51 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > Thanks for the feedback! > > I was following the suggestions in the comments/history on > https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to > having the thread lane able to be visualized alongside the rest of the GC > information. It's nice being able to see the thread events/activity align > with the pause visualization and heap activity. I can also seeing this be > useful for users who may have custom events defined, where it may be useful > to see these events alongside the heap/gc behaviour. I noticed as well > that the thread activity display on the Java Application page lacks the > context menu options to display additional types of events in the > visualization. Perhaps if we feel that these changes are unnecessary, I can > make an additional patch that could add that functionality to the thread > lane on the application page. In either case though, we should probably > still add the event thread to the information displayed for pause events. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt oracle.com> wrote: > Hi Josh, > > Thanks for the suggestion! The normal work process is to focus the UI on > whatever is of interest, and then just go to the Applications view. That > way > we end up not having to replicate that functionality on every page. > > Can you tell me a little bit more about your use case and how you see this > being used? > > (Good initiative! I think you're the first non-Oracle employee attempting > to > improve on the visualization, so kudos!) > > Kind regards, > Marcus > ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" mailto:jmc-dev-bounces at openjdk.java.net on behalf of mailto:mailto: > jmatsuok at redhat.com> wrote: > > Hi, > > This is a patch that addresses JMC-5128 and JMC-5149. Currently the > event > thread field in the GC Phase Events isn't used by the UI. This patch > accomplishes the following: > > - Adds this field to the phases table. > - Adds a Thread table similar to the Java Application page which > displays > the threads that the phase events occurred on. > - Adds a Thread lane to visualize the thread selected by the above > table. > > This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 > > Thoughts? > > Cheers, > > - Josh > > > > > > > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: JMC-5128-2.patch Type: text/x-patch Size: 7754 bytes Desc: not available URL: From marcus.hirt at oracle.com Mon Aug 20 16:38:19 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 20 Aug 2018 18:38:19 +0200 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Josh, Great! Thanks for the revised patch! I am a bit torn regarding the disablement for two reasons: the first is that there is no feedback as to why it has been disabled, and the second is that the lane related items on the chart's context menu still remain available to me, so it is still possible to enter the lane configuration dialog. How about a quick chat on the IRC to see if we can come up with an improved solution? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 20 August 2018 at 18:09 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, I've updated the patch. It now checks if the pause events have thread information before proceeding with the rendering, as well as disabling the thread activity actions if there is no thread information present in the events, as in that situation there is no point to those actions. Cheers, - Josh On Fri, Aug 17, 2018 at 12:49 PM, Marcus Hirt wrote: Hi Josh, In older recordings, the thread information may not be available: <--> java.lang.NullPointerException ? ? ? ? at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.buildChart(GarbageCollectionsPage.java:515) ? ? ? ? at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.lambda$0(GarbageCollectionsPage.java:255) ? ? ? ? at org.openjdk.jmc.ui.handlers.ActionToolkit$3.run(ActionToolkit.java:166) ? ? ? ? at org.openjdk.jmc.ui.misc.ActionUiToolkit.lambda$4(ActionUiToolkit.java:129) ? ? ? ? at org.eclipse.jface.viewers.CheckboxTableViewer$1.run(CheckboxTableViewer.java:212) ? ? ? ? at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) ? ? ? ? at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44) <--> Ping me on IRC and I can share a representative recording with you! Kind regards, Marcus From: Joshua Matsuoka Date: Tuesday, 14 August 2018 at 17:25 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Heres an updated patch, I've removed the thread table and made the thread activity lane dependent on the table selection. Cheers, - Josh On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka wrote: Hi Marcus, Sounds good to me! I agree the thread chart seems a little odd looking at it again. I'll remove it but keep the activity lane as you suggested. Would you be opposed to a separate patch adding the thread lane context menu entries to the application page? It seems inconsistent with the other uses of activity lanes. Cheers, - Josh On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt wrote: Hi Joshua, I agree that the thread field should be added to the phases table. I worry about having a threads table in the beginning of the page, as it moves the focus from GCs to threads. If you are only interested in thread halts in relation to other events in the recording, you should really go to the Application page. Then you see all the halts (for example other vm-operations), and not only the GC-related ones. You could keep the Thread Activity lane, but for example make it show events for the threads involved in whatever selection you do in the tables above (without having an explicit threads table). What do you think? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 13 August 2018 at 20:51 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Thanks for the feedback! I was following the suggestions in the comments/history on https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to having the thread lane able to be visualized alongside the rest of the GC information. It's nice being able to see the thread events/activity align with the pause visualization and heap activity. I can also seeing this be useful for users who may have custom events defined, where it may be useful to see these events alongside the heap/gc behaviour.? I noticed as well that the thread activity display on the Java Application page lacks the context menu options to display additional types of events in the visualization. Perhaps if we feel that these changes are unnecessary, I can make an additional patch that could add that functionality to the thread lane on the application page. In either case though, we should probably still add the event thread to the information displayed for pause events. Cheers, - Josh On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt wrote: Hi Josh, Thanks for the suggestion! The normal work process is to focus the UI on whatever is of interest, and then just go to the Applications view. That way we end up not having to replicate that functionality on every page. Can you tell me a little bit more about your use case and how you see this being used? (Good initiative! I think you're the first non-Oracle employee attempting to improve on the visualization, so kudos!) Kind regards, Marcus ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" wrote: ? ? Hi, ? ? This is a patch that addresses JMC-5128 and JMC-5149. Currently the event ? ? thread field in the GC Phase Events isn't used by the UI. This patch ? ? accomplishes the following: ? ? - Adds this field to the phases table. ? ? - Adds a Thread table similar to the Java Application page which displays ? ? the threads that the phase events occurred on. ? ? - Adds a Thread lane to visualize the thread selected by the above table. ? ? This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 ? ? Thoughts? ? ? Cheers, ? ? - Josh From patrick at reini.net Mon Aug 20 19:29:36 2018 From: patrick at reini.net (Patrick Reinhart) Date: Mon, 20 Aug 2018 21:29:36 +0200 Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> References: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> Message-ID: Hi Jay again, After a small addition reflected on the following webrev: http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev.1/ I tested now also all the steps successfully on my Windows 10 machine applying the patch using hg import - Freshly set up with no maven build before... -Patrick Am 15.08.2018 um 08:10 schrieb Patrick Reinhart: > Hi jay, > > The changes where made on a Mac though. I now tried it on my Linux > machine starting at: > > [rep at bisonchws12019 jmc]$ hg branches > default?????????????????????? 31:c178c31fdcf2 > > Applied the patch not having any problems: > > [rep at bisonchws12019 jmc]$ curl > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch > | patch -p1 > ? % Total??? % Received % Xferd? Average Speed?? Time??? Time???? > Time? Current > ???????????????????????????????? Dload? Upload?? Total?? Spent??? > Left? Speed > 100 31304? 100 31304??? 0???? 0? 26086????? 0? 0:00:01? 0:00:01 > --:--:-- 26108 > patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath > patching file > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs > patching file > application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF > patching file > application/uitests/org.openjdk.jmc.test.jemmy/build.properties > patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml > patching file > releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target > patching file > releng/platform-definitions/platform-definition-photon/platform-definition-photon.target > patching file releng/third-party/pom.xml > patching file application/org.openjdk.jmc.feature.jemmy/.project > patching file application/org.openjdk.jmc.feature.jemmy/build.properties > patching file > application/org.openjdk.jmc.feature.jemmy/feature.properties > patching file application/org.openjdk.jmc.feature.jemmy/feature.xml > patching file application/org.openjdk.jmc.feature.jemmy/pom.xml > patching file > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs > > After building the site (mvn p2:site) and starting the local jetty > instance (mvn jetty:run) > > mvn package > mvn verify -Dspotbugs.skip=true > mvn verify -Dspotbugs.skip=true -Puitests > > > All went well... even though I will check the same parts on Windows > later too... > > -Patrick > > > > On 2018-08-14 11:37, Jayathirth D V wrote: >> Hi Patrick, >> >> Thanks for your contribution to this important change. >> I created new repo to run UI tests with this patch. I am facing below >> problems related to this patch: >> >> 1) While importing the patch I am getting? "abort: path '.\README.md' >> is inside nested repo '.'". Since README.md has only comments, I >> selectively removed the changes in README.md and imported the patch. >> >> 2) After importing the patch "mvn package" & "mvn verify >> -Dspotbugs.skip=true" is running fine. But when I try to run UI tests >> using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many >> Access restriction errors for org.openjdk.jmc.test.jemmy. >> >> [ERROR] Access restriction: The type 'Image' is not API (restriction >> on classpath entry >> 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o >> rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') >> [ERROR] >> D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper >> >> s\MCJemmyBase.java:[810] >> [ERROR]???????? image.save(fileName); >> [ERROR]???????? ^^^^^^^^^^^^^^^^^^^^ >> [ERROR] Access restriction: The method 'Image.save(String)' is not API >> (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p >> 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') >> >> [ERROR] 92 problems (92 errors) >> [ERROR] -> [Help 1] >> [ERROR] >> [ERROR] To see the full stack trace of the errors, re-run Maven with >> the -e switch. >> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >> [ERROR] >> [ERROR] For more information about the errors and possible solutions, >> please read the following articles: >> [ERROR] [Help 1] >> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException >> [ERROR] >> [ERROR] After correcting the problems, you can resume the build with >> the command >> [ERROR]?? mvn -rf :org.openjdk.jmc.test.jemmy >> >> Please clarify. >> >> Regards, >> Jay >> >> -----Original Message----- >> From: Patrick Reinhart [mailto:patrick at reini.net] >> Sent: Tuesday, August 14, 2018 1:53 AM >> To: jmc-dev at openjdk.java.net >> Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central >> >> Hi everybody, >> >> I added a new feature to have the jemmy libraries resolved from maven >> central. >> >> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ >> >> -Patrick From guru.hb at oracle.com Tue Aug 21 10:28:31 2018 From: guru.hb at oracle.com (Guru) Date: Tue, 21 Aug 2018 15:58:31 +0530 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> Message-ID: Hi Marcus & Miro, I have rebased the diff, Reviewed and tested the use case mentioned in JBS. Webrev : http://cr.openjdk.java.net/~ghb/ext/miro/JMC-4740/webrev.0/ Changes looks good to me. Thanks, Guru > On 13-Aug-2018, at 9:13 PM, Marcus Hirt wrote: > > I will sponsor this change, but I think someone else should review it, as I > helped with it. > > Guru, Sharath? > > Kind regards, > Marcus > > ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: > > Hi Everyone, > here is my patch for a review, > Thank you Marcus! > > Kind Regards, > Miro > > > diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java > --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 > +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 > @@ -38,6 +38,7 @@ > import java.util.ArrayList; > import java.util.Arrays; > import java.util.Collection; > +import java.util.Collections; > import java.util.Comparator; > import java.util.HashMap; > import java.util.HashSet; > @@ -145,6 +146,7 @@ > import org.openjdk.jmc.ui.charts.XYQuantities; > import org.openjdk.jmc.ui.column.ColumnMenusFactory; > import org.openjdk.jmc.ui.column.TableSettings; > +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; > import org.openjdk.jmc.ui.handlers.ActionToolkit; > import org.openjdk.jmc.ui.handlers.MCContextMenuManager; > import org.openjdk.jmc.ui.misc.ChartCanvas; > @@ -176,17 +178,25 @@ > }; > } > > - private static Map fieldColorMap = new HashMap<>(); > + private static final Map FIELD_COLOR_MAP = new HashMap<>(); > + private static final Map DEFAULT_COLUMNS_ORDER; > > static { > > // FIXME: Create FieldAppearance class, similar to TypeAppearence? > - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); > - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); > - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); > - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); > + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); > + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); > + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); > + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); > > // FIXME: Handle ColorProvider and combined events > + Map columnsOrderMap = new HashMap<>(); > + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); > + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); > + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); > + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); > + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); > + > } > > public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); > @@ -198,7 +208,7 @@ > public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ > > public static Color getFieldColor(String fieldId) { > - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); > + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); > } > > public static Color getFieldColor(IAttribute attribute) { > @@ -1053,4 +1063,33 @@ > && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); > } > > + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { > + final Stream defaultOrderColumns = columns.stream() > + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) > + .filter(c -> !c.isHidden()) > + .sorted((c1, c2) -> > + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), > + DEFAULT_COLUMNS_ORDER.get(c2.getId())) > + ); > + final Stream naturalOrderColumns = columns.stream() > + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) > + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); > + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); > + return new TableSettings(orderBy, resultColumns); > + } > + > + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { > + final List defaultListCols = new ArrayList<>(); > + for (String columnId : allColumns) { > + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); > + } > + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); > + } > + > + private static String createColumnId(IAttribute attr) { > + return new StringBuilder().append(attr.getIdentifier()) > + .append(":") > + .append(attr.getContentType().getIdentifier()) > + .toString(); > + } > } > > > > > diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java > --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 > +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 > @@ -335,7 +335,8 @@ > Composite parent = oldListControl.getParent(); > oldListControl.dispose(); > list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, > - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); > + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), > + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); > parent.layout(); > list.show(filteredItems); > } > > > > diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java > --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 > +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 > @@ -67,6 +67,7 @@ > import org.openjdk.jmc.flightrecorder.ui.IPageContainer; > import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; > import org.openjdk.jmc.flightrecorder.ui.StreamModel; > +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; > import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; > import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; > import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; > @@ -153,10 +154,11 @@ > > // FIXME: Should we use the state here, if the columns have been updated? > // FIXME: Should we change the column state if the user explicitly has configured the columns? > - TableSettings itemListSettings = TableSettings.forStateAndColumns( > - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), > - acc.getCommonAttributes().keySet()); > - > + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( > + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : > + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), > + acc.getCommonAttributes().keySet()); > + > Composite listComposite = toolkit.createComposite(tabFolder); > listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); > itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); > > > > From miro.wengner at gmail.com Tue Aug 21 11:31:40 2018 From: miro.wengner at gmail.com (Miro Wengner) Date: Tue, 21 Aug 2018 13:31:40 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> Message-ID: <84583B90-DA8F-4B3D-BC24-A59456D89C81@gmail.com> Hi Guru, thank you! should I do anything more according to this fix ? Kind regards, Miro > On Aug 21, 2018, at 12:28 PM, Guru wrote: > > Hi Marcus & Miro, > > I have rebased the diff, Reviewed and tested the use case mentioned in JBS. > Webrev : http://cr.openjdk.java.net/~ghb/ext/miro/JMC-4740/webrev.0/ > Changes looks good to me. > > Thanks, > Guru >> On 13-Aug-2018, at 9:13 PM, Marcus Hirt wrote: >> >> I will sponsor this change, but I think someone else should review it, as I >> helped with it. >> >> Guru, Sharath? >> >> Kind regards, >> Marcus >> >> ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: >> >> Hi Everyone, >> here is my patch for a review, >> Thank you Marcus! >> >> Kind Regards, >> Miro >> >> >> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java >> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 >> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 >> @@ -38,6 +38,7 @@ >> import java.util.ArrayList; >> import java.util.Arrays; >> import java.util.Collection; >> +import java.util.Collections; >> import java.util.Comparator; >> import java.util.HashMap; >> import java.util.HashSet; >> @@ -145,6 +146,7 @@ >> import org.openjdk.jmc.ui.charts.XYQuantities; >> import org.openjdk.jmc.ui.column.ColumnMenusFactory; >> import org.openjdk.jmc.ui.column.TableSettings; >> +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; >> import org.openjdk.jmc.ui.handlers.ActionToolkit; >> import org.openjdk.jmc.ui.handlers.MCContextMenuManager; >> import org.openjdk.jmc.ui.misc.ChartCanvas; >> @@ -176,17 +178,25 @@ >> }; >> } >> >> - private static Map fieldColorMap = new HashMap<>(); >> + private static final Map FIELD_COLOR_MAP = new HashMap<>(); >> + private static final Map DEFAULT_COLUMNS_ORDER; >> >> static { >> >> // FIXME: Create FieldAppearance class, similar to TypeAppearence? >> - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >> - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >> - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >> - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >> + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >> >> // FIXME: Handle ColorProvider and combined events >> + Map columnsOrderMap = new HashMap<>(); >> + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); >> + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); >> + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); >> + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); >> + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); >> + >> } >> >> public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); >> @@ -198,7 +208,7 @@ >> public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ >> >> public static Color getFieldColor(String fieldId) { >> - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >> + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >> } >> >> public static Color getFieldColor(IAttribute attribute) { >> @@ -1053,4 +1063,33 @@ >> && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); >> } >> >> + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { >> + final Stream defaultOrderColumns = columns.stream() >> + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >> + .filter(c -> !c.isHidden()) >> + .sorted((c1, c2) -> >> + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), >> + DEFAULT_COLUMNS_ORDER.get(c2.getId())) >> + ); >> + final Stream naturalOrderColumns = columns.stream() >> + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >> + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); >> + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); >> + return new TableSettings(orderBy, resultColumns); >> + } >> + >> + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { >> + final List defaultListCols = new ArrayList<>(); >> + for (String columnId : allColumns) { >> + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); >> + } >> + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); >> + } >> + >> + private static String createColumnId(IAttribute attr) { >> + return new StringBuilder().append(attr.getIdentifier()) >> + .append(":") >> + .append(attr.getContentType().getIdentifier()) >> + .toString(); >> + } >> } >> >> >> >> >> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java >> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 >> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 >> @@ -335,7 +335,8 @@ >> Composite parent = oldListControl.getParent(); >> oldListControl.dispose(); >> list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, >> - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >> + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), >> + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >> parent.layout(); >> list.show(filteredItems); >> } >> >> >> >> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java >> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 >> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 >> @@ -67,6 +67,7 @@ >> import org.openjdk.jmc.flightrecorder.ui.IPageContainer; >> import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; >> import org.openjdk.jmc.flightrecorder.ui.StreamModel; >> +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; >> import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; >> import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; >> import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; >> @@ -153,10 +154,11 @@ >> >> // FIXME: Should we use the state here, if the columns have been updated? >> // FIXME: Should we change the column state if the user explicitly has configured the columns? >> - TableSettings itemListSettings = TableSettings.forStateAndColumns( >> - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), >> - acc.getCommonAttributes().keySet()); >> - >> + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( >> + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : >> + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), >> + acc.getCommonAttributes().keySet()); >> + >> Composite listComposite = toolkit.createComposite(tabFolder); >> listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); >> itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); >> >> >> >> > From marcus.hirt at oracle.com Tue Aug 21 12:15:11 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Tue, 21 Aug 2018 14:15:11 +0200 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: <1AFC2366-29B3-4766-9D1D-52856C14AB4F@oracle.com> References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> <1AFC2366-29B3-4766-9D1D-52856C14AB4F@oracle.com> Message-ID: <3FACDB6C-C15A-4718-A52F-1F3DDEED3C4C@oracle.com> Thanks Guru! Kind regards, Marcus From: Guru Date: Tuesday, 21 August 2018 at 12:28 To: Marcus Hirt , Miro Wengner Cc: Subject: Re: [PATCH] JMC-4740: There should be a better default column ordering for event attributes Hi Marcus & Miro, I have rebased the diff, Reviewed and tested the use case mentioned in JBS.? Webrev :?http://cr.openjdk.java.net/~ghb/ext/miro/JMC-4740/webrev.0/? Changes looks good to me.? Thanks, Guru On 13-Aug-2018, at 9:13 PM, Marcus Hirt wrote: I will sponsor this change, but I think someone else should review it, as I helped with it. Guru, Sharath? Kind regards, Marcus ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: ???Hi Everyone, ????here is my patch for a review, ???Thank you Marcus! ???Kind Regards, ???Miro ???diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java ???--- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 ???+++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 ???@@ -38,6 +38,7 @@ ????import java.util.ArrayList; ????import java.util.Arrays; ????import java.util.Collection; ???+import java.util.Collections; ????import java.util.Comparator; ????import java.util.HashMap; ????import java.util.HashSet; ???@@ -145,6 +146,7 @@ ????import org.openjdk.jmc.ui.charts.XYQuantities; ????import org.openjdk.jmc.ui.column.ColumnMenusFactory; ????import org.openjdk.jmc.ui.column.TableSettings; ???+import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; ????import org.openjdk.jmc.ui.handlers.ActionToolkit; ????import org.openjdk.jmc.ui.handlers.MCContextMenuManager; ????import org.openjdk.jmc.ui.misc.ChartCanvas; ???@@ -176,17 +178,25 @@ ???? }; ???? } ???- private static Map fieldColorMap = new HashMap<>(); ???+ private static final Map FIELD_COLOR_MAP = new HashMap<>(); ???+ private static final Map DEFAULT_COLUMNS_ORDER; ???? static { ???? // FIXME: Create FieldAppearance class, similar to TypeAppearence? ???- fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); ???- fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); ???- fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); ???- fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); ???+ FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); ???+ FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); ???+ FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); ???+ FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); ???? // FIXME: Handle ColorProvider and combined events ???+ Map columnsOrderMap = new HashMap<>(); ???+ columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); ???+ columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); ???+ columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); ???+ columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); ???+ DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); ???+ ???? } ???? public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); ???@@ -198,7 +208,7 @@ ???? public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ ???? public static Color getFieldColor(String fieldId) { ???- return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); ???+ return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); ???? } ???? public static Color getFieldColor(IAttribute attribute) { ???@@ -1053,4 +1063,33 @@ ???? && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); ???? } ???+ public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { ???+ final Stream defaultOrderColumns = columns.stream() ???+ .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) ???+ .filter(c -> !c.isHidden()) ???+ .sorted((c1, c2) -> ???+ Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), ???+ DEFAULT_COLUMNS_ORDER.get(c2.getId())) ???+ ); ???+ final Stream naturalOrderColumns = columns.stream() ???+ .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) ???+ .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); ???+ final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); ???+ return new TableSettings(orderBy, resultColumns); ???+ } ???+ ???+ public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { ???+ final List defaultListCols = new ArrayList<>(); ???+ for (String columnId : allColumns) { ???+ defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); ???+ } ???+ return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); ???+ } ???+ ???+ private static String createColumnId(IAttribute attr) { ???+ return new StringBuilder().append(attr.getIdentifier()) ???+ .append(":") ???+ .append(attr.getContentType().getIdentifier()) ???+ .toString(); ???+ } ????} ???diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java ???--- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 ???+++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 ???@@ -335,7 +335,8 @@ ???? Composite parent = oldListControl.getParent(); ???? oldListControl.dispose(); ???? list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, ???- new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); ???+ DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), ???+ Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); ???? parent.layout(); ???? list.show(filteredItems); ???? } ???diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java ???--- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 ???+++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 ???@@ -67,6 +67,7 @@ ????import org.openjdk.jmc.flightrecorder.ui.IPageContainer; ????import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; ????import org.openjdk.jmc.flightrecorder.ui.StreamModel; ???+import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; ????import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; ????import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; ????import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; ???@@ -153,10 +154,11 @@ ???? // FIXME: Should we use the state here, if the columns have been updated? ???? // FIXME: Should we change the column state if the user explicitly has configured the columns? ???- TableSettings itemListSettings = TableSettings.forStateAndColumns( ???- state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), ???- acc.getCommonAttributes().keySet()); ???- ???+ final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( ???+ acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : ???+ TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), ???+ acc.getCommonAttributes().keySet()); ???+ ???? Composite listComposite = toolkit.createComposite(tabFolder); ???? listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); ???? itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); From guru.hb at oracle.com Tue Aug 21 12:30:09 2018 From: guru.hb at oracle.com (Guru) Date: Tue, 21 Aug 2018 18:00:09 +0530 Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: <84583B90-DA8F-4B3D-BC24-A59456D89C81@gmail.com> References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> <84583B90-DA8F-4B3D-BC24-A59456D89C81@gmail.com> Message-ID: I am waiting for One more review from Sharath / Jay, Post to that I will push the changes. Thanks, Guru > On 21-Aug-2018, at 5:01 PM, Miro Wengner wrote: > > Hi Guru, > thank you! > should I do anything more according to this fix ? Nope (Unless there is any mismatch with your earlier .diff sent over email). > > Kind regards, > Miro > >> On Aug 21, 2018, at 12:28 PM, Guru wrote: >> >> Hi Marcus & Miro, >> >> I have rebased the diff, Reviewed and tested the use case mentioned in JBS. >> Webrev : http://cr.openjdk.java.net/~ghb/ext/miro/JMC-4740/webrev.0/ >> Changes looks good to me. >> >> Thanks, >> Guru >>> On 13-Aug-2018, at 9:13 PM, Marcus Hirt wrote: >>> >>> I will sponsor this change, but I think someone else should review it, as I >>> helped with it. >>> >>> Guru, Sharath? >>> >>> Kind regards, >>> Marcus >>> >>> ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: >>> >>> Hi Everyone, >>> here is my patch for a review, >>> Thank you Marcus! >>> >>> Kind Regards, >>> Miro >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 >>> @@ -38,6 +38,7 @@ >>> import java.util.ArrayList; >>> import java.util.Arrays; >>> import java.util.Collection; >>> +import java.util.Collections; >>> import java.util.Comparator; >>> import java.util.HashMap; >>> import java.util.HashSet; >>> @@ -145,6 +146,7 @@ >>> import org.openjdk.jmc.ui.charts.XYQuantities; >>> import org.openjdk.jmc.ui.column.ColumnMenusFactory; >>> import org.openjdk.jmc.ui.column.TableSettings; >>> +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; >>> import org.openjdk.jmc.ui.handlers.ActionToolkit; >>> import org.openjdk.jmc.ui.handlers.MCContextMenuManager; >>> import org.openjdk.jmc.ui.misc.ChartCanvas; >>> @@ -176,17 +178,25 @@ >>> }; >>> } >>> >>> - private static Map fieldColorMap = new HashMap<>(); >>> + private static final Map FIELD_COLOR_MAP = new HashMap<>(); >>> + private static final Map DEFAULT_COLUMNS_ORDER; >>> >>> static { >>> >>> // FIXME: Create FieldAppearance class, similar to TypeAppearence? >>> - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >>> - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >>> - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >>> - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >>> >>> // FIXME: Handle ColorProvider and combined events >>> + Map columnsOrderMap = new HashMap<>(); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); >>> + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); >>> + >>> } >>> >>> public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); >>> @@ -198,7 +208,7 @@ >>> public static final String RESULT_ACTION_ID = "resultAction"; //$NON-NLS-1$ >>> >>> public static Color getFieldColor(String fieldId) { >>> - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >>> + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >>> } >>> >>> public static Color getFieldColor(IAttribute attribute) { >>> @@ -1053,4 +1063,33 @@ >>> && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); >>> } >>> >>> + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { >>> + final Stream defaultOrderColumns = columns.stream() >>> + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >>> + .filter(c -> !c.isHidden()) >>> + .sorted((c1, c2) -> >>> + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), >>> + DEFAULT_COLUMNS_ORDER.get(c2.getId())) >>> + ); >>> + final Stream naturalOrderColumns = columns.stream() >>> + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >>> + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); >>> + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); >>> + return new TableSettings(orderBy, resultColumns); >>> + } >>> + >>> + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { >>> + final List defaultListCols = new ArrayList<>(); >>> + for (String columnId : allColumns) { >>> + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); >>> + } >>> + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); >>> + } >>> + >>> + private static String createColumnId(IAttribute attr) { >>> + return new StringBuilder().append(attr.getIdentifier()) >>> + .append(":") >>> + .append(attr.getContentType().getIdentifier()) >>> + .toString(); >>> + } >>> } >>> >>> >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 >>> @@ -335,7 +335,8 @@ >>> Composite parent = oldListControl.getParent(); >>> oldListControl.dispose(); >>> list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, >>> - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >>> + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), >>> + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >>> parent.layout(); >>> list.show(filteredItems); >>> } >>> >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 >>> @@ -67,6 +67,7 @@ >>> import org.openjdk.jmc.flightrecorder.ui.IPageContainer; >>> import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; >>> import org.openjdk.jmc.flightrecorder.ui.StreamModel; >>> +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; >>> import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; >>> import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; >>> import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; >>> @@ -153,10 +154,11 @@ >>> >>> // FIXME: Should we use the state here, if the columns have been updated? >>> // FIXME: Should we change the column state if the user explicitly has configured the columns? >>> - TableSettings itemListSettings = TableSettings.forStateAndColumns( >>> - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), >>> - acc.getCommonAttributes().keySet()); >>> - >>> + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( >>> + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : >>> + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), >>> + acc.getCommonAttributes().keySet()); >>> + >>> Composite listComposite = toolkit.createComposite(tabFolder); >>> listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); >>> itemList = itemListBuilder.buildWithoutBorder(listComposite, itemListSettings); >>> >>> >>> >>> >> > From marcus.hirt at oracle.com Tue Aug 21 15:32:02 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Tue, 21 Aug 2018 17:32:02 +0200 Subject: Review request for JMC-6110: Fixing Jemmy class path and removing unnecessary files Message-ID: Hi all, Please review this small fix to get the uitests to run properly. Jira: https://bugs.openjdk.java.net/browse/JMC-6110 Webrev: http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.add/ Kind regards, Marcus From guru.hb at oracle.com Tue Aug 21 15:39:23 2018 From: guru.hb at oracle.com (Guru) Date: Tue, 21 Aug 2018 21:09:23 +0530 Subject: Review request for JMC-6110: Fixing Jemmy class path and removing unnecessary files In-Reply-To: References: Message-ID: <03A525D4-67C2-4F9D-A861-055618B1ED0A@oracle.com> +1, Looks good to me. > On 21-Aug-2018, at 9:02 PM, Marcus Hirt wrote: > > Hi all, > > Please review this small fix to get the uitests to run properly. > > Jira: https://bugs.openjdk.java.net/browse/JMC-6110 > Webrev: http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.add/ > > Kind regards, > Marcus > > From neugens at redhat.com Tue Aug 21 16:11:00 2018 From: neugens at redhat.com (Mario Torre) Date: Tue, 21 Aug 2018 18:11:00 +0200 Subject: Java Mission Control Author request for: Joshua Matsuoka Message-ID: Hello Marcus, I would like to propose Joshua Matsuoka as author for Java Mission Control. Joshua has been active on the JMC project and has already contributed a number of fixes: JMC-5398, http://hg.openjdk.java.net/jmc/jmc/rev/49f6575169ce JMC-6116, http://hg.openjdk.java.net/jmc/jmc/rev/b06ca8658cd4 Also, an eclipse bug (was logged on Jira as JMC-5981): Eclipse, https://git.eclipse.org/r/#/c/124139/ He is also currently working on: Bug IDs: JMC-5128 and JMC-5149 http://mail.openjdk.java.net/pipermail/jmc-dev/2018-August/000164.html Cheers, Mario -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From sharath.ballal at oracle.com Tue Aug 21 16:16:47 2018 From: sharath.ballal at oracle.com (Sharath Ballal) Date: Tue, 21 Aug 2018 09:16:47 -0700 (PDT) Subject: [PATCH] JMC-4740: There should be a better default column ordering for event attributes In-Reply-To: References: <124FE281-CB12-45D0-B32F-2892043F852D@gmail.com> <84583B90-DA8F-4B3D-BC24-A59456D89C81@gmail.com> Message-ID: <137864b2-91d2-4946-9f37-ca52c5ddfca5@default> Hi Guru, +1. Thanks, Sharath -----Original Message----- From: Guru Sent: Tuesday, August 21, 2018 6:00 PM To: Miro Wengner; Sharath Ballal; Jayathirth D V Cc: Marcus Hirt; jmc-dev at openjdk.java.net Subject: Re: [PATCH] JMC-4740: There should be a better default column ordering for event attributes I am waiting for One more review from Sharath / Jay, Post to that I will push the changes. Thanks, Guru > On 21-Aug-2018, at 5:01 PM, Miro Wengner wrote: > > Hi Guru, > thank you! > should I do anything more according to this fix ? Nope (Unless there is any mismatch with your earlier .diff sent over email). > > Kind regards, > Miro > >> On Aug 21, 2018, at 12:28 PM, Guru wrote: >> >> Hi Marcus & Miro, >> >> I have rebased the diff, Reviewed and tested the use case mentioned in JBS. >> Webrev : http://cr.openjdk.java.net/~ghb/ext/miro/JMC-4740/webrev.0/ >> Changes looks good to me. >> >> Thanks, >> Guru >>> On 13-Aug-2018, at 9:13 PM, Marcus Hirt wrote: >>> >>> I will sponsor this change, but I think someone else should review >>> it, as I helped with it. >>> >>> Guru, Sharath? >>> >>> Kind regards, >>> Marcus >>> >>> ?On 2018-08-13, 17:25, "jmc-dev on behalf of Miro Wengner" wrote: >>> >>> Hi Everyone, >>> here is my patch for a review, >>> Thank you Marcus! >>> >>> Kind Regards, >>> Miro >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java Mon Aug 13 15:37:03 2018 +0200 >>> @@ -38,6 +38,7 @@ >>> import java.util.ArrayList; >>> import java.util.Arrays; >>> import java.util.Collection; >>> +import java.util.Collections; >>> import java.util.Comparator; >>> import java.util.HashMap; >>> import java.util.HashSet; >>> @@ -145,6 +146,7 @@ >>> import org.openjdk.jmc.ui.charts.XYQuantities; >>> import org.openjdk.jmc.ui.column.ColumnMenusFactory; >>> import org.openjdk.jmc.ui.column.TableSettings; >>> +import org.openjdk.jmc.ui.column.TableSettings.ColumnSettings; >>> import org.openjdk.jmc.ui.handlers.ActionToolkit; >>> import org.openjdk.jmc.ui.handlers.MCContextMenuManager; >>> import org.openjdk.jmc.ui.misc.ChartCanvas; >>> @@ -176,17 +178,25 @@ >>> }; >>> } >>> >>> - private static Map fieldColorMap = new HashMap<>(); >>> + private static final Map FIELD_COLOR_MAP = new HashMap<>(); >>> + private static final Map DEFAULT_COLUMNS_ORDER; >>> >>> static { >>> >>> // FIXME: Create FieldAppearance class, similar to TypeAppearence? >>> - fieldColorMap.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >>> - fieldColorMap.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >>> - fieldColorMap.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >>> - fieldColorMap.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.MACHINE_TOTAL.getIdentifier(), new Color(255, 128, 0)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_SYSTEM.getIdentifier(), new Color(128, 128, 128)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_USER.getIdentifier(), new Color(0, 0, 255)); >>> + FIELD_COLOR_MAP.put(JdkAttributes.JVM_TOTAL.getIdentifier(), new Color(64, 64, 191)); >>> >>> // FIXME: Handle ColorProvider and combined events >>> + Map columnsOrderMap = new HashMap<>(); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.START_TIME), 1); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.DURATION), 2); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.END_TIME), 3); >>> + columnsOrderMap.put(createColumnId(JfrAttributes.EVENT_THREAD), 4); >>> + DEFAULT_COLUMNS_ORDER = Collections.unmodifiableMap(columnsOrderMap); >>> + >>> } >>> >>> public static final Color ALLOCATION_COLOR = new Color(64, 144, 230); >>> @@ -198,7 +208,7 @@ >>> public static final String RESULT_ACTION_ID = "resultAction"; >>> //$NON-NLS-1$ >>> >>> public static Color getFieldColor(String fieldId) { >>> - return fieldColorMap.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >>> + return FIELD_COLOR_MAP.getOrDefault(fieldId, ColorToolkit.getDistinguishableColor(fieldId)); >>> } >>> >>> public static Color getFieldColor(IAttribute attribute) { >>> @@ -1053,4 +1063,33 @@ >>> && JfrAttributes.START_TIME.getAccessor(type) != JfrAttributes.END_TIME.getAccessor(type); >>> } >>> >>> + public static TableSettings createTableSettingsByOrderByAndColumnsWithDefaultOrdering(final String orderBy, final Collection columns) { >>> + final Stream defaultOrderColumns = columns.stream() >>> + .filter(c -> DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >>> + .filter(c -> !c.isHidden()) >>> + .sorted((c1, c2) -> >>> + Integer.compare(DEFAULT_COLUMNS_ORDER.get(c1.getId()), >>> + DEFAULT_COLUMNS_ORDER.get(c2.getId())) >>> + ); >>> + final Stream naturalOrderColumns = columns.stream() >>> + .filter(c -> !DEFAULT_COLUMNS_ORDER.containsKey(c.getId())) >>> + .sorted((c1, c2) -> String.CASE_INSENSITIVE_ORDER.compare(c1.getId(), c2.getId())); >>> + final List resultColumns = Stream.concat(defaultOrderColumns, naturalOrderColumns).collect(Collectors.toList()); >>> + return new TableSettings(orderBy, resultColumns); >>> + } >>> + >>> + public static TableSettings createTableSettingsByAllAndVisibleColumns(final Collection allColumns, final Collection visibleColumns) { >>> + final List defaultListCols = new ArrayList<>(); >>> + for (String columnId : allColumns) { >>> + defaultListCols.add(new ColumnSettings(columnId, !visibleColumns.contains(columnId), null, null)); >>> + } >>> + return createTableSettingsByOrderByAndColumnsWithDefaultOrdering(null, defaultListCols); >>> + } >>> + >>> + private static String createColumnId(IAttribute attr) { >>> + return new StringBuilder().append(attr.getIdentifier()) >>> + .append(":") >>> + .append(attr.getContentType().getIdentifier()) >>> + .toString(); >>> + } >>> } >>> >>> >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java Mon Aug 13 15:37:38 2018 +0200 >>> @@ -335,7 +335,8 @@ >>> Composite parent = oldListControl.getParent(); >>> oldListControl.dispose(); >>> list = DataPageToolkit.createSimpleItemList(parent, itemListBuilder, container, >>> - new TableSettings(orderBy, listColumns), Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >>> + DataPageToolkit.createTableSettingsByOrderByAndColumnsWithDefaultOrdering(orderBy, listColumns), >>> + Messages.EventBrowserPage_EVENT_BROWSER_SELECTION); >>> parent.layout(); >>> list.show(filteredItems); >>> } >>> >>> >>> >>> diff -r 2cc768144a86 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java >>> --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Fri Aug 10 14:03:47 2018 +0530 >>> +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java Mon Aug 13 15:38:01 2018 +0200 >>> @@ -67,6 +67,7 @@ >>> import org.openjdk.jmc.flightrecorder.ui.IPageContainer; >>> import org.openjdk.jmc.flightrecorder.ui.ItemCollectionToolkit; >>> import org.openjdk.jmc.flightrecorder.ui.StreamModel; >>> +import org.openjdk.jmc.flightrecorder.ui.common.DataPageToolkit; >>> import org.openjdk.jmc.flightrecorder.ui.common.FilterComponent; >>> import org.openjdk.jmc.flightrecorder.ui.common.ImageConstants; >>> import org.openjdk.jmc.flightrecorder.ui.common.ItemHistogram.HistogramSelection; >>> @@ -153,10 +154,11 @@ >>> >>> // FIXME: Should we use the state here, if the columns have been updated? >>> // FIXME: Should we change the column state if the user explicitly has configured the columns? >>> - TableSettings itemListSettings = TableSettings.forStateAndColumns( >>> - state != null ? state.getChild(LIST_SETTINGS) : null, acc.getAllAttributes().keySet(), >>> - acc.getCommonAttributes().keySet()); >>> - >>> + final TableSettings itemListSettings = state == null ? DataPageToolkit.createTableSettingsByAllAndVisibleColumns( >>> + acc.getAllAttributes().keySet(), acc.getCommonAttributes().keySet()) : >>> + TableSettings.forStateAndColumns(state.getChild(LIST_SETTINGS), acc.getAllAttributes().keySet(), >>> + acc.getCommonAttributes().keySet()); >>> + >>> Composite listComposite = toolkit.createComposite(tabFolder); >>> listComposite.setLayout(GridLayoutFactory.swtDefaults().create()); >>> itemList = itemListBuilder.buildWithoutBorder(listComposite, >>> itemListSettings); >>> >>> >>> >>> >> > From neugens at redhat.com Tue Aug 21 17:18:16 2018 From: neugens at redhat.com (Mario Torre) Date: Tue, 21 Aug 2018 19:18:16 +0200 Subject: Review request for JMC-6110: Fixing Jemmy class path and removing unnecessary files In-Reply-To: References: Message-ID: Hi Marcus, The patch looks good for me as well. Unfortunately I wasn't able to run the test suite due to an issue with OpenJDK 8 and org.openjdk.jmc.rjmx.test.services.CommercialFeaturesServiceTest, I'll file a bug report tomorrow on that. Cheers, Mario On Tue, Aug 21, 2018 at 5:32 PM Marcus Hirt wrote: > > Hi all, > > Please review this small fix to get the uitests to run properly. > > Jira: https://bugs.openjdk.java.net/browse/JMC-6110 > Webrev: http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.add/ > > Kind regards, > Marcus > > -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From marcus.hirt at oracle.com Tue Aug 21 17:26:31 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Tue, 21 Aug 2018 17:26:31 +0000 Subject: hg: jmc/jmc: JMC-6110: Fixing Jemmy class path and removing unnecessary files Message-ID: <201808211726.w7LHQVTa010850@aojmv0008.oracle.com> Changeset: a137b3205bc8 Author: hirt Date: 2018-08-21 19:26 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/a137b3205bc8 JMC-6110: Fixing Jemmy class path and removing unnecessary files Reviewed-by: ghb,neugens ! application/uitests/org.openjdk.jmc.test.jemmy/.classpath ! application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF - application/uitests/org.openjdk.jmc.test.jemmy/jar.classpath - application/uitests/org.openjdk.jmc.test.jemmy/src.classpath From marcus.hirt at oracle.com Tue Aug 21 17:27:08 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Tue, 21 Aug 2018 19:27:08 +0200 Subject: Review request for JMC-6110: Fixing Jemmy class path and removing unnecessary files In-Reply-To: <5892B4A6-3FAA-45EF-AC93-CA7443B9B481@redhat.com> References: <5892B4A6-3FAA-45EF-AC93-CA7443B9B481@redhat.com> Message-ID: <1FA20F3E-54B4-45B7-8D6B-DD4E57080F80@oracle.com> Hi Mario, Thank you! Yes, please file a bug report. Kind regards, Marcus ?On 2018-08-21, 19:18, "Mario Torre" wrote: Hi Marcus, The patch looks good for me as well. Unfortunately I wasn't able to run the test suite due to an issue with OpenJDK 8 and org.openjdk.jmc.rjmx.test.services.CommercialFeaturesServiceTest, I'll file a bug report tomorrow on that. Cheers, Mario On Tue, Aug 21, 2018 at 5:32 PM Marcus Hirt wrote: > > Hi all, > > Please review this small fix to get the uitests to run properly. > > Jira: https://bugs.openjdk.java.net/browse/JMC-6110 > Webrev: http://cr.openjdk.java.net/~hirt/JMC-6110/webrev.add/ > > Kind regards, > Marcus > > -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From marcus.hirt at oracle.com Tue Aug 21 18:18:38 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Tue, 21 Aug 2018 20:18:38 +0200 Subject: Java Mission Control Author request for: Joshua Matsuoka In-Reply-To: <93551679-BC23-4C20-8886-68944A97A56F@redhat.com> References: <93551679-BC23-4C20-8886-68944A97A56F@redhat.com> Message-ID: Hi Mario! That is an excellent idea! As project lead, and from a bit of experience working with Joshua, I gladly approve. Kind regards, Marcus ?On 2018-08-21, 18:11, "Mario Torre" wrote: Hello Marcus, I would like to propose Joshua Matsuoka as author for Java Mission Control. Joshua has been active on the JMC project and has already contributed a number of fixes: JMC-5398, http://hg.openjdk.java.net/jmc/jmc/rev/49f6575169ce JMC-6116, http://hg.openjdk.java.net/jmc/jmc/rev/b06ca8658cd4 Also, an eclipse bug (was logged on Jira as JMC-5981): Eclipse, https://git.eclipse.org/r/#/c/124139/ He is also currently working on: Bug IDs: JMC-5128 and JMC-5149 http://mail.openjdk.java.net/pipermail/jmc-dev/2018-August/000164.html Cheers, Mario -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From marcus.hirt at oracle.com Tue Aug 21 18:36:37 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Tue, 21 Aug 2018 18:36:37 +0000 Subject: hg: jmc/jmc: JMC-4740: Providing better default column ordering for event attributes Message-ID: <201808211836.w7LIabdh004610@aojmv0008.oracle.com> Changeset: c4c637714f61 Author: hirt Date: 2018-08-21 20:36 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/c4c637714f61 JMC-4740: Providing better default column ordering for event attributes Reviewed-by: ghb, sballal Contributed-by: mirage22, hirt ! .hgignore ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/DataPageToolkit.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemListAndChart.java From neugens at redhat.com Wed Aug 22 16:32:17 2018 From: neugens at redhat.com (Mario Torre) Date: Wed, 22 Aug 2018 18:32:17 +0200 Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: References: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> Message-ID: I also get the same CNFE with this patch on Linux (RHEL 7.5): org.openjdk.jmc.console.uitest.SystemTabTest Time elapsed: 0.843 sec <<< ERROR! java.lang.NoClassDefFoundError: org/jemmy/image/ImageComparator Caused by: java.lang.ClassNotFoundException: org.jemmy.image.ImageComparator cannot be found by org.openjdk.jmc.test.jemmy_7.0.0.201808221557 All fresh checkout. Are you running the tests in some special way perhaps? It's very weird. This is a runtime exception, so clearly the compilation works, so there's possibly something different in our setups that changes the way the runtime gets the jars? Cheers, Mario On Mon, Aug 20, 2018 at 9:30 PM Patrick Reinhart wrote: > > Hi Jay again, > > After a small addition reflected on the following webrev: > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev.1/ > > I tested now also all the steps successfully on my Windows 10 machine > applying the patch using hg import - Freshly set up with no maven build > before... > > -Patrick > > Am 15.08.2018 um 08:10 schrieb Patrick Reinhart: > > Hi jay, > > > > The changes where made on a Mac though. I now tried it on my Linux > > machine starting at: > > > > [rep at bisonchws12019 jmc]$ hg branches > > default 31:c178c31fdcf2 > > > > Applied the patch not having any problems: > > > > [rep at bisonchws12019 jmc]$ curl > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch > > | patch -p1 > > % Total % Received % Xferd Average Speed Time Time > > Time Current > > Dload Upload Total Spent > > Left Speed > > 100 31304 100 31304 0 0 26086 0 0:00:01 0:00:01 > > --:--:-- 26108 > > patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/build.properties > > patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml > > patching file > > releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target > > patching file > > releng/platform-definitions/platform-definition-photon/platform-definition-photon.target > > patching file releng/third-party/pom.xml > > patching file application/org.openjdk.jmc.feature.jemmy/.project > > patching file application/org.openjdk.jmc.feature.jemmy/build.properties > > patching file > > application/org.openjdk.jmc.feature.jemmy/feature.properties > > patching file application/org.openjdk.jmc.feature.jemmy/feature.xml > > patching file application/org.openjdk.jmc.feature.jemmy/pom.xml > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs > > > > After building the site (mvn p2:site) and starting the local jetty > > instance (mvn jetty:run) > > > > mvn package > > mvn verify -Dspotbugs.skip=true > > mvn verify -Dspotbugs.skip=true -Puitests > > > > > > All went well... even though I will check the same parts on Windows > > later too... > > > > -Patrick > > > > > > > > On 2018-08-14 11:37, Jayathirth D V wrote: > >> Hi Patrick, > >> > >> Thanks for your contribution to this important change. > >> I created new repo to run UI tests with this patch. I am facing below > >> problems related to this patch: > >> > >> 1) While importing the patch I am getting "abort: path '.\README.md' > >> is inside nested repo '.'". Since README.md has only comments, I > >> selectively removed the changes in README.md and imported the patch. > >> > >> 2) After importing the patch "mvn package" & "mvn verify > >> -Dspotbugs.skip=true" is running fine. But when I try to run UI tests > >> using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many > >> Access restriction errors for org.openjdk.jmc.test.jemmy. > >> > >> [ERROR] Access restriction: The type 'Image' is not API (restriction > >> on classpath entry > >> 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o > >> rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > >> [ERROR] > >> D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper > >> > >> s\MCJemmyBase.java:[810] > >> [ERROR] image.save(fileName); > >> [ERROR] ^^^^^^^^^^^^^^^^^^^^ > >> [ERROR] Access restriction: The method 'Image.save(String)' is not API > >> (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p > >> 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > >> > >> [ERROR] 92 problems (92 errors) > >> [ERROR] -> [Help 1] > >> [ERROR] > >> [ERROR] To see the full stack trace of the errors, re-run Maven with > >> the -e switch. > >> [ERROR] Re-run Maven using the -X switch to enable full debug logging. > >> [ERROR] > >> [ERROR] For more information about the errors and possible solutions, > >> please read the following articles: > >> [ERROR] [Help 1] > >> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > >> [ERROR] > >> [ERROR] After correcting the problems, you can resume the build with > >> the command > >> [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy > >> > >> Please clarify. > >> > >> Regards, > >> Jay > >> > >> -----Original Message----- > >> From: Patrick Reinhart [mailto:patrick at reini.net] > >> Sent: Tuesday, August 14, 2018 1:53 AM > >> To: jmc-dev at openjdk.java.net > >> Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central > >> > >> Hi everybody, > >> > >> I added a new feature to have the jemmy libraries resolved from maven > >> central. > >> > >> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ > >> > >> -Patrick > > -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From marcus.hirt at oracle.com Wed Aug 22 16:39:06 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Wed, 22 Aug 2018 18:39:06 +0200 Subject: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: <3D8E735B-8112-4A47-B9CA-223E5B950444@redhat.com> References: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> <3D8E735B-8112-4A47-B9CA-223E5B950444@redhat.com> Message-ID: <5D73A3ED-1AC4-4D78-8002-3C66BE727C2B@oracle.com> Hi Mario, I tried adding them to the test runtime, e.g. like this: --- old/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.413342400 +0200 +++ new/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.316342200 +0200 @@ -118,6 +118,26 @@ org.eclipse.rcp 0.0.0 + + eclipse-plugin + org.adoptopenjdk.jemmy-core + 0.0.0 + + + eclipse-plugin + org.adoptopenjdk.jemmy-swt + 0.0.0 + + + eclipse-plugin + org.adoptopenjdk.jemmy-browser + 0.0.0 + + + eclipse-plugin + org.adoptopenjdk.jemmy-awt-input + 0.0.0 + That should have fixed things, but didn't seem to help much for me. Does adding Jemmy to the uitest poms work for you? Kind regards, Marcus ?On 2018-08-22, 18:33, "jmc-dev on behalf of Mario Torre" wrote: I also get the same CNFE with this patch on Linux (RHEL 7.5): org.openjdk.jmc.console.uitest.SystemTabTest Time elapsed: 0.843 sec <<< ERROR! java.lang.NoClassDefFoundError: org/jemmy/image/ImageComparator Caused by: java.lang.ClassNotFoundException: org.jemmy.image.ImageComparator cannot be found by org.openjdk.jmc.test.jemmy_7.0.0.201808221557 All fresh checkout. Are you running the tests in some special way perhaps? It's very weird. This is a runtime exception, so clearly the compilation works, so there's possibly something different in our setups that changes the way the runtime gets the jars? Cheers, Mario On Mon, Aug 20, 2018 at 9:30 PM Patrick Reinhart wrote: > > Hi Jay again, > > After a small addition reflected on the following webrev: > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev.1/ > > I tested now also all the steps successfully on my Windows 10 machine > applying the patch using hg import - Freshly set up with no maven build > before... > > -Patrick > > Am 15.08.2018 um 08:10 schrieb Patrick Reinhart: > > Hi jay, > > > > The changes where made on a Mac though. I now tried it on my Linux > > machine starting at: > > > > [rep at bisonchws12019 jmc]$ hg branches > > default 31:c178c31fdcf2 > > > > Applied the patch not having any problems: > > > > [rep at bisonchws12019 jmc]$ curl > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch > > | patch -p1 > > % Total % Received % Xferd Average Speed Time Time > > Time Current > > Dload Upload Total Spent > > Left Speed > > 100 31304 100 31304 0 0 26086 0 0:00:01 0:00:01 > > --:--:-- 26108 > > patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/build.properties > > patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml > > patching file > > releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target > > patching file > > releng/platform-definitions/platform-definition-photon/platform-definition-photon.target > > patching file releng/third-party/pom.xml > > patching file application/org.openjdk.jmc.feature.jemmy/.project > > patching file application/org.openjdk.jmc.feature.jemmy/build.properties > > patching file > > application/org.openjdk.jmc.feature.jemmy/feature.properties > > patching file application/org.openjdk.jmc.feature.jemmy/feature.xml > > patching file application/org.openjdk.jmc.feature.jemmy/pom.xml > > patching file > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs > > > > After building the site (mvn p2:site) and starting the local jetty > > instance (mvn jetty:run) > > > > mvn package > > mvn verify -Dspotbugs.skip=true > > mvn verify -Dspotbugs.skip=true -Puitests > > > > > > All went well... even though I will check the same parts on Windows > > later too... > > > > -Patrick > > > > > > > > On 2018-08-14 11:37, Jayathirth D V wrote: > >> Hi Patrick, > >> > >> Thanks for your contribution to this important change. > >> I created new repo to run UI tests with this patch. I am facing below > >> problems related to this patch: > >> > >> 1) While importing the patch I am getting "abort: path '.\README.md' > >> is inside nested repo '.'". Since README.md has only comments, I > >> selectively removed the changes in README.md and imported the patch. > >> > >> 2) After importing the patch "mvn package" & "mvn verify > >> -Dspotbugs.skip=true" is running fine. But when I try to run UI tests > >> using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many > >> Access restriction errors for org.openjdk.jmc.test.jemmy. > >> > >> [ERROR] Access restriction: The type 'Image' is not API (restriction > >> on classpath entry > >> 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o > >> rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > >> [ERROR] > >> D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper > >> > >> s\MCJemmyBase.java:[810] > >> [ERROR] image.save(fileName); > >> [ERROR] ^^^^^^^^^^^^^^^^^^^^ > >> [ERROR] Access restriction: The method 'Image.save(String)' is not API > >> (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p > >> 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > >> > >> [ERROR] 92 problems (92 errors) > >> [ERROR] -> [Help 1] > >> [ERROR] > >> [ERROR] To see the full stack trace of the errors, re-run Maven with > >> the -e switch. > >> [ERROR] Re-run Maven using the -X switch to enable full debug logging. > >> [ERROR] > >> [ERROR] For more information about the errors and possible solutions, > >> please read the following articles: > >> [ERROR] [Help 1] > >> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > >> [ERROR] > >> [ERROR] After correcting the problems, you can resume the build with > >> the command > >> [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy > >> > >> Please clarify. > >> > >> Regards, > >> Jay > >> > >> -----Original Message----- > >> From: Patrick Reinhart [mailto:patrick at reini.net] > >> Sent: Tuesday, August 14, 2018 1:53 AM > >> To: jmc-dev at openjdk.java.net > >> Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central > >> > >> Hi everybody, > >> > >> I added a new feature to have the jemmy libraries resolved from maven > >> central. > >> > >> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ > >> > >> -Patrick > > -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From neugens at redhat.com Wed Aug 22 16:59:01 2018 From: neugens at redhat.com (Mario Torre) Date: Wed, 22 Aug 2018 18:59:01 +0200 Subject: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: <5D73A3ED-1AC4-4D78-8002-3C66BE727C2B@oracle.com> References: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> <3D8E735B-8112-4A47-B9CA-223E5B950444@redhat.com> <5D73A3ED-1AC4-4D78-8002-3C66BE727C2B@oracle.com> Message-ID: Yeah, I applied that too before, doesn't seem to help though. Cheers, Mario On Wed, Aug 22, 2018 at 6:39 PM Marcus Hirt wrote: > > Hi Mario, > > I tried adding them to the test runtime, e.g. like this: > --- old/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.413342400 +0200 > +++ new/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.316342200 +0200 > @@ -118,6 +118,26 @@ > org.eclipse.rcp > 0.0.0 > > + > + eclipse-plugin > + org.adoptopenjdk.jemmy-core > + 0.0.0 > + > + > + eclipse-plugin > + org.adoptopenjdk.jemmy-swt > + 0.0.0 > + > + > + eclipse-plugin > + org.adoptopenjdk.jemmy-browser > + 0.0.0 > + > + > + eclipse-plugin > + org.adoptopenjdk.jemmy-awt-input > + 0.0.0 > + > > > > > That should have fixed things, but didn't seem to help much for me. > Does adding Jemmy to the uitest poms work for you? > > Kind regards, > Marcus > > ?On 2018-08-22, 18:33, "jmc-dev on behalf of Mario Torre" wrote: > > I also get the same CNFE with this patch on Linux (RHEL 7.5): > > org.openjdk.jmc.console.uitest.SystemTabTest Time elapsed: 0.843 sec > <<< ERROR! > java.lang.NoClassDefFoundError: org/jemmy/image/ImageComparator > Caused by: java.lang.ClassNotFoundException: > org.jemmy.image.ImageComparator cannot be found by > org.openjdk.jmc.test.jemmy_7.0.0.201808221557 > > All fresh checkout. > > Are you running the tests in some special way perhaps? It's very weird. > > This is a runtime exception, so clearly the compilation works, so > there's possibly something different in our setups that changes the > way the runtime gets the jars? > > Cheers, > Mario > > On Mon, Aug 20, 2018 at 9:30 PM Patrick Reinhart wrote: > > > > Hi Jay again, > > > > After a small addition reflected on the following webrev: > > > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev.1/ > > > > I tested now also all the steps successfully on my Windows 10 machine > > applying the patch using hg import - Freshly set up with no maven build > > before... > > > > -Patrick > > > > Am 15.08.2018 um 08:10 schrieb Patrick Reinhart: > > > Hi jay, > > > > > > The changes where made on a Mac though. I now tried it on my Linux > > > machine starting at: > > > > > > [rep at bisonchws12019 jmc]$ hg branches > > > default 31:c178c31fdcf2 > > > > > > Applied the patch not having any problems: > > > > > > [rep at bisonchws12019 jmc]$ curl > > > http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch > > > | patch -p1 > > > % Total % Received % Xferd Average Speed Time Time > > > Time Current > > > Dload Upload Total Spent > > > Left Speed > > > 100 31304 100 31304 0 0 26086 0 0:00:01 0:00:01 > > > --:--:-- 26108 > > > patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath > > > patching file > > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs > > > patching file > > > application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF > > > patching file > > > application/uitests/org.openjdk.jmc.test.jemmy/build.properties > > > patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml > > > patching file > > > releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target > > > patching file > > > releng/platform-definitions/platform-definition-photon/platform-definition-photon.target > > > patching file releng/third-party/pom.xml > > > patching file application/org.openjdk.jmc.feature.jemmy/.project > > > patching file application/org.openjdk.jmc.feature.jemmy/build.properties > > > patching file > > > application/org.openjdk.jmc.feature.jemmy/feature.properties > > > patching file application/org.openjdk.jmc.feature.jemmy/feature.xml > > > patching file application/org.openjdk.jmc.feature.jemmy/pom.xml > > > patching file > > > application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs > > > > > > After building the site (mvn p2:site) and starting the local jetty > > > instance (mvn jetty:run) > > > > > > mvn package > > > mvn verify -Dspotbugs.skip=true > > > mvn verify -Dspotbugs.skip=true -Puitests > > > > > > > > > All went well... even though I will check the same parts on Windows > > > later too... > > > > > > -Patrick > > > > > > > > > > > > On 2018-08-14 11:37, Jayathirth D V wrote: > > >> Hi Patrick, > > >> > > >> Thanks for your contribution to this important change. > > >> I created new repo to run UI tests with this patch. I am facing below > > >> problems related to this patch: > > >> > > >> 1) While importing the patch I am getting "abort: path '.\README.md' > > >> is inside nested repo '.'". Since README.md has only comments, I > > >> selectively removed the changes in README.md and imported the patch. > > >> > > >> 2) After importing the patch "mvn package" & "mvn verify > > >> -Dspotbugs.skip=true" is running fine. But when I try to run UI tests > > >> using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many > > >> Access restriction errors for org.openjdk.jmc.test.jemmy. > > >> > > >> [ERROR] Access restriction: The type 'Image' is not API (restriction > > >> on classpath entry > > >> 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o > > >> rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > > >> [ERROR] > > >> D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper > > >> > > >> s\MCJemmyBase.java:[810] > > >> [ERROR] image.save(fileName); > > >> [ERROR] ^^^^^^^^^^^^^^^^^^^^ > > >> [ERROR] Access restriction: The method 'Image.save(String)' is not API > > >> (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p > > >> 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') > > >> > > >> [ERROR] 92 problems (92 errors) > > >> [ERROR] -> [Help 1] > > >> [ERROR] > > >> [ERROR] To see the full stack trace of the errors, re-run Maven with > > >> the -e switch. > > >> [ERROR] Re-run Maven using the -X switch to enable full debug logging. > > >> [ERROR] > > >> [ERROR] For more information about the errors and possible solutions, > > >> please read the following articles: > > >> [ERROR] [Help 1] > > >> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException > > >> [ERROR] > > >> [ERROR] After correcting the problems, you can resume the build with > > >> the command > > >> [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy > > >> > > >> Please clarify. > > >> > > >> Regards, > > >> Jay > > >> > > >> -----Original Message----- > > >> From: Patrick Reinhart [mailto:patrick at reini.net] > > >> Sent: Tuesday, August 14, 2018 1:53 AM > > >> To: jmc-dev at openjdk.java.net > > >> Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central > > >> > > >> Hi everybody, > > >> > > >> I added a new feature to have the jemmy libraries resolved from maven > > >> central. > > >> > > >> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ > > >> > > >> -Patrick > > > > > > > -- > Mario Torre > Associate Manager, Software Engineering > Red Hat GmbH > 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 > > > > -- Mario Torre Associate Manager, Software Engineering Red Hat GmbH 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From patrick at reini.net Wed Aug 22 17:18:53 2018 From: patrick at reini.net (Patrick Reinhart) Date: Wed, 22 Aug 2018 19:18:53 +0200 Subject: JMC-6115 Use Jemmy builds from Maven Central In-Reply-To: References: <92e03fe5f5dc0b84ed624e967f3dc4e6@reini.net> <3D8E735B-8112-4A47-B9CA-223E5B950444@redhat.com> <5D73A3ED-1AC4-4D78-8002-3C66BE727C2B@oracle.com> Message-ID: <401D66D5-392C-45E9-A9AF-C1CDF876B9ED@reini.net> I don?t know why it works so far on two different office machines ?? This puzzles me... I try to apply the latest patch of Marcus on my office machines, to see if they now also fail... -Patrick > Am 22.08.2018 um 18:59 schrieb Mario Torre : > > Yeah, I applied that too before, doesn't seem to help though. > > Cheers, > Mario >> On Wed, Aug 22, 2018 at 6:39 PM Marcus Hirt wrote: >> >> Hi Mario, >> >> I tried adding them to the test runtime, e.g. like this: >> --- old/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.413342400 +0200 >> +++ new/application/uitests/org.openjdk.jmc.browser.uitest/pom.xml 2018-08-21 23:58:12.316342200 +0200 >> @@ -118,6 +118,26 @@ >> org.eclipse.rcp >> 0.0.0 >> >> + >> + eclipse-plugin >> + org.adoptopenjdk.jemmy-core >> + 0.0.0 >> + >> + >> + eclipse-plugin >> + org.adoptopenjdk.jemmy-swt >> + 0.0.0 >> + >> + >> + eclipse-plugin >> + org.adoptopenjdk.jemmy-browser >> + 0.0.0 >> + >> + >> + eclipse-plugin >> + org.adoptopenjdk.jemmy-awt-input >> + 0.0.0 >> + >> >> >> >> >> That should have fixed things, but didn't seem to help much for me. >> Does adding Jemmy to the uitest poms work for you? >> >> Kind regards, >> Marcus >> >> ?On 2018-08-22, 18:33, "jmc-dev on behalf of Mario Torre" wrote: >> >> I also get the same CNFE with this patch on Linux (RHEL 7.5): >> >> org.openjdk.jmc.console.uitest.SystemTabTest Time elapsed: 0.843 sec >> <<< ERROR! >> java.lang.NoClassDefFoundError: org/jemmy/image/ImageComparator >> Caused by: java.lang.ClassNotFoundException: >> org.jemmy.image.ImageComparator cannot be found by >> org.openjdk.jmc.test.jemmy_7.0.0.201808221557 >> >> All fresh checkout. >> >> Are you running the tests in some special way perhaps? It's very weird. >> >> This is a runtime exception, so clearly the compilation works, so >> there's possibly something different in our setups that changes the >> way the runtime gets the jars? >> >> Cheers, >> Mario >> >>> On Mon, Aug 20, 2018 at 9:30 PM Patrick Reinhart wrote: >>> >>> Hi Jay again, >>> >>> After a small addition reflected on the following webrev: >>> >>> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev.1/ >>> >>> I tested now also all the steps successfully on my Windows 10 machine >>> applying the patch using hg import - Freshly set up with no maven build >>> before... >>> >>> -Patrick >>> >>>> Am 15.08.2018 um 08:10 schrieb Patrick Reinhart: >>>> Hi jay, >>>> >>>> The changes where made on a Mac though. I now tried it on my Linux >>>> machine starting at: >>>> >>>> [rep at bisonchws12019 jmc]$ hg branches >>>> default 31:c178c31fdcf2 >>>> >>>> Applied the patch not having any problems: >>>> >>>> [rep at bisonchws12019 jmc]$ curl >>>> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/jmc.patch >>>> | patch -p1 >>>> % Total % Received % Xferd Average Speed Time Time >>>> Time Current >>>> Dload Upload Total Spent >>>> Left Speed >>>> 100 31304 100 31304 0 0 26086 0 0:00:01 0:00:01 >>>> --:--:-- 26108 >>>> patching file application/uitests/org.openjdk.jmc.test.jemmy/.classpath >>>> patching file >>>> application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.jdt.core.prefs >>>> patching file >>>> application/uitests/org.openjdk.jmc.test.jemmy/META-INF/MANIFEST.MF >>>> patching file >>>> application/uitests/org.openjdk.jmc.test.jemmy/build.properties >>>> patching file application/uitests/org.openjdk.jmc.test.jemmy/pom.xml >>>> patching file >>>> releng/platform-definitions/platform-definition-oxygen/platform-definition-oxygen.target >>>> patching file >>>> releng/platform-definitions/platform-definition-photon/platform-definition-photon.target >>>> patching file releng/third-party/pom.xml >>>> patching file application/org.openjdk.jmc.feature.jemmy/.project >>>> patching file application/org.openjdk.jmc.feature.jemmy/build.properties >>>> patching file >>>> application/org.openjdk.jmc.feature.jemmy/feature.properties >>>> patching file application/org.openjdk.jmc.feature.jemmy/feature.xml >>>> patching file application/org.openjdk.jmc.feature.jemmy/pom.xml >>>> patching file >>>> application/uitests/org.openjdk.jmc.test.jemmy/.settings/org.eclipse.core.resources.prefs >>>> >>>> After building the site (mvn p2:site) and starting the local jetty >>>> instance (mvn jetty:run) >>>> >>>> mvn package >>>> mvn verify -Dspotbugs.skip=true >>>> mvn verify -Dspotbugs.skip=true -Puitests >>>> >>>> >>>> All went well... even though I will check the same parts on Windows >>>> later too... >>>> >>>> -Patrick >>>> >>>> >>>> >>>>> On 2018-08-14 11:37, Jayathirth D V wrote: >>>>> Hi Patrick, >>>>> >>>>> Thanks for your contribution to this important change. >>>>> I created new repo to run UI tests with this patch. I am facing below >>>>> problems related to this patch: >>>>> >>>>> 1) While importing the patch I am getting "abort: path '.\README.md' >>>>> is inside nested repo '.'". Since README.md has only comments, I >>>>> selectively removed the changes in README.md and imported the patch. >>>>> >>>>> 2) After importing the patch "mvn package" & "mvn verify >>>>> -Dspotbugs.skip=true" is running fine. But when I try to run UI tests >>>>> using "mvn verify -Dspotbugs.skip=true -Puitests" I am getting many >>>>> Access restriction errors for org.openjdk.jmc.test.jemmy. >>>>> >>>>> [ERROR] Access restriction: The type 'Image' is not API (restriction >>>>> on classpath entry >>>>> 'C:\Users\jdv.ORADEV\.m2\repository\p2\osgi\bundle\o >>>>> rg.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') >>>>> [ERROR] >>>>> D:\Workspace\JMC7_Open\jmc\application\uitests\org.openjdk.jmc.test.jemmy\src\test\java\org\openjdk\jmc\test\jemmy\misc\base\wrapper >>>>> >>>>> s\MCJemmyBase.java:[810] >>>>> [ERROR] image.save(fileName); >>>>> [ERROR] ^^^^^^^^^^^^^^^^^^^^ >>>>> [ERROR] Access restriction: The method 'Image.save(String)' is not API >>>>> (restriction on classpath entry 'C:\Users\jdv.ORADEV\.m2\repository\p >>>>> 2\osgi\bundle\org.adoptopenjdk.jemmy-core\1.0.2\org.adoptopenjdk.jemmy-core-1.0.2.jar') >>>>> >>>>> [ERROR] 92 problems (92 errors) >>>>> [ERROR] -> [Help 1] >>>>> [ERROR] >>>>> [ERROR] To see the full stack trace of the errors, re-run Maven with >>>>> the -e switch. >>>>> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >>>>> [ERROR] >>>>> [ERROR] For more information about the errors and possible solutions, >>>>> please read the following articles: >>>>> [ERROR] [Help 1] >>>>> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException >>>>> [ERROR] >>>>> [ERROR] After correcting the problems, you can resume the build with >>>>> the command >>>>> [ERROR] mvn -rf :org.openjdk.jmc.test.jemmy >>>>> >>>>> Please clarify. >>>>> >>>>> Regards, >>>>> Jay >>>>> >>>>> -----Original Message----- >>>>> From: Patrick Reinhart [mailto:patrick at reini.net] >>>>> Sent: Tuesday, August 14, 2018 1:53 AM >>>>> To: jmc-dev at openjdk.java.net >>>>> Subject: RFR: JMC-6115 Use Jemmy builds from Maven Central >>>>> >>>>> Hi everybody, >>>>> >>>>> I added a new feature to have the jemmy libraries resolved from maven >>>>> central. >>>>> >>>>> http://cr.openjdk.java.net/~reinhapa/reviews/JMC-6115/webrev/ >>>>> >>>>> -Patrick >>> >>> >> >> >> -- >> Mario Torre >> Associate Manager, Software Engineering >> Red Hat GmbH >> 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 >> >> >> >> > > > -- > Mario Torre > Associate Manager, Software Engineering > Red Hat GmbH > 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898 From jmatsuok at redhat.com Thu Aug 23 15:30:42 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Thu, 23 Aug 2018 11:30:42 -0400 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: Hi Marcus, After our discussions on IRC we decided to go with adding a tooltip over the disabled options for user clarity. I've gone ahead and added a tooltip to the disabled legend and form actions, as well as disabled the context menu actions. http://cr.openjdk.java.net/~jmatsuoka/JMC-5128/webrev.01/ Cheers, - Josh On Mon, Aug 20, 2018 at 12:38 PM, Marcus Hirt wrote: > Hi Josh, > > Great! Thanks for the revised patch! I am a bit torn regarding the > disablement > for two reasons: the first is that there is no feedback as to why it has > been > disabled, and the second is that the lane related items on the chart's > context > menu still remain available to me, so it is still possible to enter the > lane > configuration dialog. How about a quick chat on the IRC to see if we can > come > up with an improved solution? > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Monday, 20 August 2018 at 18:09 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > I've updated the patch. It now checks if the pause events have thread > information before proceeding with the rendering, as well as disabling the > thread activity actions if there is no thread information present in the > events, as in that situation there is no point to those actions. > > Cheers, > > - Josh > > On Fri, Aug 17, 2018 at 12:49 PM, Marcus Hirt marcus.hirt at oracle.com> wrote: > Hi Josh, > > In older recordings, the thread information may not be available: > <--> > java.lang.NullPointerException > at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$ > GarbageCollectionsUi.buildChart(GarbageCollectionsPage.java:515) > at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$ > GarbageCollectionsUi.lambda$0(GarbageCollectionsPage.java:255) > at org.openjdk.jmc.ui.handlers.ActionToolkit$3.run( > ActionToolkit.java:166) > at org.openjdk.jmc.ui.misc.ActionUiToolkit.lambda$4( > ActionUiToolkit.java:129) > at org.eclipse.jface.viewers.CheckboxTableViewer$1.run( > CheckboxTableViewer.java:212) > at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) > at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44) > <--> > > Ping me on IRC and I can share a representative recording with you! > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Tuesday, 14 August 2018 at 17:25 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > Heres an updated patch, I've removed the thread table and made the thread > activity lane dependent on the table selection. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka redhat.com> wrote: > Hi Marcus, > > Sounds good to me! I agree the thread chart seems a little odd looking at > it again. I'll remove it but keep the activity lane as you suggested. > > Would you be opposed to a separate patch adding the thread lane context > menu entries to the application page? It seems inconsistent with the other > uses of activity lanes. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt oracle.com> wrote: > Hi Joshua, > > I agree that the thread field should be added to the phases table. I worry > about having a threads table in the beginning of the page, as it moves the > focus from GCs to threads. If you are only interested in thread halts in > relation to other events in the recording, you should really go to the > Application page. Then you see all the halts (for example other > vm-operations), and not only the GC-related ones. > > You could keep the Thread Activity lane, but for example make it show > events for the threads involved in whatever selection you do in the tables > above (without having an explicit threads table). > > What do you think? > > Kind regards, > Marcus > > From: Joshua Matsuoka > Date: Monday, 13 August 2018 at 20:51 > To: Marcus Hirt > Cc: > Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC > Phase Events > > Hi Marcus, > > Thanks for the feedback! > > I was following the suggestions in the comments/history on > https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to > having the thread lane able to be visualized alongside the rest of the GC > information. It's nice being able to see the thread events/activity align > with the pause visualization and heap activity. I can also seeing this be > useful for users who may have custom events defined, where it may be useful > to see these events alongside the heap/gc behaviour. I noticed as well > that the thread activity display on the Java Application page lacks the > context menu options to display additional types of events in the > visualization. Perhaps if we feel that these changes are unnecessary, I can > make an additional patch that could add that functionality to the thread > lane on the application page. In either case though, we should probably > still add the event thread to the information displayed for pause events. > > Cheers, > > - Josh > > On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt :marcus.hirt at oracle.com> wrote: > Hi Josh, > > Thanks for the suggestion! The normal work process is to focus the UI on > whatever is of interest, and then just go to the Applications view. That > way > we end up not having to replicate that functionality on every page. > > Can you tell me a little bit more about your use case and how you see this > being used? > > (Good initiative! I think you're the first non-Oracle employee attempting > to > improve on the visualization, so kudos!) > > Kind regards, > Marcus > ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" mailto:mailto:mailto:jmc-dev-bounces at openjdk.java.net on behalf of mailto: > mailto:mailto:mailto:jmatsuok at redhat.com> wrote: > > Hi, > > This is a patch that addresses JMC-5128 and JMC-5149. Currently the > event > thread field in the GC Phase Events isn't used by the UI. This patch > accomplishes the following: > > - Adds this field to the phases table. > - Adds a Thread table similar to the Java Application page which > displays > the threads that the phase events occurred on. > - Adds a Thread lane to visualize the thread selected by the above > table. > > This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 > > Thoughts? > > Cheers, > > - Josh > > > > > > > > > > > > From marcus.hirt at oracle.com Thu Aug 23 16:38:53 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Thu, 23 Aug 2018 16:38:53 +0000 Subject: hg: jmc/jmc: JMC-5128: Utilize EventThread field in GC Phase Events Message-ID: <201808231638.w7NGcrEc013921@aojmv0008.oracle.com> Changeset: 9ee2ff5bc643 Author: hirt Date: 2018-08-23 18:38 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/9ee2ff5bc643 JMC-5128: Utilize EventThread field in GC Phase Events Reviewed-by: hirt Contributed-by: jmatsuoka ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/ThreadGraphLanes.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/messages/internal/Messages.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/GarbageCollectionsPage.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/resources/org/openjdk/jmc/flightrecorder/ui/messages/internal/messages.properties From marcus.hirt at oracle.com Thu Aug 23 16:50:39 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Thu, 23 Aug 2018 18:50:39 +0200 Subject: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events In-Reply-To: References: <2B468E0F-A055-4D31-9FA5-75337023F115@redhat.com> <3EF446E9-230E-41FE-884D-76E5217A34BA@oracle.com> <41AD6C26-9A31-42B6-9E60-8AAA34FA83CD@redhat.com> <8AC4B6C5-D201-4950-800F-80AF3E00749F@oracle.com> Message-ID: <42BC4A5C-716D-4177-86F6-196A759F766E@oracle.com> Thanks for the contribution Josh! Kind regards, Marcus From: Joshua Matsuoka Date: Thursday, 23 August 2018 at 17:56 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, After our discussions on IRC we decided to go with adding a tooltip over the disabled options for user clarity. I've gone ahead and added a tooltip to the disabled legend and form actions, as well as disabled the context menu actions. http://cr.openjdk.java.net/~jmatsuoka/JMC-5128/webrev.01/ Cheers, - Josh On Mon, Aug 20, 2018 at 12:38 PM, Marcus Hirt wrote: Hi Josh, Great! Thanks for the revised patch! I am a bit torn regarding the disablement for two reasons: the first is that there is no feedback as to why it has been disabled, and the second is that the lane related items on the chart's context menu still remain available to me, so it is still possible to enter the lane configuration dialog. How about a quick chat on the IRC to see if we can come up with an improved solution? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 20 August 2018 at 18:09 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, I've updated the patch. It now checks if the pause events have thread information before proceeding with the rendering, as well as disabling the thread activity actions if there is no thread information present in the events, as in that situation there is no point to those actions. Cheers, - Josh On Fri, Aug 17, 2018 at 12:49 PM, Marcus Hirt wrote: Hi Josh, In older recordings, the thread information may not be available: <--> java.lang.NullPointerException at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.buildChart(GarbageCollectionsPage.java:515) at org.openjdk.jmc.flightrecorder.ui.pages.GarbageCollectionsPage$GarbageCollectionsUi.lambda$0(GarbageCollectionsPage.java:255) at org.openjdk.jmc.ui.handlers.ActionToolkit$3.run(ActionToolkit.java:166) at org.openjdk.jmc.ui.misc.ActionUiToolkit.lambda$4(ActionUiToolkit.java:129) at org.eclipse.jface.viewers.CheckboxTableViewer$1.run(CheckboxTableViewer.java:212) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44) <--> Ping me on IRC and I can share a representative recording with you! Kind regards, Marcus From: Joshua Matsuoka Date: Tuesday, 14 August 2018 at 17:25 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Heres an updated patch, I've removed the thread table and made the thread activity lane dependent on the table selection. Cheers, - Josh On Mon, Aug 13, 2018 at 4:07 PM, Joshua Matsuoka wrote: Hi Marcus, Sounds good to me! I agree the thread chart seems a little odd looking at it again. I'll remove it but keep the activity lane as you suggested. Would you be opposed to a separate patch adding the thread lane context menu entries to the application page? It seems inconsistent with the other uses of activity lanes. Cheers, - Josh On Mon, Aug 13, 2018 at 3:59 PM, Marcus Hirt wrote: Hi Joshua, I agree that the thread field should be added to the phases table. I worry about having a threads table in the beginning of the page, as it moves the focus from GCs to threads. If you are only interested in thread halts in relation to other events in the recording, you should really go to the Application page. Then you see all the halts (for example other vm-operations), and not only the GC-related ones. You could keep the Thread Activity lane, but for example make it show events for the threads involved in whatever selection you do in the tables above (without having an explicit threads table). What do you think? Kind regards, Marcus From: Joshua Matsuoka Date: Monday, 13 August 2018 at 20:51 To: Marcus Hirt Cc: Subject: Re: [PATCH] JMC-5128/JMC-5149 - Utilize EventThread field in GC Phase Events Hi Marcus, Thanks for the feedback! I was following the suggestions in the comments/history on https://bugs.openjdk.java.net/browse/JMC-5128 . I think there's value to having the thread lane able to be visualized alongside the rest of the GC information. It's nice being able to see the thread events/activity align with the pause visualization and heap activity. I can also seeing this be useful for users who may have custom events defined, where it may be useful to see these events alongside the heap/gc behaviour. I noticed as well that the thread activity display on the Java Application page lacks the context menu options to display additional types of events in the visualization. Perhaps if we feel that these changes are unnecessary, I can make an additional patch that could add that functionality to the thread lane on the application page. In either case though, we should probably still add the event thread to the information displayed for pause events. Cheers, - Josh On Mon, Aug 13, 2018 at 11:56 AM, Marcus Hirt wrote: Hi Josh, Thanks for the suggestion! The normal work process is to focus the UI on whatever is of interest, and then just go to the Applications view. That way we end up not having to replicate that functionality on every page. Can you tell me a little bit more about your use case and how you see this being used? (Good initiative! I think you're the first non-Oracle employee attempting to improve on the visualization, so kudos!) Kind regards, Marcus ?On 2018-08-13, 17:41, "jmc-dev on behalf of Joshua Matsuoka" wrote: Hi, This is a patch that addresses JMC-5128 and JMC-5149. Currently the event thread field in the GC Phase Events isn't used by the UI. This patch accomplishes the following: - Adds this field to the phases table. - Adds a Thread table similar to the Java Application page which displays the threads that the phase events occurred on. - Adds a Thread lane to visualize the thread selected by the above table. This is a screenshot of the updated UI: https://imgur.com/a/CFQz9G6 Thoughts? Cheers, - Josh From miro.wengner at gmail.com Mon Aug 27 07:56:42 2018 From: miro.wengner at gmail.com (Miro Wengner) Date: Mon, 27 Aug 2018 09:56:42 +0200 Subject: [PATCH] JMC-4326 : "ItemHandlerPage" - Columns should exist even though there is no data Message-ID: <47E81445-79EA-41B9-93C1-21C8F0EF6005@gmail.com> Hi Marcus and everyone, here is my patch. test scenario: 1. mvn clean package, mvn verify -> SUCCESS 2. I?ve created different reading and changed columns visibilities, page state has been persisted and displayed after starting JCM again. Kind Regards, Miro patch: diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Sun Aug 26 23:09:22 2018 +0200 @@ -79,7 +79,7 @@ private void forEachType(IItemCollection items) { if (items != null) { - ItemCollectionToolkit.stream(items).filter(IItemIterable::hasItems).map(IItemIterable::getType) + ItemCollectionToolkit.stream(items).map(IItemIterable::getType) .forEach(type -> { allTypes.put(type.getIdentifier(), type); for (IAttribute a : type.getAttributes()) { diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Sun Aug 26 23:09:22 2018 +0200 @@ -215,7 +215,7 @@ private final ItemListAndChart itemListAndChart; private IRange currentRange; private IItemCollection filteredItems; - AttributeComponentConfiguration acc; + private AttributeComponentConfiguration acc; private IItemCollection selectionItems; private String[] topics; From marcus.hirt at oracle.com Mon Aug 27 11:29:17 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 27 Aug 2018 13:29:17 +0200 Subject: [PATCH] JMC-4326 : "ItemHandlerPage" - Columns should exist even though there is no data In-Reply-To: References: Message-ID: <18D59953-33B5-418A-A6B8-F8A4252137E8@oracle.com> Hi Miro, I think there may be some unintended consequences (e.g. Event Browser behaviour) with this solution. Let's chat a bit tonight. Kind regards, Marcus ?On 2018-08-27, 09:57, "jmc-dev on behalf of Miro Wengner" wrote: Hi Marcus and everyone, here is my patch. test scenario: 1. mvn clean package, mvn verify -> SUCCESS 2. I?ve created different reading and changed columns visibilities, page state has been persisted and displayed after starting JCM again. Kind Regards, Miro patch: diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Sun Aug 26 23:09:22 2018 +0200 @@ -79,7 +79,7 @@ private void forEachType(IItemCollection items) { if (items != null) { - ItemCollectionToolkit.stream(items).filter(IItemIterable::hasItems).map(IItemIterable::getType) + ItemCollectionToolkit.stream(items).map(IItemIterable::getType) .forEach(type -> { allTypes.put(type.getIdentifier(), type); for (IAttribute a : type.getAttributes()) { diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Sun Aug 26 23:09:22 2018 +0200 @@ -215,7 +215,7 @@ private final ItemListAndChart itemListAndChart; private IRange currentRange; private IItemCollection filteredItems; - AttributeComponentConfiguration acc; + private AttributeComponentConfiguration acc; private IItemCollection selectionItems; private String[] topics; From marcus.hirt at oracle.com Mon Aug 27 16:01:37 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 27 Aug 2018 18:01:37 +0200 Subject: [PATCH] JMC-4326 : "ItemHandlerPage" - Columns should exist even though there is no data In-Reply-To: <343B1FCE-6902-4930-B7D1-6BA528436715@oracle.com> References: <343B1FCE-6902-4930-B7D1-6BA528436715@oracle.com> Message-ID: <28C341C7-2DF2-4AEE-8C54-77301A0FDD69@oracle.com> Ah, that thing is only used by the ItemHandlerPage. Should be okay. Will take a look in a bit. Kind regards, Marcus ?On 2018-08-27, 13:29, "jmc-dev on behalf of Marcus Hirt" wrote: Hi Miro, I think there may be some unintended consequences (e.g. Event Browser behaviour) with this solution. Let's chat a bit tonight. Kind regards, Marcus ?On 2018-08-27, 09:57, "jmc-dev on behalf of Miro Wengner" wrote: Hi Marcus and everyone, here is my patch. test scenario: 1. mvn clean package, mvn verify -> SUCCESS 2. I?ve created different reading and changed columns visibilities, page state has been persisted and displayed after starting JCM again. Kind Regards, Miro patch: diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Sun Aug 26 23:09:22 2018 +0200 @@ -79,7 +79,7 @@ private void forEachType(IItemCollection items) { if (items != null) { - ItemCollectionToolkit.stream(items).filter(IItemIterable::hasItems).map(IItemIterable::getType) + ItemCollectionToolkit.stream(items).map(IItemIterable::getType) .forEach(type -> { allTypes.put(type.getIdentifier(), type); for (IAttribute a : type.getAttributes()) { diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Sun Aug 26 23:09:22 2018 +0200 @@ -215,7 +215,7 @@ private final ItemListAndChart itemListAndChart; private IRange currentRange; private IItemCollection filteredItems; - AttributeComponentConfiguration acc; + private AttributeComponentConfiguration acc; private IItemCollection selectionItems; private String[] topics; From miro.wengner at gmail.com Mon Aug 27 16:09:07 2018 From: miro.wengner at gmail.com (Miro Wengner) Date: Mon, 27 Aug 2018 18:09:07 +0200 Subject: [PATCH] JMC-4326 : "ItemHandlerPage" - Columns should exist even though there is no data In-Reply-To: <28C341C7-2DF2-4AEE-8C54-77301A0FDD69@oracle.com> References: <343B1FCE-6902-4930-B7D1-6BA528436715@oracle.com> <28C341C7-2DF2-4AEE-8C54-77301A0FDD69@oracle.com> Message-ID: <114E8325-5C08-4784-A635-E99A403D7477@gmail.com> Hi Marcus, we can have a chat! I?ve been debugging around a lot. I?ve not found nice way how to propagate properly Maps of used attributes. ItemHandlePage creates an ItemListAndChart object where AttributeComponentConfiguration acc is used. acc files does contain only empty Maps of attributes due to the filter condition. Miro > On Aug 27, 2018, at 6:01 PM, Marcus Hirt wrote: > > Ah, that thing is only used by the ItemHandlerPage. Should be okay. > Will take a look in a bit. > > Kind regards, > Marcus > > ?On 2018-08-27, 13:29, "jmc-dev on behalf of Marcus Hirt" wrote: > > Hi Miro, > > I think there may be some unintended consequences (e.g. Event Browser behaviour) > with this solution. Let's chat a bit tonight. > > Kind regards, > Marcus > > ?On 2018-08-27, 09:57, "jmc-dev on behalf of Miro Wengner" wrote: > > Hi Marcus and everyone, > > here is my patch. > test scenario: > 1. mvn clean package, mvn verify -> SUCCESS > 2. I?ve created different reading and changed columns visibilities, page state has been persisted and displayed after starting JCM again. > > Kind Regards, > Miro > > patch: > diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java > --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Tue Aug 21 20:36:23 2018 +0200 > +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Sun Aug 26 23:09:22 2018 +0200 > @@ -79,7 +79,7 @@ > > private void forEachType(IItemCollection items) { > if (items != null) { > - ItemCollectionToolkit.stream(items).filter(IItemIterable::hasItems).map(IItemIterable::getType) > + ItemCollectionToolkit.stream(items).map(IItemIterable::getType) > .forEach(type -> { > allTypes.put(type.getIdentifier(), type); > for (IAttribute a : type.getAttributes()) { > diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java > --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Tue Aug 21 20:36:23 2018 +0200 > +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Sun Aug 26 23:09:22 2018 +0200 > @@ -215,7 +215,7 @@ > private final ItemListAndChart itemListAndChart; > private IRange currentRange; > private IItemCollection filteredItems; > - AttributeComponentConfiguration acc; > + private AttributeComponentConfiguration acc; > private IItemCollection selectionItems; > private String[] topics; > > > > > > > > > > From jmatsuok at redhat.com Mon Aug 27 16:17:57 2018 From: jmatsuok at redhat.com (Joshua Matsuoka) Date: Mon, 27 Aug 2018 12:17:57 -0400 Subject: RFR: JMC-5502: Add support for ClassDefine and ClassLoaderStatistics events to the Class Loading page Message-ID: Hi, This patch addresses JMC-5502 [1], adding 2 new tabs to the table in the Class Loading page displaying ClassDefine and ClassLoaderStatistics events. http://cr.openjdk.java.net/~jmatsuoka/JMC-5502/webrev.00/ Thoughts? [1] https://bugs.openjdk.java.net/projects/JMC/issues/JMC-5502?filter=allopenissues Cheers, - Josh From marcus.hirt at oracle.com Mon Aug 27 16:52:59 2018 From: marcus.hirt at oracle.com (marcus.hirt at oracle.com) Date: Mon, 27 Aug 2018 16:52:59 +0000 Subject: hg: jmc/jmc: JMC-4326: Columns will now exist in ItemHandler-pages for recordings that have no events for the table. Message-ID: <201808271652.w7RGqx9r017510@aojmv0008.oracle.com> Changeset: 4f670a413628 Author: hirt Date: 2018-08-27 18:52 +0200 URL: http://hg.openjdk.java.net/jmc/jmc/rev/4f670a413628 JMC-4326: Columns will now exist in ItemHandler-pages for recordings that have no events for the table. Reviewed-by: hirt Contributed-by: mirage22 ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java ! application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java From marcus.hirt at oracle.com Mon Aug 27 16:54:54 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 27 Aug 2018 18:54:54 +0200 Subject: [PATCH] JMC-4326 : "ItemHandlerPage" - Columns should exist even though there is no data In-Reply-To: References: Message-ID: <0F61E577-5CF1-43B3-AB3F-7B5DEFE9F0AF@oracle.com> Looks good! Thank you for the contribution Miro! Kind regards, Marcus ?On 2018-08-27, 09:57, "jmc-dev on behalf of Miro Wengner" wrote: Hi Marcus and everyone, here is my patch. test scenario: 1. mvn clean package, mvn verify -> SUCCESS 2. I?ve created different reading and changed columns visibilities, page state has been persisted and displayed after starting JCM again. Kind Regards, Miro patch: diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/AttributeComponentConfiguration.java Sun Aug 26 23:09:22 2018 +0200 @@ -79,7 +79,7 @@ private void forEachType(IItemCollection items) { if (items != null) { - ItemCollectionToolkit.stream(items).filter(IItemIterable::hasItems).map(IItemIterable::getType) + ItemCollectionToolkit.stream(items).map(IItemIterable::getType) .forEach(type -> { allTypes.put(type.getIdentifier(), type); for (IAttribute a : type.getAttributes()) { diff -r c4c637714f61 application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java --- a/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Tue Aug 21 20:36:23 2018 +0200 +++ b/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/itemhandler/ItemHandlerPage.java Sun Aug 26 23:09:22 2018 +0200 @@ -215,7 +215,7 @@ private final ItemListAndChart itemListAndChart; private IRange currentRange; private IItemCollection filteredItems; - AttributeComponentConfiguration acc; + private AttributeComponentConfiguration acc; private IItemCollection selectionItems; private String[] topics; From marcus.hirt at oracle.com Mon Aug 27 17:36:18 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 27 Aug 2018 19:36:18 +0200 Subject: JMC-5502: Add support for ClassDefine and ClassLoaderStatistics events to the Class Loading page In-Reply-To: References: Message-ID: <86CFB435-A46A-4A42-91B9-89CD36EB752A@oracle.com> Hi Josh! Excellent! The Class Defining and Class Unloader events you probably want to read as a log - I think it would be nice to have the timestamps to the left and sort in ascending order. The Class Defining and Class Unloading tables you probably want to listen for selections in the table above. Probably want to move the ClassLoader statistics table. It is the only table that will not be naturally filtered as a consequence from the table above. We probably also want to move the columns about a bit and select what to sort on by default (perhaps class count or block size in descending order). We can discuss where to move the table and how to change the column order on the IRC. Kind regards, Marcus ?On 2018-08-27, 18:18, "jmc-dev on behalf of Joshua Matsuoka" wrote: http://cr.openjdk.java.net/~jmatsuoka/JMC-5502/webrev.00/ From marcus.hirt at oracle.com Mon Aug 27 18:11:47 2018 From: marcus.hirt at oracle.com (Marcus Hirt) Date: Mon, 27 Aug 2018 20:11:47 +0200 Subject: Subject: Review request for JMC-6126: Removing deprecated modules from Eclipse launchers Message-ID: Hi all, Please review this fix to make it possible to launch from within Eclipse with JDK11. Jira: https://bugs.openjdk.java.net/browse/JMC-6126 Patch: diff -r 4f670a413628 application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html --- a/application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html Mon Aug 27 18:52:45 2018 +0200 +++ b/application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html Mon Aug 27 20:05:31 2018 +0200 @@ -38,7 +38,6 @@

You can also configure JVM options by using -vmargs on commandline or eclipse.ini:

-showsplash
org.eclipse.platform
-vm
D:/java/jdk8_131/jre/bin/
-vmargs
<JVM options on separate lines>

If you use JDK 9 to run Eclipse, the following JVM options are needed for Mission Control to work properly:

-Djdk.attach.allowAttachSelf=true -
--add-modules=java.xml.bind,java.xml.ws.annotation
--add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-exports=java.management/sun.management=ALL-UNNAMED diff -r 4f670a413628 configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch --- a/configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch Mon Aug 27 18:52:45 2018 +0200 +++ b/configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch Mon Aug 27 20:05:31 2018 +0200 @@ -59,7 +59,7 @@ - + diff -r 4f670a413628 configuration/ide/eclipse/launchers/JMC RCP.launch --- a/configuration/ide/eclipse/launchers/JMC RCP.launch Mon Aug 27 18:52:45 2018 +0200 +++ b/configuration/ide/eclipse/launchers/JMC RCP.launch Mon Aug 27 20:05:31 2018 +0200 @@ -61,7 +61,7 @@ - + ---- Kind regards, Marcus From guru.hb at oracle.com Mon Aug 27 18:16:40 2018 From: guru.hb at oracle.com (Guru) Date: Mon, 27 Aug 2018 23:46:40 +0530 Subject: Subject: Review request for JMC-6126: Removing deprecated modules from Eclipse launchers In-Reply-To: References: Message-ID: <1D74B388-B2C4-4243-8887-386992D98578@oracle.com> +1, Looks good to me. > On 27-Aug-2018, at 11:41 PM, Marcus Hirt wrote: > > Hi all, > > Please review this fix to make it possible to launch from within Eclipse with JDK11. > > Jira: https://bugs.openjdk.java.net/browse/JMC-6126 > Patch: > diff -r 4f670a413628 application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html > --- a/application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html Mon Aug 27 18:52:45 2018 +0200 > +++ b/application/org.openjdk.jmc.updatesite.ide/src/main/resources/run-on-jdk-instructions/index.html Mon Aug 27 20:05:31 2018 +0200 > @@ -38,7 +38,6 @@ >

You can also configure JVM options by using -vmargs on commandline or eclipse.ini:

-showsplash
org.eclipse.platform
-vm
D:/java/jdk8_131/jre/bin/
-vmargs
<JVM options on separate lines>

>

If you use JDK 9 to run Eclipse, the following JVM options are needed for Mission Control to work properly:

>

-Djdk.attach.allowAttachSelf=true > -
--add-modules=java.xml.bind,java.xml.ws.annotation >
--add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED >
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED >
--add-exports=java.management/sun.management=ALL-UNNAMED > diff -r 4f670a413628 configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch > --- a/configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch Mon Aug 27 18:52:45 2018 +0200 > +++ b/configuration/ide/eclipse/launchers/JMC RCP plug-ins.launch Mon Aug 27 20:05:31 2018 +0200 > @@ -59,7 +59,7 @@ > > > > - > + > > > > diff -r 4f670a413628 configuration/ide/eclipse/launchers/JMC RCP.launch > --- a/configuration/ide/eclipse/launchers/JMC RCP.launch Mon Aug 27 18:52:45 2018 +0200 > +++ b/configuration/ide/eclipse/launchers/JMC RCP.launch Mon Aug 27 20:05:31 2018 +0200 > @@ -61,7 +61,7 @@ > > > > - > + > > > > > ---- > Kind regards, > Marcus > > From guru.hb at oracle.com Mon Aug 27 23:11:01 2018 From: guru.hb at oracle.com (Guru) Date: Tue, 28 Aug 2018 04:41:01 +0530 Subject: Review request for JMC-6108: Publish JMC core snapshots to Sonatype Message-ID: <94B0B2B9-B5FC-4E16-9329-85E03E0739DE@oracle.com> Hi All, Please review the fix for JBS : https://bugs.openjdk.java.net/browse/JMC-6108 Webrev : http://cr.openjdk.java.net/~ghb/JMC-6108/webrev.0/ Solution and RC updated in JBS. Thanks, Guru