示例#1
0
  public void activate() {
    injector = RulesStandaloneSetup.getInjector();
    triggerManager = injector.getInstance(RuleTriggerManager.class);

    if (!isEnabled()) {
      logger.info("Rule engine is disabled.");
      return;
    }

    logger.debug("Started rule engine");

    // read all rule files
    Iterable<String> ruleModelNames = modelRepository.getAllModelNamesOfType("rules");
    ArrayList<String> clonedList = Lists.newArrayList(ruleModelNames);
    for (String ruleModelName : clonedList) {
      EObject model = modelRepository.getModel(ruleModelName);
      if (model instanceof RuleModel) {
        RuleModel ruleModel = (RuleModel) model;
        triggerManager.addRuleModel(ruleModel);
      }
    }

    // register us on all items which are already available in the registry
    for (Item item : itemRegistry.getItems()) {
      internalItemAdded(item);
    }
    scheduleStartupRules();
  }
示例#2
0
 private void dispatchBindingsPerType(BindingConfigReader reader, String[] bindingTypes) {
   if (modelRepository != null) {
     for (String modelName : modelRepository.getAllModelNamesOfType("items")) {
       ItemModel model = (ItemModel) modelRepository.getModel(modelName);
       if (model != null) {
         for (ModelItem modelItem : model.getItems()) {
           for (ModelBinding modelBinding : modelItem.getBindings()) {
             for (String bindingType : bindingTypes) {
               if (bindingType.equals(modelBinding.getType())) {
                 Item item = createItemFromModelItem(modelItem);
                 if (item != null) {
                   internalDispatchBindings(reader, modelName, item, modelItem.getBindings());
                 }
               }
             }
           }
         }
       } else {
         logger.debug("Model repository returned NULL for model named '{}'", modelName);
       }
     }
   } else {
     logger.warn("ModelRepository is NULL > dispatch bindings aborted!");
   }
 }
 public void unsetModelRepository(ModelRepository modelRepository) {
   modelRepository.removeModelRepositoryChangeListener(this);
   for (String modelName : modelRepository.getAllModelNamesOfType("persist")) {
     stopEventHandling(modelName);
   }
   this.modelRepository = null;
 }
示例#4
0
 /** {@inheritDoc} */
 @Override
 public Collection<Item> getAll() {
   List<Item> items = new ArrayList<Item>();
   stateDescriptions.clear();
   for (String name : modelRepository.getAllModelNamesOfType("items")) {
     items.addAll(getItemsFromModel(name));
   }
   return items;
 }
 public void setModelRepository(ModelRepository modelRepository) {
   this.modelRepository = modelRepository;
   modelRepository.addModelRepositoryChangeListener(this);
   for (String modelName : modelRepository.getAllModelNamesOfType("persist")) {
     String serviceName = modelName.substring(0, modelName.length() - ".persist".length());
     stopEventHandling(serviceName);
     startEventHandling(serviceName);
   }
 }