public void fireRules(EvaluationContext context) throws EvaluationFailedException { List<RuleWrapper> candidateRules = getCandidateRules(); for (RuleWrapper wrapper: candidateRules) { EvaluationResult result = wrapper.getRule().evaluate(context); if (result.getReturnCode() == EvaluationResultCode.ERROR) { throw new EvaluationFailedException(result.getMessage(), result.getThrowable()); } } }
public static SelfDiagnosisRuleEngine getInstance() { if (instance == null) { synchronized (SelfDiagnosisRuleEngine.class) { if (instance == null) { instance = new SelfDiagnosisRuleEngine(); } } } return instance; }
private void diagnoseTajoMaster() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "master").fireRules(context); }
@Test(expected=EvaluationFailedException.class) public void testTajoConfValidationRuleWithException() throws Exception { TajoConf tajoConf = new TajoConf(new YarnConfiguration()); SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); tajoConf.setVar(TajoConf.ConfVars.ROOT_DIR, "invalid path."); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), tajoConf); ruleSession.withRuleNames("TajoConfValidationRule").fireRules(context); fail("EvaluationFailedException exception is expected, but it does not happen."); }
protected Class<?> getCallerClassName() { return new RuleSessionSecurityManager().getCallerClassName(); }
public Object getParameter(String name) { return getParameter(name, null); }
public void reset() { if (wrapperMap != null) { wrapperMap.clear(); } loadPredefinedRules(); }
public SelfDiagnosisRuleSession newRuleSession() { return new SelfDiagnosisRuleSession(this); }
@Override public int compareTo(RuleWrapper o) { if (getPriority() < 0 && o.getPriority() < 0) { return 0; } else if (getPriority() < 0) { return 1; } else if (o.getPriority() < 0) { return -1; } return (int) Math.signum(getPriority() - o.getPriority()); }
private void diagnoseTajoMaster() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "master").fireRules(context); }
public void fireRules(EvaluationContext context) throws EvaluationFailedException { List<RuleWrapper> candidateRules = getCandidateRules(); for (RuleWrapper wrapper: candidateRules) { EvaluationResult result = wrapper.getRule().evaluate(context); if (result.getReturnCode() == EvaluationResultCode.ERROR) { throw new EvaluationFailedException(result.getMessage(), result.getThrowable()); } } }
protected Class<?> getCallerClassName() { return new RuleSessionSecurityManager().getCallerClassName(); }
public Object getParameter(String name) { return getParameter(name, null); }
public void reset() { if (wrapperMap != null) { wrapperMap.clear(); } loadPredefinedRules(); }
public static SelfDiagnosisRuleEngine getInstance() { if (instance == null) { synchronized (SelfDiagnosisRuleEngine.class) { if (instance == null) { instance = new SelfDiagnosisRuleEngine(); } } } return instance; }
public SelfDiagnosisRuleSession newRuleSession() { return new SelfDiagnosisRuleSession(this); }
@Override public int compareTo(RuleWrapper o) { if (getPriority() < 0 && o.getPriority() < 0) { return 0; } else if (getPriority() < 0) { return 1; } else if (o.getPriority() < 0) { return -1; } return (int) Math.signum(getPriority() - o.getPriority()); }
private void diagnoseTajoWorker() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "worker").fireRules(context); }
private SelfDiagnosisRuleEngine() { wrapperMap = new HashMap<>(); loadPredefinedRules(); }
private void diagnoseTajoWorker() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "worker").fireRules(context); }