@Inject public TriggerManager(final Props props, final TriggerLoader triggerLoader, final ExecutorManagerAdapter executorManagerAdapter) throws TriggerManagerException { requireNonNull(props); requireNonNull(executorManagerAdapter); this.triggerLoader = requireNonNull(triggerLoader); final long scannerInterval = props.getLong("trigger.scan.interval", DEFAULT_SCANNER_INTERVAL_MS); this.runnerThread = new TriggerScannerThread(scannerInterval); this.checkerTypeLoader = new CheckerTypeLoader(); this.actionTypeLoader = new ActionTypeLoader(); try { this.checkerTypeLoader.init(props); this.actionTypeLoader.init(props); } catch (final Exception e) { throw new TriggerManagerException(e); } Condition.setCheckerLoader(this.checkerTypeLoader); Trigger.setActionTypeLoader(this.actionTypeLoader); logger.info("TriggerManager loaded."); }
@Override public void registerCheckerType(final String name, final Class<? extends ConditionChecker> checker) { this.checkerTypeLoader.registerCheckerType(name, checker); }
public static Condition fromJson(final Object obj) throws Exception { if (checkerLoader == null) { throw new Exception("Condition Checker loader not initialized!"); } final Map<String, Object> jsonObj = (HashMap<String, Object>) obj; Condition cond = null; try { final Map<String, ConditionChecker> checkers = new HashMap<>(); final List<Object> checkersJson = (List<Object>) jsonObj.get("checkers"); for (final Object oneCheckerJson : checkersJson) { final Map<String, Object> oneChecker = (HashMap<String, Object>) oneCheckerJson; final String type = (String) oneChecker.get("type"); final ConditionChecker ck = checkerLoader.createCheckerFromJson(type, oneChecker.get("checkerJson")); checkers.put(ck.getId(), ck); } final String expr = (String) jsonObj.get("expression"); final Long nextCheckTime = Long.valueOf((String) jsonObj.get("nextCheckTime")); cond = new Condition(checkers, expr, nextCheckTime); } catch (final Exception e) { e.printStackTrace(); logger.error("Failed to recreate condition from json.", e); throw new Exception("Failed to recreate condition from json.", e); } return cond; }
@BeforeClass public static void prepare() throws Exception { dbOperator = azkaban.test.Utils.initTestDB(); final CheckerTypeLoader checkerTypeLoader = new CheckerTypeLoader(); final ActionTypeLoader actionTypeLoader = new ActionTypeLoader(); try { checkerTypeLoader.init(null); actionTypeLoader.init(null); } catch (final Exception e) { throw new TriggerManagerException(e); } Condition.setCheckerLoader(checkerTypeLoader); Trigger.setActionTypeLoader(actionTypeLoader); checkerTypeLoader.registerCheckerType(BasicTimeChecker.type, BasicTimeChecker.class); actionTypeLoader.registerActionType(ExecuteFlowAction.type, ExecuteFlowAction.class); }
public Map<String, Class<? extends ConditionChecker>> getSupportedCheckers() { return this.checkerTypeLoader.getSupportedCheckers(); }
public Map<String, Class<? extends ConditionChecker>> getSupportedCheckers() { return this.checkerTypeLoader.getSupportedCheckers(); }
@Before public void setup() throws TriggerException { this.checkerLoader = new CheckerTypeLoader(); this.checkerLoader.init(new Props()); Condition.setCheckerLoader(this.checkerLoader); this.actionLoader = new ActionTypeLoader(); this.actionLoader.init(new Props()); Trigger.setActionTypeLoader(this.actionLoader); }
@Override public void registerCheckerType(final String name, final Class<? extends ConditionChecker> checker) { this.checkerTypeLoader.registerCheckerType(name, checker); }
public Map<String, Class<? extends ConditionChecker>> getSupportedCheckers() { return checkerTypeLoader.getSupportedCheckers(); }
Map<String, Object> oneChecker = (HashMap<String, Object>) oneCheckerJson; String type = (String) oneChecker.get("type"); ConditionChecker ck = checkerLoader.createCheckerFromJson(type, oneChecker.get("checkerJson")); checkers.put(ck.getId(), ck);
public void jsonConversionTest() throws Exception { final CheckerTypeLoader checkerTypeLoader = new CheckerTypeLoader(); checkerTypeLoader.init(new Props()); Condition.setCheckerLoader(checkerTypeLoader);
@Override public void registerCheckerType(String name, Class<? extends ConditionChecker> checker) { checkerTypeLoader.registerCheckerType(name, checker); }
public static Condition fromJson(final Object obj) throws Exception { if (checkerLoader == null) { throw new Exception("Condition Checker loader not initialized!"); } final Map<String, Object> jsonObj = (HashMap<String, Object>) obj; Condition cond = null; try { final Map<String, ConditionChecker> checkers = new HashMap<>(); final List<Object> checkersJson = (List<Object>) jsonObj.get("checkers"); for (final Object oneCheckerJson : checkersJson) { final Map<String, Object> oneChecker = (HashMap<String, Object>) oneCheckerJson; final String type = (String) oneChecker.get("type"); final ConditionChecker ck = checkerLoader.createCheckerFromJson(type, oneChecker.get("checkerJson")); checkers.put(ck.getId(), ck); } final String expr = (String) jsonObj.get("expression"); final Long nextCheckTime = Long.valueOf((String) jsonObj.get("nextCheckTime")); cond = new Condition(checkers, expr, nextCheckTime); } catch (final Exception e) { e.printStackTrace(); logger.error("Failed to recreate condition from json.", e); throw new Exception("Failed to recreate condition from json.", e); } return cond; }
@Inject public TriggerManager(final Props props, final TriggerLoader triggerLoader, final ExecutorManager executorManager) throws TriggerManagerException { requireNonNull(props); requireNonNull(executorManager); this.triggerLoader = requireNonNull(triggerLoader); final long scannerInterval = props.getLong("trigger.scan.interval", DEFAULT_SCANNER_INTERVAL_MS); this.runnerThread = new TriggerScannerThread(scannerInterval); this.checkerTypeLoader = new CheckerTypeLoader(); this.actionTypeLoader = new ActionTypeLoader(); try { this.checkerTypeLoader.init(props); this.actionTypeLoader.init(props); } catch (final Exception e) { throw new TriggerManagerException(e); } Condition.setCheckerLoader(this.checkerTypeLoader); Trigger.setActionTypeLoader(this.actionTypeLoader); logger.info("TriggerManager loaded."); }
public TriggerManager(Props props, TriggerLoader triggerLoader, ExecutorManager executorManager) throws TriggerManagerException { this.triggerLoader = triggerLoader; long scannerInterval = props.getLong("trigger.scan.interval", DEFAULT_SCANNER_INTERVAL_MS); runnerThread = new TriggerScannerThread(scannerInterval); checkerTypeLoader = new CheckerTypeLoader(); actionTypeLoader = new ActionTypeLoader(); try { checkerTypeLoader.init(props); actionTypeLoader.init(props); } catch (Exception e) { throw new TriggerManagerException(e); } Condition.setCheckerLoader(checkerTypeLoader); Trigger.setActionTypeLoader(actionTypeLoader); executorManager.addListener(listener); logger.info("TriggerManager loaded."); }