Move ActorSystem shutdown logic out of SystemTray

This commit is contained in:
Chris Beams 2014-11-03 20:27:42 +01:00
parent fa7d7a08a5
commit b9e9882865
No known key found for this signature in database
GPG key ID: 3D214F8F5BC5ED73
3 changed files with 21 additions and 19 deletions

View file

@ -29,12 +29,20 @@ import io.bitsquare.trade.TradeModule;
import io.bitsquare.user.User;
import io.bitsquare.util.ConfigLoader;
import com.google.inject.Injector;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import akka.actor.ActorSystem;
import scala.concurrent.duration.Duration;
public class BitsquareModule extends AbstractBitsquareModule {
private static final Logger log = LoggerFactory.getLogger(BitsquareModule.class);
public BitsquareModule() {
this(ConfigLoader.loadConfig());
}
@ -77,5 +85,16 @@ public class BitsquareModule extends AbstractBitsquareModule {
protected GuiModule guiModule() {
return new GuiModule(properties);
}
@Override
protected void doClose(Injector injector) {
ActorSystem actorSystem = injector.getInstance(ActorSystem.class);
actorSystem.shutdown();
try {
actorSystem.awaitTermination(Duration.create(5L, "seconds"));
} catch (Exception ex) {
log.error("Actor system failed to shut down properly", ex);
}
}
}