in disseminating-executors/src/main/java/software/amazon/swage/concurrent/StateCapture.java [43:69]
static {
ClassLoader classLoader;
/* This system property is available to accommodate customers who need StateCaptors to be discovered and
* loaded from the context class loader. This is a legacy requirement, and this system property should not be
* enabled unless absolutely necessary. It will eventually be removed.
*/
if (System.getProperty("StateCapture.useContextClassLoader") == null) {
classLoader = StateCapture.class.getClassLoader();
} else {
classLoader = Thread.currentThread().getContextClassLoader();
}
@SuppressWarnings("rawtypes")
ServiceLoader<StateCaptor> serviceLoader = ServiceLoader.load(StateCaptor.class, classLoader);
final List<StateCaptor<?>> registeredStateCaptors = new ArrayList<StateCaptor<?>>();
for (StateCaptor<?> stateCaptor : serviceLoader) {
registeredStateCaptors.add(stateCaptor);
log.fine("Registering state captor: " + stateCaptor.getClass().getCanonicalName());
}
if (registeredStateCaptors.isEmpty()) {
log.fine("Found no state captors to register.");
stateCaptors = Collections.emptyList();
} else {
stateCaptors = Collections.unmodifiableList(registeredStateCaptors);
}
}