1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.acme;
20
21 import java.lang.instrument.Instrumentation;
22 import java.util.ArrayList;
23 import java.util.List;
24
25 public final class StubAgentState {
26
27 static volatile Instrumentation instrumentation;
28 static final List<String> arguments = new ArrayList<>();
29 static volatile int preMainInvocations;
30 static volatile int agentMainInvocations;
31
32
33 private StubAgentState()
34 {}
35
36
37 public static void initialize()
38 {
39 agentMainInvocations = preMainInvocations = 0;
40 instrumentation = null;
41 arguments.clear();
42 }
43
44
45 public static Instrumentation instrumentation()
46 {
47 return instrumentation;
48 }
49
50
51 public static List<String> arguments()
52 {
53 return arguments;
54 }
55
56
57 public static boolean isPreMainInvoked()
58 {
59 return preMainInvocations > 0;
60 }
61
62
63 public static boolean isAgentMainInvoked()
64 {
65 return agentMainInvocations > 0;
66 }
67
68
69 public static int preMainInvocations()
70 {
71 return preMainInvocations;
72 }
73
74
75 public static int agentMainInvocations()
76 {
77 return agentMainInvocations;
78 }
79 }