diff --git a/pom.xml b/pom.xml index fd1cd3319f59d85c5a592588aabf1a6bdbb1469f..36b30fcd0d135cdc3346f12db99b75e8bcba4012 100644 --- a/pom.xml +++ b/pom.xml @@ -249,6 +249,12 @@ <version>${scala.release.version}</version> <scope>compile</scope> </dependency> + + <dependency> + <groupId>com.bugsnag</groupId> + <version>[3.0,4.0)</version> + <artifactId>bugsnag</artifactId> + </dependency> </dependencies> <build> diff --git a/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java b/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java index 4f4ae846fc8b0e89d3a87c334f03a32948026846..59375f7ab4916753bf108ead11e9a37d9ebd59cd 100644 --- a/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java +++ b/src/main/java/eu/hbp/mip/configuration/AkkaConfiguration.java @@ -4,9 +4,11 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.ExtendedActorSystem; import akka.cluster.Cluster; +import akka.cluster.Member; import akka.cluster.pubsub.DistributedPubSub; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +17,7 @@ import org.springframework.context.annotation.*; import java.util.List; import java.util.concurrent.Semaphore; +import java.util.concurrent.TimeUnit; import static eu.hbp.mip.akka.SpringExtension.SPRING_EXTENSION_PROVIDER; @@ -73,11 +76,18 @@ class AkkaConfiguration { semaphore.release(); }); - try { - semaphore.acquire(); - Thread.sleep(5000); - } catch (InterruptedException e) { - LOGGER.warn("Cannot wait for Akka cluster start", e); + for (Member member: cluster.state().getMembers()) { + LOGGER.info("Member " + StringUtils.join(member.getRoles(), ",") + " at " + member.address().toString() + " is in the cluster"); + } + + if (cluster.state().members().size() < 2) { + LOGGER.info("Waiting for Woken cluster connection..."); + try { + semaphore.tryAcquire(5, TimeUnit.MINUTES); + Thread.sleep(5000); + } catch (InterruptedException e) { + LOGGER.warn("Cannot wait for Akka cluster start", e); + } } Runtime.getRuntime().addShutdownHook(new Thread(() -> { diff --git a/src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java b/src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..c399706049a7cb4b1a7129c2174c13bc4f8721c0 --- /dev/null +++ b/src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java @@ -0,0 +1,13 @@ +package eu.hbp.mip.configuration; + +import com.bugsnag.Bugsnag; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BugsnagConfig { + @Bean + public Bugsnag bugsnag() { + return new Bugsnag("dff301aa15eb795a6d8b22b600586f77"); + } +} \ No newline at end of file