Module jdk.jfr
Package jdk.jfr

# Annotation Interface Enabled

@Target(TYPE) @Retention(RUNTIME) @Inherited public @interface Enabled
Event annotation, determines if an event should be enabled by default.

If an event doesn't have the annotation, then by default the event is enabled.

The following example shows how the `Enabled` annotation can be used to create a disabled event. A disabled event will at most have the overhead of an allocation, or none if the runtime JIT compiler is able to eliminate it.

    @Name("StopWatch")
    @Label("Stop Watch")
    @Category("Debugging")
    @StackTrace(false)
    @Enabled(false)
    static public class StopWatchEvent extends Event {
    }

    public void update() {
        StopWatchEvent e = new StopWatchEvent();
        e.begin();
        ...
        e.commit();
    }

The event can be enabled programmatically, or on command line when needed, for example:

    java -XX:StartFlightRecording:StopWatch#enabled=true ...

Since:
  9

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `boolean`
  `value`
  Returns `true` if by default the event should be enabled, `false` otherwise.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NAME`
  Setting name `"enabled"`, signifies that the event should be recorded.

- ## Field Details

  - ### NAME

    static final String NAME
    Setting name `"enabled"`, signifies that the event should be recorded.
    See Also:
      - Constant Field Values

- ## Element Details

  - ### value

    boolean value
    Returns `true` if by default the event should be enabled, `false` otherwise.
    Returns:
      `true` if by default the event should be enabled by default, `false` otherwise
    Default:
      `true`