/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.health; import org.apache.log4j.Logger; /** * Abstract check interface. * @author LINDAT/CLARIN dev team */ public abstract class Check { protected static Logger log = Logger.getLogger(Check.class); long took_ = -1L; String report_ = null; private String errors_ = ""; // this method should be overridden protected abstract String run( ReportInfo ri ); public void report( ReportInfo ri ) { took_ = System.currentTimeMillis(); try { String run_report = run(ri); report_ = errors_ + run_report; }finally { took_ = System.currentTimeMillis() - took_; } } protected void error( Throwable e ) { error(e, null); } protected void error( Throwable e, String msg ) { errors_ += "====\nException occurred!\n"; if ( null != e ) { errors_ += e.toString() + "\n"; log.error("Exception during healthcheck:", e); } if ( null != msg ) { errors_ += "Reason: " + msg + "\n"; } } }