< prev index next >

src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JDKEvents.java

Print this page

        

@@ -29,41 +29,43 @@
 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.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
+        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,10 +90,13 @@
                 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 >