Top Description Methods
jdk.jfr

public @Interface MetadataDefinition

extends Annotation
Annotations
@Retention:RUNTIME
@Target:TYPE
Imports
java.lang.annotation.ElementType, .Retention, .RetentionPolicy, .Target

Meta annotation for defining new types of event metadata.

In the following example, a transaction event is defined with two user-defined annotations, @Severity and @TransactionId.

@MetadataDefinition @Label("Severity") @Description("Value between 0 and 100 that indicates severity. 100 is most severe.") @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE }) public @interface Severity { int value() default 50; } @MetadataDefinition @Label("Transaction Id") @Relational @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.FIELD }) public @interface TransactionId { } @Severity(80) @Label("Transaction Blocked") class TransactionBlocked extends Event { @TransactionId @Label("Transaction") long transactionId1; @TransactionId @Label("Transaction Blocker") long transactionId2; }
@MetadataDefinition
@Label("Severity")
@Description("Value between 0 and 100 that indicates severity. 100 is most severe.")
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
public @interface Severity {
    int value() default 50;
}

@MetadataDefinition
@Label("Transaction Id")
@Relational
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
public @interface TransactionId {
}

@Severity(80)
@Label("Transaction Blocked")
class TransactionBlocked extends Event {
    @TransactionId
    @Label("Transaction")
    long transactionId1;

    @TransactionId
    @Label("Transaction Blocker")
    long transactionId2;
}
Adding @MetadataDefinition to the declaration of @Severity and @TransactionId ensures the information is saved by Flight Recorder.
Since
9

Method Summary

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString