RFR: 6988: Initial implementation of JFR binary format writer
Marcus Hirt
hirt at openjdk.java.net
Tue Dec 1 17:24:05 UTC 2020
On Fri, 19 Jun 2020 10:22:41 GMT, Jaroslav Bachorik <jbachorik at openjdk.org> wrote:
> This is an initial implementation of JFR binary format writer in Java.
> The writer can write valid JFR files according to what is expected by the JMC JFR format reader.
> The writer is not complete in terms of performance and event settings support but in spite of that it is fairly usable.
>
> The typical flow is:
>
> 1. Obtain a new instance of Recording
> java
> Recording r = new Recording()
> 2. Register custom types for that recording
> java
> r.registerType(name, structure)
> 3. Get a new Chunk instance
> java
> Chunk c = r.newChunk()
> 4. Write event values
> java
> c.writeEvent(eventValue)
> 5. Finish the chunk and get the binary data
> java
> byte[] data = c.finish()
>
>
> For more complex usage check [ChunkComplexTest.java](https://github.com/openjdk/jmc/blob/4c2dd1407f462feae40b795d3a4c6d75544b4e82/core/org.openjdk.jmc.flightrecorder.writer/src/test/java/org/openjdk/jmc/flightrecorder/writer/ChunkComplexTest.java).
Changes requested by hirt (Lead).
core/org.openjdk.jmc.common/pom.xml line 53:
> 51: <version>1.7.1</version>
> 52: </dependency>
> 53: <dependency>
Since this is in a new bundle now, common doesn't need lombok. :)
core/org.openjdk.jmc.flightrecorder.writer/build.properties line 2:
> 1: #
> 2: # Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
Wrong year, also add Datadog.
core/org.openjdk.jmc.flightrecorder.writer/pom.xml line 3:
> 1: <?xml version="1.0" encoding="UTF-8"?>
> 2: <!--
> 3: Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
Wrong year, also add Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/AbstractLEB128Writer.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/BaseType.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/BuiltinType.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/Chunk.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/CompositeTypeImpl.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/ConstantPool.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/ConstantPools.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/ImmutableMapEntry.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/LEB128ByteArrayWriter.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/MetadataImpl.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Copyright notice 2020 Oracle + Datadog.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/AbstractLEB128Writer.java line 1:
> 1: package org.openjdk.jmc.flightrecorder.writer;
Ok. I'll stop adding notices for copyright now. :) All the files need them.
core/org.openjdk.jmc.flightrecorder/pom.xml line 53:
> 51: <version>${project.version}</version>
> 52: </dependency>
> 53: <dependency>
Do you need changes to flightrecorder now that writer is its own bundle?
-------------
PR: https://git.openjdk.java.net/jmc/pull/84
More information about the jmc-dev
mailing list