42
42
import java .util .function .*;
43
43
44
44
public class Context {
45
- private static final ReentrantLock LOCK = new ReentrantLock ();
46
- private static volatile Context INSTANCE ;
45
+ private static final ReentrantLock lock = new ReentrantLock ();
46
+ private static volatile Context instance ;
47
47
private volatile ContextInitialConfiguration initialConfiguration = new ContextInitialDefaultConfiguration ();
48
48
private volatile ContextState state = READY ;
49
49
private volatile Long lastActionTimestamp = currentTimeMillis ();
@@ -54,7 +54,7 @@ public class Context {
54
54
}
55
55
56
56
private Context () {
57
- if (nonNull (INSTANCE )) {
57
+ if (nonNull (instance )) {
58
58
out .println (format (CONTEXT_CHANGED , initialConfiguration .getClass ().getName ()));
59
59
}
60
60
if (initialConfiguration .isUnloadModulesOnShutdown ()) {
@@ -63,7 +63,7 @@ private Context() {
63
63
}
64
64
65
65
private Context (ContextInitialConfiguration initialConfiguration ) {
66
- if (nonNull (INSTANCE )) {
66
+ if (nonNull (instance )) {
67
67
out .println (format (CONTEXT_CHANGED , initialConfiguration .getClass ().getName ()));
68
68
}
69
69
this .initialConfiguration = initialConfiguration ;
@@ -73,7 +73,7 @@ private Context(ContextInitialConfiguration initialConfiguration) {
73
73
}
74
74
75
75
private Context (ContextInitialConfiguration contextInitialConfiguration , Map <String , ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState >> modules ) {
76
- if (nonNull (INSTANCE )) {
76
+ if (nonNull (instance )) {
77
77
out .println (format (CONTEXT_CHANGED , contextInitialConfiguration .getClass ().getName ()));
78
78
}
79
79
this .initialConfiguration = contextInitialConfiguration ;
@@ -86,40 +86,40 @@ private Context(ContextInitialConfiguration contextInitialConfiguration, Map<Str
86
86
public static Context initContext (ContextInitialConfiguration contextInitialConfiguration ) {
87
87
if (isNull (contextInitialConfiguration ))
88
88
throw new ContextInitializationException (CONTEXT_INITIAL_CONFIGURATION_IS_NULL );
89
- ReentrantLock lock = Context .LOCK ;
89
+ ReentrantLock lock = Context .lock ;
90
90
lock .lock ();
91
- INSTANCE = new Context (contextInitialConfiguration );
91
+ instance = new Context (contextInitialConfiguration );
92
92
lock .unlock ();
93
- return INSTANCE ;
93
+ return instance ;
94
94
}
95
95
96
96
public static void recreateContext (ContextInitialConfiguration contextInitialConfiguration ) {
97
97
if (isNull (contextInitialConfiguration )) {
98
98
throw new ContextInitializationException (CONTEXT_INITIAL_CONFIGURATION_IS_NULL );
99
99
}
100
- ReentrantLock lock = Context .LOCK ;
100
+ ReentrantLock lock = Context .lock ;
101
101
lock .lock ();
102
- long oldContextLastActionTimestamp = INSTANCE .lastActionTimestamp ;
103
- final Map <String , ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState >> modules = INSTANCE .modules ;
104
- INSTANCE = new Context (contextInitialConfiguration , modules );
105
- INSTANCE .refreshAndReloadModules ();
102
+ long oldContextLastActionTimestamp = instance .lastActionTimestamp ;
103
+ final Map <String , ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState >> modules = instance .modules ;
104
+ instance = new Context (contextInitialConfiguration , modules );
105
+ instance .refreshAndReloadModules ();
106
106
out .println (format (CONTEXT_RELOADED_MESSAGE , currentTimeMillis () - oldContextLastActionTimestamp ));
107
- INSTANCE .lastActionTimestamp = currentTimeMillis ();
107
+ instance .lastActionTimestamp = currentTimeMillis ();
108
108
lock .unlock ();
109
109
}
110
110
111
111
public static Context context () {
112
- Context localInstance = INSTANCE ;
112
+ Context localInstance = instance ;
113
113
if (isNull (localInstance )) {
114
- ReentrantLock lock = Context .LOCK ;
114
+ ReentrantLock lock = Context .lock ;
115
115
lock .lock ();
116
- localInstance = INSTANCE ;
116
+ localInstance = instance ;
117
117
if (isNull (localInstance )) {
118
- INSTANCE = new Context ();
118
+ instance = new Context ();
119
119
}
120
120
lock .unlock ();
121
121
}
122
- return INSTANCE ;
122
+ return instance ;
123
123
}
124
124
125
125
public static ContextInitialConfiguration contextConfiguration () {
@@ -128,10 +128,10 @@ public static ContextInitialConfiguration contextConfiguration() {
128
128
129
129
public <C extends ModuleConfiguration , S extends ModuleState > C getModule (String moduleId , Module <C , S > toLoadIfNotExists ) {
130
130
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
131
- if (isNull (INSTANCE ) || state != READY ) {
131
+ if (isNull (instance ) || state != READY ) {
132
132
return toLoadIfNotExists .getDefaultConfiguration ();
133
133
}
134
- ReentrantLock lock = Context .LOCK ;
134
+ ReentrantLock lock = Context .lock ;
135
135
lock .lock ();
136
136
ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState > moduleContainer = modules .get (moduleId );
137
137
PreconfiguredModuleProvider preconfiguredModulesProvider ;
@@ -151,9 +151,9 @@ public <C extends ModuleConfiguration, S extends ModuleState> C getModule(String
151
151
152
152
public <C extends ModuleConfiguration , S extends ModuleState > S getModuleState (String moduleId , Module <C , S > toLoadIfNotExists ) {
153
153
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
154
- ReentrantLock lock = Context .LOCK ;
154
+ ReentrantLock lock = Context .lock ;
155
155
lock .lock ();
156
- if (isNull (INSTANCE ) || state == LOADING_MODULES ) {
156
+ if (isNull (instance ) || state == LOADING_MODULES ) {
157
157
lock .unlock ();
158
158
return toLoadIfNotExists .getState ();
159
159
}
@@ -175,9 +175,9 @@ public <C extends ModuleConfiguration, S extends ModuleState> S getModuleState(S
175
175
176
176
public <C extends ModuleConfiguration , S extends ModuleState > C getModule (String moduleId , Supplier <Module <C , S >> toLoadIfNotExists ) {
177
177
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
178
- ReentrantLock lock = Context .LOCK ;
178
+ ReentrantLock lock = Context .lock ;
179
179
lock .lock ();
180
- if (isNull (INSTANCE ) || state != READY ) {
180
+ if (isNull (instance ) || state != READY ) {
181
181
lock .unlock ();
182
182
return toLoadIfNotExists .get ().getDefaultConfiguration ();
183
183
}
@@ -200,9 +200,9 @@ public <C extends ModuleConfiguration, S extends ModuleState> C getModule(String
200
200
201
201
public <C extends ModuleConfiguration , S extends ModuleState > S getModuleState (String moduleId , Supplier <Module <C , S >> toLoadIfNotExists ) {
202
202
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
203
- ReentrantLock lock = Context .LOCK ;
203
+ ReentrantLock lock = Context .lock ;
204
204
lock .lock ();
205
- if (isNull (INSTANCE ) || state == LOADING_MODULES ) {
205
+ if (isNull (instance ) || state == LOADING_MODULES ) {
206
206
lock .unlock ();
207
207
return toLoadIfNotExists .get ().getState ();
208
208
}
@@ -225,7 +225,7 @@ public <C extends ModuleConfiguration, S extends ModuleState> S getModuleState(S
225
225
226
226
public <C extends ModuleConfiguration , S extends ModuleState > Context loadModule (Module <C , S > module ) {
227
227
if (isNull (module )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
228
- ReentrantLock lock = Context .LOCK ;
228
+ ReentrantLock lock = Context .lock ;
229
229
lock .lock ();
230
230
ContextState currentState = state ;
231
231
state = LOADING_MODULES ;
@@ -241,7 +241,7 @@ public <C extends ModuleConfiguration, S extends ModuleState> Context loadModule
241
241
242
242
public <C extends ModuleConfiguration , S extends ModuleState > Context loadModule (Module <C , S > module , ModuleConfigurator <C , S > moduleConfigurator ) {
243
243
if (isNull (module )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
244
- ReentrantLock lock = Context .LOCK ;
244
+ ReentrantLock lock = Context .lock ;
245
245
lock .lock ();
246
246
ContextState currentState = state ;
247
247
state = LOADING_MODULES ;
@@ -257,7 +257,7 @@ public <C extends ModuleConfiguration, S extends ModuleState> Context loadModule
257
257
258
258
public <C extends ModuleConfiguration , S extends ModuleState > Context loadModule (Module <C , S > module , C customModuleConfiguration ) {
259
259
if (isNull (module )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
260
- ReentrantLock lock = Context .LOCK ;
260
+ ReentrantLock lock = Context .lock ;
261
261
lock .lock ();
262
262
ContextState currentState = state ;
263
263
state = LOADING_MODULES ;
@@ -272,7 +272,7 @@ public <C extends ModuleConfiguration, S extends ModuleState> Context loadModule
272
272
}
273
273
274
274
private <C extends ModuleConfiguration , S extends ModuleState > C loadModule (Module <C , S > module , PreconfiguredModuleProvider preconfiguredModulesProvider ) {
275
- ReentrantLock lock = Context .LOCK ;
275
+ ReentrantLock lock = Context .lock ;
276
276
lock .lock ();
277
277
ContextState currentState = state ;
278
278
state = LOADING_MODULES ;
@@ -289,7 +289,7 @@ public <C extends ModuleConfiguration> Context overrideModule(String moduleId, C
289
289
if (isNull (customModuleConfiguration )) {
290
290
throw new ContextInitializationException (CUSTOM_MODULE_CONFIGURATION_IS_NULL );
291
291
}
292
- ReentrantLock lock = Context .LOCK ;
292
+ ReentrantLock lock = Context .lock ;
293
293
lock .lock ();
294
294
ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState > moduleContainer = modules .get (moduleId );
295
295
if (isNull (moduleContainer )) {
@@ -309,7 +309,7 @@ public <C extends ModuleConfiguration> Context overrideModule(String moduleId, C
309
309
@ SuppressWarnings ("Duplicates" )
310
310
public Context reloadModule (String moduleId ) {
311
311
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
312
- ReentrantLock lock = Context .LOCK ;
312
+ ReentrantLock lock = Context .lock ;
313
313
lock .lock ();
314
314
ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState > moduleContainer = modules .get (moduleId );
315
315
if (isNull (moduleContainer )) {
@@ -329,7 +329,7 @@ public Context reloadModule(String moduleId) {
329
329
@ SuppressWarnings ("Duplicates" )
330
330
public Context refreshModule (String moduleId ) {
331
331
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
332
- ReentrantLock lock = Context .LOCK ;
332
+ ReentrantLock lock = Context .lock ;
333
333
lock .lock ();
334
334
ModuleContainer <? extends ModuleConfiguration , ? extends ModuleState > moduleContainer = modules .get (moduleId );
335
335
if (isNull (moduleContainer )) {
@@ -348,7 +348,7 @@ public Context refreshModule(String moduleId) {
348
348
349
349
public Context refreshAndReloadModule (String moduleId ) {
350
350
if (isNull (moduleId )) throw new ContextInitializationException (MODULE_ID_IS_NULL );
351
- ReentrantLock lock = Context .LOCK ;
351
+ ReentrantLock lock = Context .lock ;
352
352
lock .lock ();
353
353
ContextState currentState = state ;
354
354
state = REFRESHING_AND_RELOADING_MODULES ;
@@ -394,9 +394,9 @@ public boolean hasModule(String moduleId) {
394
394
}
395
395
396
396
public static boolean contextIsNotReady () {
397
- ReentrantLock lock = Context .LOCK ;
397
+ ReentrantLock lock = Context .lock ;
398
398
lock .lock ();
399
- Context instance = INSTANCE ;
399
+ Context instance = Context . instance ;
400
400
lock .unlock ();
401
401
return isNull (instance ) || instance .state != READY ;
402
402
}
@@ -405,4 +405,4 @@ private void unloadModules() {
405
405
modules .values ().forEach (module -> module .getModule ().onUnload ());
406
406
modules .clear ();
407
407
}
408
- }
408
+ }
0 commit comments