public static EnrichedRuleDTO map(final Rule rule, final RuleRegistry ruleRegistry) {
   final EnrichedRuleDTO enrichedRuleDto = new EnrichedRuleDTO();
   fillProperties(rule, enrichedRuleDto);
   enrichedRuleDto.enabled = ruleRegistry.isEnabled(rule.getUID());
   enrichedRuleDto.status = ruleRegistry.getStatus(rule.getUID());
   return enrichedRuleDto;
 }
示例#2
0
 protected void setDisabledRuleStorage(Storage<Boolean> disabledRulesStorage) {
   this.disabledRulesStorage = disabledRulesStorage;
   for (Rule rule : ruleEngine.getRules()) {
     String uid = rule.getUID();
     if (ruleEngine.getRuleStatus(uid).equals(RuleStatus.DISABLED)) {
       disabledRulesStorage.put(uid, false);
     } else {
       disabledRulesStorage.remove(uid);
     }
   }
 }
示例#3
0
 @Override
 protected synchronized void removeProvider(Provider<Rule> provider) {
   Collection<Rule> rules = provider.getAll();
   for (Iterator<Rule> it = rules.iterator(); it.hasNext(); ) {
     Rule rule = it.next();
     String uid = rule.getUID();
     if (ruleEngine.removeRule(uid)) {
       postEvent(RuleEventFactory.createRuleRemovedEvent(rule, SOURCE));
     }
     if (disabledRulesStorage != null) {
       disabledRulesStorage.remove(uid);
     }
   }
   if (provider instanceof ManagedRuleProvider) {
     hasManagedRuleProvider = false;
   }
   super.removeProvider(provider);
 }
示例#4
0
 @Override
 protected synchronized void addProvider(Provider<Rule> provider) {
   if (provider instanceof ManagedRuleProvider) {
     hasManagedRuleProvider = true;
   }
   Collection<Rule> rules = provider.getAll();
   for (Iterator<Rule> it = rules.iterator(); it.hasNext(); ) {
     Rule rule = it.next();
     try {
       String rUID = rule.getUID();
       if (rUID != null
           && disabledRulesStorage != null
           && disabledRulesStorage.get(rUID) != null) {
         ruleEngine.addRule(rule, false);
       } else {
         ruleEngine.addRule(rule, true);
       }
     } catch (Exception e) {
       logger.error(
           "Can't add rule: " + rule.getUID() + " into rule engine from provider " + provider, e);
     }
   }
   super.addProvider(provider);
 }
示例#5
0
 @Override
 public synchronized Rule update(Rule element) {
   Rule old = null;
   if (element != null) {
     old = super.update(element); // update storage with new rule and return old rule
     if (old != null) {
       postEvent(RuleEventFactory.createRuleUpdatedEvent(element, old, SOURCE));
       String rUID = element.getUID();
       if (disabledRulesStorage != null && disabledRulesStorage.get(rUID) != null) {
         ruleEngine.setRuleEnabled(rUID, false);
       }
       ruleEngine.updateRule(element); // update memory map
     }
   }
   return old;
 }
示例#6
0
 @Override
 public synchronized void add(Rule element) {
   if (element == null) {
     throw new IllegalArgumentException("The added rule must not be null!");
   }
   String rUID = element.getUID();
   if (!hasManagedRuleProvider) {
     throw new IllegalStateException(
         "ManagedProvider is not available. The rule '"
             + (rUID != null ? rUID : element)
             + "' can't be added!");
   }
   Rule ruleToPersist;
   if (rUID != null && disabledRulesStorage != null && disabledRulesStorage.get(rUID) != null) {
     ruleToPersist = ruleEngine.addRule(element, false);
   } else {
     ruleToPersist = ruleEngine.addRule(element, true);
   }
   super.add(ruleToPersist);
   postEvent(RuleEventFactory.createRuleAddedEvent(ruleToPersist, SOURCE));
 }