You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/12/18 16:44:42 UTC
[openmeetings] branch 4.0.x updated (5d9732a -> 098e9e3)
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a change to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git.
from 5d9732a [OPENMEETINGS-1954] red5 is updated
new c277618 [OPENMEETINGS-1967] basic health check is added
new 098e9e3 [OPENMEETINGS-1967] service description is updated
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../db/dto/basic/{Info.java => Health.java} | 46 ++++++++++++----------
.../org/apache/openmeetings/db/dto/basic/Info.java | 8 ----
.../service/quartz/scheduler/ReminderJob.java | 16 ++++++++
.../webapp/WEB-INF/classes/applicationContext.xml | 5 +++
.../openmeetings/webservice/InfoWebService.java | 15 ++++++-
5 files changed, 61 insertions(+), 29 deletions(-)
copy openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/{Info.java => Health.java} (70%)
[openmeetings] 02/02: [OPENMEETINGS-1967] service description is
updated
Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit 098e9e393ff32af3af96f87de1545e0cfa8aba91
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Dec 18 23:44:30 2018 +0700
[OPENMEETINGS-1967] service description is updated
---
.../main/java/org/apache/openmeetings/webservice/InfoWebService.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
index 4f769c2..28c15eb 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
@@ -34,7 +34,7 @@ import org.springframework.stereotype.Service;
/**
*
- * The Service contains methods to get localized errors
+ * The Service contains methods to get info about the system
*
* @author solomax
*
[openmeetings] 01/02: [OPENMEETINGS-1967] basic health check is
added
Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit c277618165eea436dc2596eddd2e592b31333d59
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Dec 18 23:40:56 2018 +0700
[OPENMEETINGS-1967] basic health check is added
---
.../db/dto/basic/{Info.java => Health.java} | 46 ++++++++++++----------
.../org/apache/openmeetings/db/dto/basic/Info.java | 8 ----
.../service/quartz/scheduler/ReminderJob.java | 16 ++++++++
.../webapp/WEB-INF/classes/applicationContext.xml | 5 +++
.../openmeetings/webservice/InfoWebService.java | 13 ++++++
5 files changed, 60 insertions(+), 28 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
similarity index 70%
copy from openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
copy to openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
index f21c04f..6f86f47 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
@@ -26,37 +26,43 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.openmeetings.util.Version;
-
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
-public class Info implements Serializable {
+public class Health implements Serializable {
private static final long serialVersionUID = 1L;
- private final String version;
- private final String revision;
- private final String buildDate;
- private final boolean inited;
-
- public Info() {
- version = Version.getVersion();
- revision = Version.getRevision();
- buildDate = Version.getBuildDate();
+ public static final Health INSTANCE = new Health();
+ private boolean inited;
+ private boolean installed;
+ private boolean dbOk;
+
+ public Health() {
inited = isInitComplete();
}
- public String getVersion() {
- return version;
+ public boolean isInited() {
+ return inited;
}
- public String getRevision() {
- return revision;
+ public Health setInited(boolean inited) {
+ this.inited = inited;
+ return this;
}
- public String getBuildDate() {
- return buildDate;
+ public boolean isInstalled() {
+ return installed;
}
- public boolean isInited() {
- return inited;
+ public Health setInstalled(boolean installed) {
+ this.installed = installed;
+ return this;
+ }
+
+ public boolean isDbOk() {
+ return dbOk;
+ }
+
+ public Health setDbOk(boolean dbOk) {
+ this.dbOk = dbOk;
+ return this;
}
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
index f21c04f..3b585bf 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.db.dto.basic;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
-
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
@@ -35,13 +33,11 @@ public class Info implements Serializable {
private final String version;
private final String revision;
private final String buildDate;
- private final boolean inited;
public Info() {
version = Version.getVersion();
revision = Version.getRevision();
buildDate = Version.getBuildDate();
- inited = isInitComplete();
}
public String getVersion() {
@@ -55,8 +51,4 @@ public class Info implements Serializable {
public String getBuildDate() {
return buildDate;
}
-
- public boolean isInited() {
- return inited;
- }
}
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/ReminderJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/ReminderJob.java
index d134965..2c0fb0d 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/ReminderJob.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/ReminderJob.java
@@ -28,10 +28,12 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
import org.apache.openmeetings.core.mail.MailHandler;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.basic.Health;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.service.calendar.AppointmentLogic;
import org.apache.openmeetings.service.mail.template.subject.RecordingExpiringTemplate;
import org.apache.openmeetings.service.mail.template.subject.SubjectEmailTemplate;
+import org.apache.openmeetings.util.crypt.CryptProvider;
import org.apache.wicket.util.string.Strings;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -102,4 +104,18 @@ public class ReminderJob extends AbstractJob {
setRss(feed);
}
}
+
+ public void checkHealth() {
+ log.trace("ReminderJob.checkHealth");
+ boolean dbOk = false;
+ try {
+ cfgDao.count();
+ dbOk = true;
+ } catch (Exception e) {
+ log.error("DB seems to be down");
+ }
+ Health.INSTANCE.setInited(isInitComplete())
+ .setInstalled(CryptProvider.get() != null)
+ .setDbOk(dbOk);
+ }
}
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index 282a4c2..d06a98e 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -90,6 +90,10 @@
p:targetObject-ref="reminderJob" p:targetMethod="loadRss" p:concurrent="false" />
<bean id="triggerLoadRss" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
p:jobDetail-ref="loadRssJobDetail" p:startDelay="5000" p:repeatInterval="600000"/>
+ <bean id="checkHealthJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
+ p:targetObject-ref="reminderJob" p:targetMethod="checkHealth" p:concurrent="false" />
+ <bean id="triggerCheckHealth" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
+ p:jobDetail-ref="checkHealthJobDetail" p:startDelay="5000" p:repeatInterval="15000"/>
<!-- Mail related jobs -->
<bean id="resetSendingMailStatus" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
@@ -114,6 +118,7 @@
<ref bean="triggerResetSendingMailStatus" />
<ref bean="triggerSendMails" />
<ref bean="triggerLoadRss" />
+ <ref bean="triggerCheckHealth" />
</list>
</property>
</bean>
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
index 7f4c5c7..4f769c2 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
@@ -28,6 +28,7 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dto.basic.Health;
import org.apache.openmeetings.db.dto.basic.Info;
import org.springframework.stereotype.Service;
@@ -55,4 +56,16 @@ public class InfoWebService {
public Info getVersion() {
return new Info();
}
+
+ /**
+ * Method to get health report for this OpenMeetings instance
+ *
+ * @return - health report
+ */
+ @WebMethod
+ @GET
+ @Path("/health")
+ public Health getHealth() {
+ return Health.INSTANCE;
+ }
}