protected void processFeatureEvent(FeatureEvent event, List<Feature> toInstall) throws InterruptedException, Exception { if(event.getType() == EventType.FeatureInstalled) { toInstall.add(event.getFeature()); LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> result = configPusher.pushConfigs(toInstall); toInstall.removeAll(result.keySet()); } else if(event.getType() == EventType.FeatureUninstalled) { toInstall.remove(event.getFeature()); } }
public void featureEvent(FeatureEvent event) { try { EventAdmin eventAdmin = tracker.getService(); if (eventAdmin == null) { return; } Dictionary<String, Object> props = new Hashtable<>(); props.put(EventConstants.TYPE, event.getType()); props.put(EventConstants.EVENT, event); props.put(EventConstants.TIMESTAMP, System.currentTimeMillis()); props.put(EventConstants.FEATURE_NAME, event.getFeature().getName()); props.put(EventConstants.FEATURE_VERSION, event.getFeature().getVersion()); String topic; switch (event.getType()) { case FeatureInstalled: topic = EventConstants.TOPIC_FEATURES_INSTALLED; break; case FeatureUninstalled: topic = EventConstants.TOPIC_FEATURES_UNINSTALLED; break; default: throw new IllegalStateException("Unknown features event type: " + event.getType()); } eventAdmin.postEvent(new Event(topic, props)); } catch (IllegalStateException e) { LOGGER.warn("Unable to post event to EventAdmin", e); } }
public JmxFeatureEvent(FeatureEvent event) { try { String[] itemNames = FeaturesServiceMBean.FEATURE_EVENT; Object[] itemValues = new Object[itemNames.length]; itemValues[0] = event.getFeature().getName(); itemValues[1] = event.getFeature().getVersion(); itemValues[2] = event.getRegion(); switch (event.getType()) { case FeatureInstalled: itemValues[2] = FeaturesServiceMBean.FEATURE_EVENT_EVENT_TYPE_INSTALLED; break; case FeatureUninstalled: itemValues[2] = FeaturesServiceMBean.FEATURE_EVENT_EVENT_TYPE_UNINSTALLED; break; default: throw new IllegalStateException("Unsupported event type: " + event.getType()); } data = new CompositeDataSupport(FEATURE_EVENT, itemNames, itemValues); } catch (OpenDataException e) { throw new IllegalStateException("Cannot form feature event open data", e); } }