1 package emissary.spi;
2
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5
6 import java.util.ServiceLoader;
7
8
9
10
11
12
13
14
15
16 public class SPILoader {
17
18 private static final Logger logger = LoggerFactory.getLogger(SPILoader.class);
19
20 public static void load() {
21 ServiceLoader<InitializationProvider> loader = ServiceLoader.load(InitializationProvider.class);
22
23 loader.forEach(provider -> {
24 provider.initialize();
25 logger.info("Initialized {}", provider.getClass().getName());
26 });
27 }
28
29 public static void unload() {
30 ServiceLoader<InitializationProvider> loader = ServiceLoader.load(InitializationProvider.class);
31 loader.forEach(InitializationProvider::shutdown);
32 }
33
34
35 private SPILoader() {}
36 }