All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.fw.web.handler.health.HealthChecker Maven / Gradle / Ivy

The newest version!
package nablarch.fw.web.handler.health;

import nablarch.core.util.annotation.Published;
import nablarch.fw.ExecutionContext;
import nablarch.fw.web.HttpRequest;

/**
 * ヘルスチェックを行うクラス。
 *
 * @author Kiyohito Itoh
 */
@Published(tag = "architect")
public abstract class HealthChecker {

    /** ヘルスチェックの対象を表す名前 */
    private String name;

    /**
     * ヘルスチェックの対象を表す名前を取得する。
     *
     * @return ヘルスチェックの対象を表す名前
     */
    public String getName() {
        return name;
    }

    /**
     * ヘルスチェックの対象を表す名前を設定する。
     *
     * @param name ヘルスチェックの対象を表す名前
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * ヘルスチェックを行う。
     *
     * {@link #tryOut(HttpRequest, ExecutionContext)}を呼び出し、その結果を返す。
     * {@link #tryOut(HttpRequest, ExecutionContext)}で例外が発生した場合はfalseを返す。
     *
     * @param request リクエスト
     * @param context コンテキスト
     * @return ヘルスチェックに成功した場合はtrue
     */
    public boolean check(HttpRequest request, ExecutionContext context) {
        try {
            return tryOut(request, context);
        } catch (Throwable e) {
            return false;
        }
    }

    /**
     * ヘルシーと判断できる処理を試す。
     *
     * @param request リクエスト
     * @param context コンテキスト
     * @return ヘルシーな場合はtrue
     * @throws Exception 試した結果発生した例外
     */
    protected abstract boolean tryOut(HttpRequest request, ExecutionContext context) throws Exception;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy