- private static final ActorSystem getOrCreateInstance(final BundleContext bundleContext, ConfigurationReader configurationReader) {
- ActorSystem ret = persistentActorSystem;
- if (ret == null) {
- synchronized (DistributedDataStoreFactory.class) {
- ret = persistentActorSystem;
- if (ret == null) {
- // Create an OSGi bundle classloader for actor system
- BundleDelegatingClassLoader classLoader = new BundleDelegatingClassLoader(bundleContext.getBundle(),
- Thread.currentThread().getContextClassLoader());
-
- ret = ActorSystem.create(ACTOR_SYSTEM_NAME,
- ConfigFactory.load(configurationReader.read()).getConfig(CONFIGURATION_NAME), classLoader);
- ret.actorOf(Props.create(TerminationMonitor.class), "termination-monitor");
-
- persistentActorSystem = ret;
- }
- }
- }
-
- return ret;