< prev index next >
src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JDKEvents.java
Print this page
*** 29,69 ****
import java.util.List;
import jdk.internal.module.Modules;
import jdk.jfr.Event;
import jdk.jfr.FlightRecorder;
! import jdk.jfr.events.ActiveRecordingEvent;
! import jdk.jfr.events.ActiveSettingEvent;
! import jdk.jfr.events.ErrorThrownEvent;
! import jdk.jfr.events.ExceptionStatisticsEvent;
! import jdk.jfr.events.ExceptionThrownEvent;
! import jdk.jfr.events.FileForceEvent;
! import jdk.jfr.events.FileReadEvent;
! import jdk.jfr.events.FileWriteEvent;
! import jdk.jfr.events.SocketReadEvent;
! import jdk.jfr.events.SocketWriteEvent;
import jdk.jfr.internal.JVM;
import jdk.jfr.internal.LogLevel;
import jdk.jfr.internal.LogTag;
import jdk.jfr.internal.Logger;
import jdk.jfr.internal.RequestEngine;
import jdk.jfr.internal.SecuritySupport;
import jdk.jfr.internal.Utils;
public final class JDKEvents {
private static final Class<?>[] eventClasses = {
FileForceEvent.class,
FileReadEvent.class,
FileWriteEvent.class,
SocketReadEvent.class,
SocketWriteEvent.class,
ExceptionThrownEvent.class,
ExceptionStatisticsEvent.class,
ErrorThrownEvent.class,
ActiveSettingEvent.class,
! ActiveRecordingEvent.class
};
// This is a list of the classes with instrumentation code that should be applied.
private static final Class<?>[] instrumentationClasses = new Class<?>[] {
FileInputStreamInstrumentor.class,
--- 29,71 ----
import java.util.List;
import jdk.internal.module.Modules;
import jdk.jfr.Event;
import jdk.jfr.FlightRecorder;
! import jdk.jfr.events.*;
import jdk.jfr.internal.JVM;
import jdk.jfr.internal.LogLevel;
import jdk.jfr.internal.LogTag;
import jdk.jfr.internal.Logger;
import jdk.jfr.internal.RequestEngine;
import jdk.jfr.internal.SecuritySupport;
import jdk.jfr.internal.Utils;
public final class JDKEvents {
+ private static final Class<?>[] mirrorEventClasses = {
+ CertificateChainEvent.class,
+ TLSHandshakeEvent.class,
+ SecurityPropertyEvent.class,
+ X509CertEvent.class
+ };
+
private static final Class<?>[] eventClasses = {
FileForceEvent.class,
FileReadEvent.class,
FileWriteEvent.class,
SocketReadEvent.class,
SocketWriteEvent.class,
ExceptionThrownEvent.class,
ExceptionStatisticsEvent.class,
ErrorThrownEvent.class,
ActiveSettingEvent.class,
! ActiveRecordingEvent.class,
! jdk.internal.event.CertificateChainEvent.class,
! jdk.internal.event.SecurityPropertyEvent.class,
! jdk.internal.event.TLSHandshakeEvent.class,
! jdk.internal.event.X509CertEvent.class
};
// This is a list of the classes with instrumentation code that should be applied.
private static final Class<?>[] instrumentationClasses = new Class<?>[] {
FileInputStreamInstrumentor.class,
*** 88,97 ****
--- 90,102 ----
Module javaBaseModule = Object.class.getModule();
Modules.addReads(javaBaseModule, jdkJfrModule);
Modules.addExports(jdkJfrModule, Utils.EVENTS_PACKAGE_NAME, javaBaseModule);
Modules.addExports(jdkJfrModule, Utils.INSTRUMENT_PACKAGE_NAME, javaBaseModule);
Modules.addExports(jdkJfrModule, Utils.HANDLERS_PACKAGE_NAME, javaBaseModule);
+ for (Class<?> mirrorEventClass : mirrorEventClasses) {
+ SecuritySupport.registerMirror(((Class<? extends Event>)mirrorEventClass));
+ }
for (Class<?> eventClass : eventClasses) {
SecuritySupport.registerEvent((Class<? extends Event>) eventClass);
}
initializationTriggered = true;
FlightRecorder.addPeriodicEvent(ExceptionStatisticsEvent.class, emitExceptionStatistics);
< prev index next >