From e65ada9ab3a7fab736a72c0b803cfe438d3554f2 Mon Sep 17 00:00:00 2001 From: Ludovic Claude <ludovic.claude@laposte.net> Date: Sun, 20 May 2018 22:32:15 +0200 Subject: [PATCH] Add Bugsnag --- pom.xml | 6 ++++++ .../mip/configuration/AkkaConfiguration.java | 20 ++++++++++++++----- .../hbp/mip/configuration/BugsnagConfig.java | 13 ++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 src/main/java/eu/hbp/mip/configuration/BugsnagConfig.java diff --git a/pom.xml b/pom.xml index fd1cd3319..36b30fcd0 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 4f4ae846f..59375f7ab 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 000000000..c39970604 --- /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 -- GitLab