Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/jmc.git#549f83ffb0776c382aad1c49cddcf047e54228d7
This commit is contained in:
DistroBaker 2021-02-12 11:57:57 +00:00
parent e38f75db83
commit d56a5bca3a
21 changed files with 1345 additions and 1 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/1ddf3baa4e26.tar.gz
/63ec7d0ee8d9.tar.gz

225
0-remove-twitter.patch Normal file
View File

@ -0,0 +1,225 @@
diff --git a/application/org.openjdk.jmc.rjmx/META-INF/MANIFEST.MF b/application/org.openjdk.jmc.rjmx/META-INF/MANIFEST.MF
--- a/application/org.openjdk.jmc.rjmx/META-INF/MANIFEST.MF
+++ b/application/org.openjdk.jmc.rjmx/META-INF/MANIFEST.MF
@@ -54,7 +54,6 @@
org.openjdk.jmc.rjmx.triggers;
x-friends:="org.openjdk.jmc.console.ui.notification,
org.openjdk.jmc.alert,
- org.openjdk.jmc.console.twitter,
org.openjdk.jmc.rjmx.test",
org.openjdk.jmc.rjmx.triggers.actions.internal;x-friends:="org.openjdk.jmc.console.ui.notification",
org.openjdk.jmc.rjmx.triggers.condition.internal;x-friends:="org.openjdk.jmc.console.ui.notification,org.openjdk.jmc.test.jemmy",
diff --git a/application/pom.xml b/application/pom.xml
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -50,7 +50,6 @@
<module>org.openjdk.jmc.console.jconsole</module>
<module>org.openjdk.jmc.console.pde</module>
<module>org.openjdk.jmc.console.persistence</module>
- <module>org.openjdk.jmc.console.twitter</module>
<module>org.openjdk.jmc.console.ui</module>
<module>org.openjdk.jmc.console.ui.diagnostic</module>
<module>org.openjdk.jmc.console.ui.mbeanbrowser</module>
@@ -72,7 +71,6 @@
<module>org.openjdk.jmc.feature.pde</module>
<module>org.openjdk.jmc.feature.rcp</module>
<module>org.openjdk.jmc.feature.rcp.update</module>
- <module>org.openjdk.jmc.feature.twitter</module>
<module>org.openjdk.jmc.flightrecorder.configuration</module>
<module>org.openjdk.jmc.flightrecorder.controlpanel.ui</module>
<module>org.openjdk.jmc.flightrecorder.controlpanel.ui.configuration</module>
diff --git a/license/THIRDPARTYREADME.txt b/license/THIRDPARTYREADME.txt
--- a/license/THIRDPARTYREADME.txt
+++ b/license/THIRDPARTYREADME.txt
@@ -296,191 +296,6 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
-
-%% The following notice is provided with respect to Twitter4J 4.0.7,
-which may be included with this product.
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-Twitter4J SUBCOMPONENTS:
-
-Twitter4J includes software from JSON.org to parse JSON response from the Twitter API. You can see the license term at http://www.JSON.org/license.html
-
-
%% The following notice is provided with respect to JavaBeans Activation
Framework (JAF) 1.2.1, which may be included with this product.

358
10-revert-flameview.patch Normal file
View File

@ -0,0 +1,358 @@
# HG changeset patch
# Parent 37a493c3f60b2015c37630807015b217b98106cf
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/.classpath
--- a/application/org.openjdk.jmc.flightrecorder.flameview/.classpath Tue Nov 12 16:25:24 2019 +0100
+++ b/application/org.openjdk.jmc.flightrecorder.flameview/.classpath Mon Nov 25 17:57:23 2019 -0500
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/build.properties
--- a/application/org.openjdk.jmc.flightrecorder.flameview/build.properties Tue Nov 12 16:25:24 2019 +0100
+++ b/application/org.openjdk.jmc.flightrecorder.flameview/build.properties Mon Nov 25 17:57:23 2019 -0500
@@ -1,5 +1,4 @@
-source.. = src/main/java/,\
- src/main/resources/
+source.. = src/main/java/
output.. = target/classes/
bin.includes = META-INF/,\
.,\
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/pom.xml
--- a/application/org.openjdk.jmc.flightrecorder.flameview/pom.xml Tue Nov 12 16:25:24 2019 +0100
+++ b/application/org.openjdk.jmc.flightrecorder.flameview/pom.xml Mon Nov 25 17:57:23 2019 -0500
@@ -41,94 +41,4 @@
</parent>
<artifactId>org.openjdk.jmc.flightrecorder.flameview</artifactId>
<packaging>eclipse-plugin</packaging>
-
- <properties>
- <download.maven.plugin.version>1.4.2</download.maven.plugin.version>
- <download-maven-plugin.phase>process-resources</download-maven-plugin.phase>
- <download-maven-plugin.output>${project.basedir}/src/main/resources/jslibs</download-maven-plugin.output>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>com.googlecode.maven-download-plugin</groupId>
- <artifactId>download-maven-plugin</artifactId>
- <version>${download.maven.plugin.version}</version>
- <executions>
- <execution>
- <id>d3-flamegraph-css</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.css</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>ie-html5shiv-js</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>ie-respond-js</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://oss.maxcdn.com/respond/1.4.2/respond.min.js</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>d3-v4-js</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://d3js.org/d3.v4.min.js</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>d3-tip-js</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://cdnjs.cloudflare.com/ajax/libs/d3-tip/0.9.1/d3-tip.min.js</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>d3-flamegraph-js</id>
- <phase>${download-maven-plugin.phase}</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.min.js</url>
- <unpack>false</unpack>
- <outputDirectory>${download-maven-plugin.output}</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
</project>
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/views/FlameGraphView.java
--- a/application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/views/FlameGraphView.java Tue Nov 12 16:25:24 2019 +0100
+++ b/application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/views/FlameGraphView.java Mon Nov 25 17:57:23 2019 -0500
@@ -34,14 +34,11 @@
package org.openjdk.jmc.flightrecorder.flameview.views;
import java.io.IOException;
-
-import java.text.MessageFormat;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Level;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jface.action.Action;
@@ -77,32 +74,7 @@
import org.openjdk.jmc.ui.misc.DisplayToolkit;
public class FlameGraphView extends ViewPart implements ISelectionListener {
- private static final String HTML_PAGE;
- static {
- // from: https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.css
- String cssD3Flamegraph = "jslibs/d3-flamegraph.css";
- // from: https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js
- String jsHtml5shiv = "jslibs/html5shiv.min.js";
- // from: https://oss.maxcdn.com/respond/1.4.2/respond.min.js
- String jsRespond = "jslibs/respond.min.js";
- // from: https://d3js.org/d3.v4.min.js
- String jsD3V4 = "jslibs/d3.v4.min.js";
- // from: https://cdnjs.cloudflare.com/ajax/libs/d3-tip/0.9.1/d3-tip.min.js
- String jsD3Tip = "jslibs/d3-tip.min.js";
- // from: https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.min.js
- String jsD3FlameGraph = "jslibs/d3-flamegraph.min.js";
-
- String jsIeLibraries = loadLibraries(jsHtml5shiv, jsRespond);
- String jsD3Libraries = loadLibraries(jsD3V4, jsD3Tip, jsD3FlameGraph);
-
- // formatter arguments for the template: %1 - CSSs, %2 - IE9 specific scripts, %3 - 3rd party scripts
- HTML_PAGE = String.format(fileContent("page.template"),
- fileContent(cssD3Flamegraph),
- jsIeLibraries,
- jsD3Libraries);
- }
-
- private static final ExecutorService MODEL_EXECUTOR = Executors.newFixedThreadPool(1);
+ private static ExecutorService MODEL_EXECUTOR = Executors.newFixedThreadPool(1);
private FrameSeparator frameSeparator;
private Browser browser;
@@ -207,6 +179,13 @@
}, MODEL_EXECUTOR);
}
+ private static Void handleModelBuildException(Throwable ex) {
+ if (!(ex.getCause() instanceof CancellationException)) {
+ FlightRecorderUI.getDefault().getLogger().log(Level.SEVERE, "Failed to build stacktrace view model", ex); //$NON-NLS-1$
+ }
+ return null;
+ }
+
private void setModel(TraceNode root) {
if (!browser.isDisposed() && !root.equals(currentRoot)) {
currentRoot = root;
@@ -215,21 +194,19 @@
}
private void setViewerInput(TraceNode root) {
- browser.setText(HTML_PAGE);
- browser.addProgressListener(new ProgressAdapter() {
- @Override
- public void completed(ProgressEvent event) {
- browser.removeProgressListener(this);
- browser.execute(String.format("processGraph(%s);", toJSon(root)));
- }
- });
- }
-
- private static Void handleModelBuildException(Throwable ex) {
- if (!(ex.getCause() instanceof CancellationException)) {
- FlightRecorderUI.getDefault().getLogger().log(Level.SEVERE, "Failed to build stacktrace view model", ex); //$NON-NLS-1$
+ try {
+ browser.setText(StringToolkit.readString(FlameGraphView.class.getResourceAsStream("page.html")));
+ browser.addProgressListener(new ProgressAdapter() {
+ @Override
+ public void completed(ProgressEvent event) {
+ browser.removeProgressListener(this);
+ browser.execute(String.format("processGraph(%s);", toJSon(root)));
+ }
+ });
+ } catch (IOException e) {
+ browser.setText(e.getMessage());
+ e.printStackTrace();
}
- return null;
}
private static String toJSon(TraceNode root) {
@@ -261,23 +238,4 @@
private static String toJSonKeyValue(String key, String value) {
return "\"" + key + "\": " + "\"" + value + "\"";
}
-
- private static String loadLibraries(String... libs) {
- if(libs == null || libs.length == 0) {
- return "";
- } else {
- return Stream.of(libs).map(FlameGraphView::fileContent).collect(Collectors.joining("\n"));
- }
- }
-
- private static String fileContent(String fileName){
- try {
- return StringToolkit.readString(FlameGraphView.class.getClassLoader().getResourceAsStream(fileName));
- } catch (IOException e) {
- FlightRecorderUI.getDefault().getLogger()
- .log(Level.WARNING, MessageFormat
- .format("Could not load script \"{0}\",\"{1}\"", fileName, e.getMessage())); //$NON-NLS-1$
- return "";
- }
- }
}
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/views/page.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/views/page.html Mon Nov 25 17:57:23 2019 -0500
@@ -0,0 +1,54 @@
+<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.css">
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+</head>
+
+<body onresize="resizeFlameGraph()">
+ <div id="chart"></div>
+
+ <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script>
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3-tip/0.9.1/d3-tip.min.js"></script>
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@2.0.3/dist/d3-flamegraph.min.js"></script>
+ <script type="text/javascript">
+
+ var flameGraph;
+ var currentJson;
+
+ function processGraph(jsonObj) {
+ flameGraph = d3.flamegraph()
+ .width(windowSize() * 0.9)
+ .transitionDuration(500)
+ .transitionEase(d3.easeCubic)
+ .sort(true)
+ .title("");
+ currentJson = jsonObj;
+ d3.select("#chart")
+ .datum(currentJson)
+ .call(flameGraph);
+ }
+
+ function windowSize() {
+ return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ }
+
+ function resizeFlameGraph() {
+ if (flameGraph) {
+ flameGraph.width(windowSize() * 0.9);
+ d3.select("#chart")
+ .datum(currentJson)
+ .call(flameGraph);
+ }
+ }
+
+ </script>
+</body>
+
+</html>
diff -r 37a493c3f60b -r bbf0648beb5c application/org.openjdk.jmc.flightrecorder.flameview/src/main/resources/page.template
--- a/application/org.openjdk.jmc.flightrecorder.flameview/src/main/resources/page.template Tue Nov 12 16:25:24 2019 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <style type="text/css">%1$s</style>
- <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
- <!--[if lt IE 9]>
- <script>%2$s</script>
- <![endif]-->
-</head>
-
-<body onresize="resizeFlameGraph()">
- <div id="chart"></div>
- <script type="text/javascript">%3$s</script>
- <script type="text/javascript">
-
- var flameGraph;
- var currentJson;
-
- function processGraph(jsonObj) {
- flameGraph = d3.flamegraph()
- .width(windowSize() * 0.9)
- .transitionDuration(500)
- .transitionEase(d3.easeCubic)
- .sort(true)
- .title("");
- currentJson = jsonObj;
- d3.select("#chart")
- .datum(currentJson)
- .call(flameGraph);
- }
-
- function windowSize() {
- return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
- }
-
- function resizeFlameGraph() {
- if (flameGraph) {
- flameGraph.width(windowSize() * 0.9);
- d3.select("#chart")
- .datum(currentJson)
- .call(flameGraph);
- }
- }
-
- </script>
-</body>
-</html>
\ No newline at end of file

15
11-update-flags.patch Normal file
View File

@ -0,0 +1,15 @@
# HG changeset patch
# Parent 58eadb7c7ac8a81f6df4a70ecd5ecd69a8b42b0a
diff -r 58eadb7c7ac8 -r 8992119f0f37 application/org.openjdk.jmc.rcp.product/jmc.product
--- a/application/org.openjdk.jmc.rcp.product/jmc.product Mon Aug 31 16:04:24 2020 -0400
+++ b/application/org.openjdk.jmc.rcp.product/jmc.product Mon Aug 31 16:05:21 2020 -0400
@@ -56,7 +56,7 @@
</programArgsMac>
<programArgsWin>
</programArgsWin>
- <vmArgs>-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:FlightRecorderOptions=stackdepth=128 -XX:+FlightRecorder -XX:StartFlightRecording=name=JMC_Default,maxsize=100m -Djava.net.preferIPv4Stack=true -Djdk.attach.allowAttachSelf=true --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 --add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED --add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED --add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
+ <vmArgs>-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -Djava.net.preferIPv4Stack=true -Djdk.attach.allowAttachSelf=true --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 --add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED --add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED --add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
</vmArgs>
<vmArgsLin>--add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED
</vmArgsLin>

20
12-tycho.patch Normal file
View File

@ -0,0 +1,20 @@
diff -r 63ec7d0ee8d9 pom.xml
--- a/pom.xml Mon Jun 08 12:37:07 2020 -0400
+++ b/pom.xml Fri Jan 22 14:13:15 2021 -0500
@@ -75,7 +75,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <tycho.version>1.4.0</tycho.version>
+ <tycho.version>2.1.0</tycho.version>
<maven.buildnumber.version>1.4</maven.buildnumber.version>
<maven.deploy.version>2.8.2</maven.deploy.version>
<maven.directory.version>0.2</maven.directory.version>
@@ -282,6 +282,7 @@
<version>${tycho.version}</version>
<configuration>
<useProjectSettings>false</useProjectSettings>
+ <deriveReleaseCompilerArgumentFromTargetLevel>false</deriveReleaseCompilerArgumentFromTargetLevel>
</configuration>
</plugin>
<plugin>

34
2-javax.patch Normal file
View File

@ -0,0 +1,34 @@
# HG changeset patch
# Parent f4accaf7605c6e7ed1ea968740e8c1cac0c9e8e4
diff -r f4accaf7605c application/org.openjdk.jmc.console.ui/META-INF/MANIFEST.MF
--- a/application/org.openjdk.jmc.console.ui/META-INF/MANIFEST.MF Fri Aug 28 12:19:55 2020 -0400
+++ b/application/org.openjdk.jmc.console.ui/META-INF/MANIFEST.MF Fri Aug 28 12:27:37 2020 -0400
@@ -10,7 +10,6 @@
Require-Bundle: org.openjdk.jmc.rjmx.ui;visibility:=reexport,
org.eclipse.e4.core.contexts;bundle-version="1.3.0",
org.eclipse.e4.core.di;bundle-version="1.3.0";visibility:=reexport,
- javax.annotation;bundle-version="1.0.0";visibility:=reexport,
javax.inject;bundle-version="1.0.0";visibility:=reexport,
org.openjdk.jmc.commands
Bundle-ActivationPolicy: lazy
@@ -24,7 +23,6 @@
org.openjdk.jmc.console.ui.messages.internal;x-friends:="org.openjdk.jmc.console.uitest",
org.openjdk.jmc.console.ui.preferences;x-friends:="org.openjdk.jmc.console.uitest"
Bundle-ClassPath: .
-Import-Package: javax.annotation;version="1.0.0",
- javax.inject;version="1.0.0"
+Import-Package: javax.inject;version="1.0.0"
Automatic-Module-Name: org.openjdk.jmc.console.ui
diff -r f4accaf7605c application/org.openjdk.jmc.feature.rcp/feature.xml
--- a/application/org.openjdk.jmc.feature.rcp/feature.xml Fri Aug 28 12:19:55 2020 -0400
+++ b/application/org.openjdk.jmc.feature.rcp/feature.xml Fri Aug 28 12:27:37 2020 -0400
@@ -88,7 +88,6 @@
<import plugin="org.eclipse.ui.intro"/>
<import plugin="org.eclipse.ui.net"/>
<import plugin="org.eclipse.equinox.event"/>
- <import plugin="javax.el"/>
<import plugin="org.eclipse.equinox.p2.director.app"/>
</requires>

141
3-remove-profiles.patch Normal file
View File

@ -0,0 +1,141 @@
diff -r b0ad84913481 pom.xml
--- a/pom.xml Mon Apr 27 14:18:01 2020 -0400
+++ b/pom.xml Mon Apr 27 14:19:15 2020 -0400
@@ -105,137 +105,6 @@
<url>${snapshot.repo}</url>
</snapshotRepository>
</distributionManagement>
- <profiles>
- <profile>
- <id>2019-09</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-2019-09</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>2019-06</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-2019-06</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>2019-03</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-2019-03</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>2018-12</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-2018-12</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>2018-09</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-2018-09</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>photon</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho.version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.openjdk.jmc</groupId>
- <artifactId>platform-definition-photon</artifactId>
- <version>7.1.1-SNAPSHOT</version>
- </artifact>
- </target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
<build>
<plugins>
<plugin>

View File

@ -0,0 +1,48 @@
diff --git a/application/org.openjdk.jmc.feature.rcp/feature.xml b/application/org.openjdk.jmc.feature.rcp/feature.xml
index 1e295ca..9687dd4 100644
--- a/application/org.openjdk.jmc.feature.rcp/feature.xml
+++ b/application/org.openjdk.jmc.feature.rcp/feature.xml
@@ -51,18 +51,10 @@
id="org.openjdk.jmc.feature.console"
version="0.0.0"/>
- <includes
- id="org.openjdk.jmc.feature.rcp.ja"
- version="0.0.0"/>
-
<includes
id="org.openjdk.jmc.feature.core"
version="0.0.0"/>
- <includes
- id="org.openjdk.jmc.feature.rcp.zh_CN"
- version="0.0.0"/>
-
<includes
id="org.openjdk.jmc.feature.flightrecorder"
version="0.0.0"/>
@@ -104,24 +96,6 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.openjdk.jmc.rcp.application.ja"
- nl="ja_JP,ja"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.openjdk.jmc.rcp.application.zh_CN"
- nl="zh_CN"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
<plugin
id="org.openjdk.jmc.rcp.intro"
download-size="0"

29
5-remove-ide-jdt.patch Normal file
View File

@ -0,0 +1,29 @@
diff --git a/application/org.openjdk.jmc.feature.ide/feature.xml b/application/org.openjdk.jmc.feature.ide/feature.xml
index cd3dc7e..128cd0b 100644
--- a/application/org.openjdk.jmc.feature.ide/feature.xml
+++ b/application/org.openjdk.jmc.feature.ide/feature.xml
@@ -65,11 +65,4 @@
install-size="0"
version="0.0.0"
unpack="false"/>
-
- <plugin
- id="org.openjdk.jmc.ide.jdt"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
</feature>
\ No newline at end of file
diff --git a/application/pom.xml b/application/pom.xml
index d185d9d..89fd033 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -77,7 +77,6 @@
<module>org.openjdk.jmc.flightrecorder.ui</module>
<module>org.openjdk.jmc.greychart</module>
<module>org.openjdk.jmc.greychart.ui</module>
- <module>org.openjdk.jmc.ide.jdt</module>
<module>org.openjdk.jmc.ide.launch</module>
<module>org.openjdk.jmc.ide.ui</module>
<module>org.openjdk.jmc.jdp</module>

View File

@ -0,0 +1,16 @@
diff --git a/application/org.openjdk.jmc.rcp.product/pom.xml b/application/org.openjdk.jmc.rcp.product/pom.xml
index 8e6b303..8060da9 100644
--- a/application/org.openjdk.jmc.rcp.product/pom.xml
+++ b/application/org.openjdk.jmc.rcp.product/pom.xml
@@ -141,11 +141,4 @@
</plugins>
<directory>../../target/</directory>
</build>
- <pluginRepositories>
- <pluginRepository>
- <id>buchen-maven-repo</id>
- <url>http://buchen.github.io/maven-repo</url>
- <layout>default</layout>
- </pluginRepository>
- </pluginRepositories>
</project>

16
7-add-hamcrest.patch Normal file
View File

@ -0,0 +1,16 @@
diff --git a/application/tests/org.openjdk.jmc.rjmx.services.jfr.test/META-INF/MANIFEST.MF b/application/tests/org.openjdk.jmc.rjmx.services.jfr.test/META-INF/MANIFEST.MF
index bf02b43..a4d5a67 100644
--- a/application/tests/org.openjdk.jmc.rjmx.services.jfr.test/META-INF/MANIFEST.MF
+++ b/application/tests/org.openjdk.jmc.rjmx.services.jfr.test/META-INF/MANIFEST.MF
@@ -12,7 +12,9 @@ Require-Bundle: org.junit,
org.openjdk.jmc.rjmx.services.jfr,
org.openjdk.jmc.rjmx,
org.openjdk.jmc.common,
- org.openjdk.jmc.flightrecorder.configuration
+ org.openjdk.jmc.flightrecorder.configuration,
+ org.hamcrest.core
Export-Package: org.openjdk.jmc.rjmx.services.jfr.test
Automatic-Module-Name: org.openjdk.jmc.rjmx.services.jfr.test
-Import-Package: org.openjdk.jmc.flightrecorder.jdk
+Import-Package: org.openjdk.jmc.flightrecorder.jdk,
+ org.hamcrest.core

26
8-remove-arch.patch Normal file
View File

@ -0,0 +1,26 @@
diff --git a/pom.xml b/pom.xml
index 59f292a..2985869 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,21 +117,11 @@
<version>${tycho.version}</version>
<configuration>
<environments>
- <environment>
- <os>win32</os>
- <ws>win32</ws>
- <arch>x86_64</arch>
- </environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
- <environment>
- <os>macosx</os>
- <ws>cocoa</ws>
- <arch>x86_64</arch>
- </environment>
</environments>
</configuration>
</plugin>

15
9-remove-jacoco-dep.patch Normal file
View File

@ -0,0 +1,15 @@
diff -r 823b959b0e26 application/pom.xml
--- a/application/pom.xml Mon Apr 27 14:22:34 2020 -0400
+++ b/application/pom.xml Mon Apr 27 14:23:07 2020 -0400
@@ -160,11 +160,6 @@
<artifactId>flightrecorder.rules.jdk</artifactId>
<version>7.1.1</version>
</dependency>
- <dependency>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.3</version>
- </dependency>
</dependencies>
<build>
<plugins>

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# jmc
The jmc package

View File

@ -1 +0,0 @@
retiring ursine package replaced by jmc module build

24
jmc.1 Normal file
View File

@ -0,0 +1,24 @@
.TH JMC 1
.SH NAME
jmc \- Java profiling and diagnostics tool
.SH SYNOPSIS
.B jmc
[\fB\-vm\fR \fIJVM\fR]
.SH DESCRIPTION
JDK Mission Control is a powerful profiler for HotSpot JVMs and has an
advanced set of tools that enables efficient and detailed analysis of the
extensive data collected by JDK Flight Recorder.
The tool chain enables developers and administrators to collect and analyze data
from Java applications running locally or deployed in production environments.
.SH OPTIONS
.TP
.BR \-vm \fIJVM\fR
Specify path to the JVM you wish to use for running JDK Mission Control.
Defaults to system Java.
.SH FILES
.RS
Startup options are specified here.
The -vm option can be set here as well to avoid specifying at startup.
Options specified at startup will override values in this file.
.SH BUGS
Report bugs to JMC mailing list: <jmc-dev at openjdk dot java dot net>

20
jmc.appdata.xml Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>jmc.desktop</id>
<metadata_license>FSAP</metadata_license>
<project_license>UPL or BSD</project_license>
<name>JDK Mission Control</name>
<summary>A Profiling and Diagnostics Tool for the Hotspot JVM</summary>
<description>
<p>
JDK Mission Control is a powerful profiler for HotSpot JVMs and has an
advanced set of tools that enables efficient and detailed analysis of the
extensive data collected by JDK Flight Recorder. The tool chain enables
developers and administrators to collect and analyze data from Java
applications running locally or deployed in production environments.
</p>
</description>
<url type="homepage">http://openjdk.java.net/projects/jmc/</url>
<launchable type="desktop-id">jmc.desktop</launchable>
<developer_name>The OpenJDK Community</developer_name>
</component>

8
jmc.desktop Normal file
View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=JDK Mission Control
Comment=Analyze performance of Java applications
Exec=jmc
Icon=jmc
Terminal=false
Type=Application
Categories=Development;Java;Profiling;

284
jmc.spec Normal file
View File

@ -0,0 +1,284 @@
# Version
%global major 7
%global minor 1
%global patchlevel 1
# Revision
%global revnum 9
# set to 1 for hg snapshots, 0 for release
%global usesnapshot 0
# SNAPSHOT version
%global hgrevhash 63ec7d0ee8d9
%global hgrevdate 20200608
%global tarball_name jmc7-%{hgrevhash}
# Install jmc in /usr/lib/jmc (arch-specific and multilib exempt)
%global _jmcdir %{_prefix}/lib/%{name}
%global _eclipsepluginsdir %{_prefix}/lib/eclipse/plugins
%global debug_package %{nil}
%if %{usesnapshot}
%global releasestr %{revnum}.%{hgrevdate}hg%{hgrevhash}
%else
%global releasestr %{revnum}
%endif
%ifarch %{ix86}
%global eclipse_arch x86
%endif
%ifarch %{arm}
%global eclipse_arch arm
%endif
%ifarch s390x x86_64 aarch64 ppc64le
%global eclipse_arch %{_arch}
%endif
# Don't export Eclipse libraries
%global __provides_exclude_from ^%{_jmcdir}/plugins/org.eclipse.*$
%global __requires_exclude_from ^%{_jmcdir}/plugins/org.eclipse.*$
%global __requires_exclude ^osgi\\((javax|org\\.apache|org\\.eclipse|org\\.sat4j).*$
%global __provides_exclude ^osgi\\((com|javax|org\\.apache|org\\.glassfish|org\\.kxml2|org\\.sat4j|org\\.tukaani|org\\.w3c|org\\.xmlpull).*$
Name: jmc
Version: %{major}.%{minor}.%{patchlevel}
Release: %{releasestr}%{?dist}.1
Summary: JDK Mission Control is a profiling and diagnostics tool
# jmc source README.md states: The Mission Control source code is made
# available under the Universal Permissive License (UPL), Version 1.0 or a
# BSD-style license, alternatively. The full open source license text is
# available at license/LICENSE.txt in the JMC project.
License: UPL or BSD
URL: http://openjdk.java.net/projects/jmc/
Source0: https://hg.openjdk.java.net/jmc/jmc7/archive/%{hgrevhash}.tar.gz
Source1: %{name}.desktop
Source2: %{name}.1
Source3: symlink_libs.sh
Source4: %{name}.appdata.xml
# Remove optional twitter related functionality
Patch0: 0-remove-twitter.patch
# Update javax dependency names to match what is found in Fedora
Patch2: 2-javax.patch
# Remove maven build profiles that won't be used in local build
Patch3: 3-remove-profiles.patch
# Remove localization files that currently cannot be supported
# due to a packaging issue for Eclipse language packs
# eclipse-nls-ja and eclipse-nls-zh
# They currently provide multiple archs within the same package
# and the local build system cannot fulfill dependencies from them
Patch4: 4-remove-localization.patch
# Remove unused module org.openjdk.jmc.ide.jdt
Patch5: 5-remove-ide-jdt.patch
# Remove unused remote repository definition
Patch6: 6-remove-buchen-repo.patch
# Add dependency on org. hamcrest-core to provide class used in unit tests
Patch7: 7-add-hamcrest.patch
# Remove windows and mac arches
Patch8: 8-remove-arch.patch
# Remove unnecessary dependency
Patch9: 9-remove-jacoco-dep.patch
# Revert downloading of flameview assets from the web
Patch10: 10-revert-flameview.patch
# Drop JFR flags (temporary)
Patch11: 11-update-flags.patch
# Use tycho 2.x
Patch12: 12-tycho.patch
# JMC depends on Eclipse which no longer supports non-64bit arches
ExcludeArch: s390 %{arm} %{ix86}
BuildRequires: desktop-file-utils
BuildRequires: maven-local
BuildRequires: eclipse-pde
BuildRequires: tycho
BuildRequires: jakarta-mail
BuildRequires: mvn(org.commonjava.maven.plugins:directory-maven-plugin)
BuildRequires: mvn(org.openjdk.jmc:common)
BuildRequires: HdrHistogram >= 2.1.11
BuildRequires: libappstream-glib
Requires: java-openjdk >= 1:1.8
Requires: osgi(com.sun.mail.jakarta.mail)
Requires: osgi(org.openjdk.jmc.common)
Requires: osgi(org.openjdk.jmc.flightrecorder)
Requires: osgi(org.openjdk.jmc.flightrecorder.rules)
Requires: osgi(org.openjdk.jmc.flightrecorder.rules.jdk)
Requires: osgi(org.owasp.encoder)
Requires: osgi(org.hdrhistogram.HdrHistogram) >= 2.1.11
Requires: gtk3
Requires: webkitgtk4
Requires: libGLU.so.1()(64bit)
%description
JDK Mission Control is a powerful profiler for HotSpot JVMs and has an
advanced set of tools that enables efficient and detailed analysis of the
extensive data collected by JDK Flight Recorder. The tool chain enables
developers and administrators to collect and analyze data from Java
applications running locally or deployed in production environments.
%prep
%setup -q -n %{tarball_name}
%patch0 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%pom_disable_module releng
%pom_disable_module l10n application
%pom_disable_module org.openjdk.jmc.updatesite.ide application
%pom_disable_module org.openjdk.jmc.updatesite.rcp application
# disable tests that require the use of jfr v1
%pom_disable_module org.openjdk.jmc.rjmx.services.jfr.test application/tests
%pom_disable_module org.openjdk.jmc.flightrecorder.controlpanel.ui.test application/tests
%pom_remove_plugin com.github.spotbugs:spotbugs-maven-plugin
%pom_remove_plugin :maven-enforcer-plugin
%pom_remove_plugin :jacoco-maven-plugin application/tests
%pom_remove_plugin :jacoco-maven-plugin application/uitests
%pom_disable_module coverage application
# Info.plist are mac files and we only build for Linux
%pom_remove_plugin name.abuchen:fix-info-plist-maven-plugin application/org.openjdk.jmc.rcp.product
%pom_remove_plugin org.codehaus.mojo:buildnumber-maven-plugin
%pom_remove_plugin org.apache.maven.plugins:maven-deploy-plugin
TYCHO_ENV="<environment><os>linux</os><ws>gtk</ws><arch>%{eclipse_arch}</arch></environment>"
%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV"
%build
# some tests require large heap and fail with OOM
# depending on the builder resources
%mvn_build -j -- -Dmaven.test.failure.ignore=true -DbuildId=fedora -DbuildNumber=%{hgrevhash} -Dbuild.date=%{hgrevdate}
%install
# not using mvn_install macro because it installs JMC as an Eclipse plugin
# we want to install JMC as an RCP application
# change jmc.ini to use system java (remove -vm option line)
sed -i '/^-vm$/d' %{_builddir}/%{tarball_name}/target/products/org.openjdk.jmc/%{_os}/gtk/%{eclipse_arch}/%{name}.ini
sed -i '/^..\/..\/bin\/$/d' %{_builddir}/%{tarball_name}/target/products/org.openjdk.jmc/%{_os}/gtk/%{eclipse_arch}/%{name}.ini
# delete unnecessary files
rm -r %{_builddir}/%{tarball_name}/target/products/org.openjdk.jmc/%{_os}/gtk/%{eclipse_arch}/p2/
# move contents of target/products/org.openjdk.jmc/%{_os}/gtk/%{eclipse_arch}/ to /usr/lib/jmc/
install -d -m 755 %{buildroot}%{_jmcdir}
cp -p -r %{_builddir}/%{tarball_name}/target/products/org.openjdk.jmc/%{_os}/gtk/%{eclipse_arch}/* %{buildroot}%{_jmcdir}/
# move jmc.ini to /etc/jmc.ini
install -d -m 755 %{buildroot}%{_sysconfdir}
mv %{buildroot}%{_jmcdir}/%{name}.ini %{buildroot}%{_sysconfdir}/%{name}.ini
ln -s %{_sysconfdir}/%{name}.ini %{buildroot}%{_jmcdir}/%{name}.ini
# create symlink to jmc in /usr/bin/
install -d -m 755 %{buildroot}%{_bindir}
ln -s %{_jmcdir}/%{name} %{buildroot}%{_bindir}/%{name}
# replace jars with symlinks to installed libraries
bash %{SOURCE3} %{buildroot}%{_jmcdir}/plugins %{_javadir}/jmc-core
# create application launcher in desktop menu
install -d -m 755 %{buildroot}%{_datadir}/pixmaps
mv %{buildroot}%{_jmcdir}/icon.xpm %{buildroot}%{_datadir}/pixmaps/%{name}.xpm
chmod 644 %{buildroot}%{_datadir}/pixmaps/%{name}.xpm
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
# install pom file
install -d -m 755 %{buildroot}%{_datadir}/maven-poms/%{name}
install -p -m 644 %{_builddir}/%{tarball_name}/pom.xml %{buildroot}%{_datadir}/maven-poms/%{name}/%{name}.pom
# install manpage and insert location of config file
install -d -m 755 %{buildroot}%{_mandir}/man1
install -p -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/%{name}.1
sed -i "/.SH FILES/a .I %{_sysconfdir}/%{name}.ini" %{buildroot}%{_mandir}/man1/%{name}.1
# install appdata and validate it
install -d -m 755 %{buildroot}%{_metainfodir}
install -p -m 644 %{SOURCE4} %{buildroot}%{_metainfodir}/%{name}.appdata.xml
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
%files
%license license/LICENSE.txt
%license license/THIRDPARTYREADME.txt
%doc README.md
%config(noreplace) %{_sysconfdir}/%{name}.ini
%{_jmcdir}
%{_mandir}/man1/%{name}.1*
%{_bindir}/%{name}
%{_datadir}/maven-poms/%{name}
%{_datadir}/pixmaps/%{name}.xpm
%{_datadir}/applications/%{name}.desktop
%{_metainfodir}/%{name}.appdata.xml
%changelog
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.1-9.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 22 2020 Jie Kang <jkang@redhat.com> - 7.1.1-9
- Rebuild for updated jna and tycho 2.x
* Fri Nov 06 2020 Jie Kang <jkang@redhat.com> - 7.1.1-8
- Use jakarta-mail
* Mon Sep 21 2020 Jie Kang <jkang@redhat.com> - 7.1.1-7
- Update license. Use javamail until jakarta-mail is included
- Add appdata and validate it
* Fri Aug 28 2020 Jie Kang <jkang@redhat.com> - 7.1.1-6
- Update to latest upstream
- Drop javax dependencies
- Clean spec
* Fri Aug 07 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.1-5
- Update symlink to match javamail version in rpms/javamail
- Version 1.6.5 is compatible with 1.6.3 according to the upstream compatibility notes
* Wed Jul 29 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.1-4
- Update symlink script with path to jakarta-activation
* Mon Apr 27 2020 Jie Kang <jkang@redhat.com> - 7.1.1-3
- Update to upstream 7.1.1 ga commit
* Wed Mar 11 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.1-2
- Update to latest upstream (to include JMC-6728)
* Tue Feb 25 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.1-1
- Update to latest upstream
* Tue Feb 18 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.0-2
- Add backports of JMC-6554 & JMC-6692 on top of JMC 7 for improved handling of OpenJDK8+JFR
* Thu Jan 09 2020 Alex Macdonald <almacdon@redhat.com> - 7.1.0-1
- Update to latest upstream (7.1.0-ga)
- Update the jmc7 branch to more closely resemble files of the main jmc branch
- Addition of Patch9 and Patch10, updated symlink_libs.sh
* Tue Sep 24 2019 Jie Kang <jkang@redhat.com> - 7.0.0-1
- Update to latest upstream with minor bug fixes
* Mon Jun 03 2019 Jie Kang <jkang@redhat.com> - 7.0.0-0
- Initial package

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (63ec7d0ee8d9.tar.gz) = b928746234af8c6b084501cb9fd65ddd34fd995083d2ae383bccb492862f923c36b829795cd0d5160fa12bda915148e516d820698e3e479636408eea904139bf

60
symlink_libs.sh Normal file
View File

@ -0,0 +1,60 @@
#!/bin/bash
# This script replaces plugins with symlinks
# $1 : folder to replace with symlinks
set -e
SCL_JAVA_DIRS=${@:2}
pushd () {
command pushd "$@" > /dev/null
}
popd () {
command popd "$@" > /dev/null
}
function _sym {
if [ -f $1 ]; then
echo "linking $1 to $2"
rm -rf $1
ln -s $2 $1
else
echo "Failed to find $1"
ls -l
exit 1
fi
}
function _symlink {
_f=$(ls | grep -e "^$1" || :)
if [ -n "$_f" ] ; then
rm -rf $_f
for SCL_JAVA_DIR in ${SCL_JAVA_DIRS}; do
if [ -f ${SCL_JAVA_DIR}/$2 ]; then
echo "linking ${_f%.jar}.jar to ${SCL_JAVA_DIR}/$2"
ln -s ${SCL_JAVA_DIR}/$2 ${_f%.jar}.jar
return 0
fi
done
echo "not found $2 in any of ${SCL_JAVA_DIRS}"
exit 1
fi
}
pushd $1
# owasp-java-encoder
_sym org.owasp.encoder_1.2.2.jar /usr/share/java/owasp-java-encoder/encoder.jar
# jakarta-activation
_sym com.sun.activation.jakarta.activation_1.2.2.jar /usr/share/java/jakarta-activation/jakarta.activation.jar
# HdrHistogram
_sym org.hdrhistogram.HdrHistogram_2.1.11.jar /usr/share/java/HdrHistogram.jar
# javamail
_sym com.sun.mail.jakarta.mail_1.6.5.jar /usr/share/java/jakarta-mail/jakarta.mail.jar
# jmc-core
_symlink org.openjdk.jmc.common_ common.jar
_symlink org.openjdk.jmc.flightrecorder_ flightrecorder.jar
_symlink org.openjdk.jmc.flightrecorder.rules_ flightrecorder.rules.jar
_symlink org.openjdk.jmc.flightrecorder.rules.jdk_ flightrecorder.rules.jdk.jar
popd