equal
deleted
inserted
replaced
24 */ |
24 */ |
25 |
25 |
26 package jdk.jfr.api.consumer.recordingstream; |
26 package jdk.jfr.api.consumer.recordingstream; |
27 |
27 |
28 import java.util.concurrent.CountDownLatch; |
28 import java.util.concurrent.CountDownLatch; |
|
29 import java.util.function.Consumer; |
29 |
30 |
30 import jdk.jfr.Enabled; |
31 import jdk.jfr.Enabled; |
31 import jdk.jfr.Event; |
32 import jdk.jfr.Event; |
32 import jdk.jfr.consumer.RecordingStream; |
33 import jdk.jfr.consumer.RecordingStream; |
33 |
34 |
44 @Enabled(false) |
45 @Enabled(false) |
45 private static class EnabledEvent extends Event { |
46 private static class EnabledEvent extends Event { |
46 } |
47 } |
47 |
48 |
48 public static void main(String... args) throws Exception { |
49 public static void main(String... args) throws Exception { |
|
50 testEnableWithClass(); |
|
51 testEnableWithEventName(); |
|
52 } |
|
53 |
|
54 private static void testEnableWithEventName() { |
|
55 test(r -> r.enable(EnabledEvent.class.getName())); |
|
56 } |
|
57 |
|
58 private static void testEnableWithClass() { |
|
59 test(r -> r.enable(EnabledEvent.class)); |
|
60 } |
|
61 |
|
62 private static void test(Consumer<RecordingStream> enablement) { |
49 CountDownLatch event = new CountDownLatch(1); |
63 CountDownLatch event = new CountDownLatch(1); |
50 try (RecordingStream r = new RecordingStream()) { |
64 try (RecordingStream r = new RecordingStream()) { |
51 r.onEvent(e -> { |
65 r.onEvent(e -> { |
52 event.countDown(); |
66 event.countDown(); |
53 }); |
67 }); |
54 r.enable(EnabledEvent.class.getName()); |
68 enablement.accept(r); |
55 r.startAsync(); |
69 r.startAsync(); |
56 EnabledEvent e = new EnabledEvent(); |
70 EnabledEvent e = new EnabledEvent(); |
57 e.commit(); |
71 e.commit(); |
58 event.await(); |
72 try { |
|
73 event.await(); |
|
74 } catch (InterruptedException ie) { |
|
75 throw new RuntimeException("Unexpected interruption of latch", ie); |
|
76 } |
59 } |
77 } |
60 } |
78 } |
61 } |
79 } |