Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
bf58f80
feat(cjfr): add native .cjfr file support to JMC
parttimenerd Aug 3, 2026
ffc7abc
fix(deps): add condensed-data 0.1.1 reader jar to third-party p2 repo
parttimenerd Aug 3, 2026
a65e04b
Fix code formatting
parttimenerd Aug 3, 2026
80d854b
fix(deps): switch to condensed-data 0.1.2 main jar (includes WritingJ…
parttimenerd Aug 3, 2026
cf73c46
fix(cjfr): include flightrecorder.writer bundle in product
parttimenerd Aug 3, 2026
d5ad089
fix(cjfr): add Require-Bundle for writer to condensed-data bnd manifest
parttimenerd Aug 3, 2026
1690360
fix(cjfr): export writer impl packages so condensed-data can load them
parttimenerd Aug 3, 2026
d9ed8e1
fix(writer): add setGmtOffset/setRegion for timezone preservation
parttimenerd Aug 3, 2026
9806b35
fix(cjfr): add femtojson as p2 bundle for me.bechberger.util.json
parttimenerd Aug 3, 2026
e7af062
fix(ci): add femtojson unit to target platform definition
parttimenerd Aug 3, 2026
daf6e6e
fix(ci): wait for Jetty p2 site to be ready before application build
parttimenerd Aug 3, 2026
6193ba1
fix(ci): robust Jetty readiness check using HTTP status code
parttimenerd Aug 4, 2026
efd4d0b
ci: trigger Validation workflow
parttimenerd Aug 4, 2026
a9a77e1
fix: update copyright year to 2026 in MetadataImpl and RecordingImpl
parttimenerd Aug 4, 2026
51b8f87
Reduce diff
parttimenerd Aug 4, 2026
ef9b2e2
refactor(cjfr): inflate .cjfr to temp .jfr in CjfrEditor; drop CjfrRe…
parttimenerd Aug 4, 2026
e80a5f6
refactor(cjfr): drop femtojson as separate bundle (already shaded int…
parttimenerd Aug 4, 2026
2af3666
refactor(cjfr): override createPartControl instead of adding hook to …
parttimenerd Aug 4, 2026
70e0969
refactor(cjfr): remove license header from plugin.xml; drop Require-B…
parttimenerd Aug 4, 2026
31afb98
refactor(cjfr): revert writer changes (shaded copy already has timezo…
parttimenerd Aug 4, 2026
2404396
refactor(cjfr): use condensed-data -jmc jar; add flightrecorder.write…
parttimenerd Aug 4, 2026
9c83643
build(cjfr): bump condensed-data to 0.1.3
parttimenerd Aug 4, 2026
df7506c
ci: retrigger after Central sync
parttimenerd Aug 4, 2026
2e1dd28
ci: retrigger after condensed-data Central sync
parttimenerd Aug 4, 2026
ad5777b
fix(p2): use p2-maven-plugin artifact coordinate format — version last
parttimenerd Aug 4, 2026
b2b955b
fix(p2): use actual bnd-generated BSN me.bechberger.condensed.data.jmc
parttimenerd Aug 4, 2026
16cab89
fix(p2): bnd appends classifier to BSN — set base name without .jmc s…
parttimenerd Aug 4, 2026
b020d9f
fix(p2): remove Require-Bundle — writer is a workspace bundle, not a …
parttimenerd Aug 4, 2026
2fcbc18
fix(app): restore flightrecorder.writer Maven dependency in applicati…
parttimenerd Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions application/org.openjdk.jmc.feature.flightrecorder/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -191,4 +191,23 @@
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.openjdk.jmc.flightrecorder.cjfr"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="me.bechberger.condensed.data.jmc"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.openjdk.jmc.flightrecorder.writer"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>

</feature>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-RequiredExecutionEnvironment: JavaSE-21
Bundle-Name: Condensed Flight Recording Plug-in
Bundle-SymbolicName: org.openjdk.jmc.flightrecorder.cjfr;singleton:=true
Bundle-Version: 10.0.0.qualifier
Bundle-Vendor: SAP SE
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.openjdk.jmc.flightrecorder.ui,
me.bechberger.condensed.data.jmc,
org.openjdk.jmc.flightrecorder.writer
Import-Package: org.openjdk.jmc.ui,
me.bechberger.condensed,
me.bechberger.jfr
Bundle-ActivationPolicy: lazy
Automatic-Module-Name: org.openjdk.jmc.flightrecorder.cjfr
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source.. = src/main/java/
output.. = target/classes/
bin.includes = META-INF/,\
plugin.xml,\
.
14 changes: 14 additions & 0 deletions application/org.openjdk.jmc.flightrecorder.cjfr/plugin.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.editors">
<editor
class="org.openjdk.jmc.flightrecorder.cjfr.CjfrEditor"
extensions="cjfr"
icon="platform:/plugin/org.openjdk.jmc.flightrecorder.ui/icons/jfr.png"
id="org.openjdk.jmc.flightrecorder.cjfr.CjfrEditor"
name="Condensed Flight Recording">
</editor>
</extension>
</plugin>
22 changes: 22 additions & 0 deletions application/org.openjdk.jmc.flightrecorder.cjfr/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2026, SAP SE and/or its affiliates. All rights reserved.

DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

The contents of this file are subject to the terms of either the Universal Permissive License
v 1.0 as shown at https://oss.oracle.com/licenses/upl
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openjdk.jmc</groupId>
<artifactId>missioncontrol.application</artifactId>
<version>${revision}${changelist}</version>
</parent>
<artifactId>org.openjdk.jmc.flightrecorder.cjfr</artifactId>
<packaging>eclipse-plugin</packaging>
<properties>
<jmc.config.path>${project.basedir}/../../configuration</jmc.config.path>
</properties>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright (c) 2026, SAP SE and/or its affiliates. All rights reserved.
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* The contents of this file are subject to the terms of either the Universal Permissive License
* v 1.0 as shown at https://oss.oracle.com/licenses/upl
*/
package org.openjdk.jmc.flightrecorder.cjfr;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.eclipse.swt.widgets.Composite;
import org.openjdk.jmc.flightrecorder.ui.JfrEditor;
import org.openjdk.jmc.ui.MCPathEditorInput;

import me.bechberger.condensed.CondensedInputStream;
import me.bechberger.jfr.BasicJFRReader;
import me.bechberger.jfr.WritingJFRReader;

/**
* Eclipse editor for .cjfr (condensed JFR) files. Inflates the recording to a temporary .jfr file
* and delegates to the standard JFR loading machinery.
*/
public class CjfrEditor extends JfrEditor {

public static final String EDITOR_ID = "org.openjdk.jmc.flightrecorder.cjfr.CjfrEditor"; //$NON-NLS-1$

@Override
public void createPartControl(Composite parent) {
File cjfrFile = MCPathEditorInput.getFile(getEditorInput());
try {
File tempJfr = File.createTempFile("cjfr-inflate-", ".jfr"); //$NON-NLS-1$ //$NON-NLS-2$
tempJfr.deleteOnExit();
try (CondensedInputStream cin = new CondensedInputStream(
new BufferedInputStream(new FileInputStream(cjfrFile)));
FileOutputStream fos = new FileOutputStream(tempJfr)) {
WritingJFRReader.toJFRStream(new BasicJFRReader(cin), fos);
}
setInput(new MCPathEditorInput(tempJfr, false));
} catch (IOException e) {
// Fall through: let RecordingLoader fail gracefully on the original file
}
super.createPartControl(parent);
}
}
6 changes: 6 additions & 0 deletions application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
<module>org.openjdk.jmc.flightrecorder.pde</module>
<module>org.openjdk.jmc.flightrecorder.rules.extensionprovider</module>
<module>org.openjdk.jmc.flightrecorder.ui</module>
<module>org.openjdk.jmc.flightrecorder.cjfr</module>
<module>org.openjdk.jmc.greychart</module>
<module>org.openjdk.jmc.greychart.ui</module>
<module>org.openjdk.jmc.ide.jdt</module>
Expand Down Expand Up @@ -140,6 +141,11 @@
<artifactId>flightrecorder</artifactId>
<version>${revision}${changelist}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>flightrecorder.writer</artifactId>
<version>${revision}${changelist}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmc</groupId>
<artifactId>flightrecorder.configuration</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
<unit id="fireplace-swing-animation" version="0.0.1.rc9"/>
<unit id="radiance-animation" version="8.5.0"/>
<unit id="org.awaitility" version="4.0.0"/>
<unit id="me.bechberger.condensed.data.jmc" version="0.1.3"/>
<repository location="http://localhost:8080/site"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
Expand Down
16 changes: 16 additions & 0 deletions releng/third-party/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
<jetty-maven-plugin.version>11.0.15</jetty-maven-plugin.version>
<maven-enforcer-plugin.version>3.3.0</maven-enforcer-plugin.version>
<!-- Versions -->
<condensed-data.version>0.1.3</condensed-data.version>
<jakarta.mail.version>2.0.5</jakarta.mail.version>
<angus.activation.version>2.0.3</angus.activation.version>
<jakarta.activation.version>2.1.4</jakarta.activation.version>
Expand Down Expand Up @@ -215,6 +216,21 @@
<Export-Package>org.pushingpixels.radiance.animation.api.*</Export-Package>
</instructions>
</artifact>
<artifact>
<!-- Use the -jmc classifier: writer classes excluded, JMC's
flightrecorder.writer bundle supplies them at runtime.
This avoids shaded-copy drift when JMC's writer evolves. -->
<id>me.bechberger:condensed-data:jar:jmc:${condensed-data.version}</id>
<transitive>false</transitive>
<source>false</source>
<override>true</override>
<instructions>
<Bundle-SymbolicName>me.bechberger.condensed.data</Bundle-SymbolicName>
<Bundle-Name>Condensed Data</Bundle-Name>
<Export-Package>me.bechberger.*</Export-Package>
<Import-Package>*;resolution:=optional</Import-Package>
</instructions>
</artifact>
</artifacts>
</configuration>
</execution>
Expand Down