Github user nickwallen commented on a diff in the pull request: https://github.com/apache/metron/pull/856#discussion_r158583012 --- Diff: metron-platform/metron-common/src/main/java/org/apache/metron/common/configuration/ConfigurationProvider.java --- @@ -0,0 +1,144 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.metron.common.configuration; + +import static org.apache.metron.common.configuration.ConfigurationType.ENRICHMENT; +import static org.apache.metron.common.configuration.ConfigurationType.PARSER; +import static org.apache.metron.common.configuration.ConfigurationType.PROFILER; + +import java.util.LinkedList; +import java.util.List; +import org.apache.curator.framework.CuratorFramework; +import org.apache.metron.common.configuration.enrichment.SensorEnrichmentConfig; +import org.apache.metron.common.configuration.profiler.ProfileConfig; +import org.apache.metron.common.configuration.profiler.ProfilerConfig; +import org.apache.metron.common.utils.JSONUtils; +import org.apache.metron.stellar.common.utils.validation.ExpressionConfigurationHolder; +import org.apache.metron.stellar.common.utils.validation.StellarConfigurationProvider; +import org.apache.metron.stellar.common.utils.validation.StellarConfiguredStatementContainer.ErrorConsumer; +import org.apache.zookeeper.KeeperException.NoNodeException; + +/** + * {@code ConfigurationProvider} is used to report all of the configured / deployed Stellar statements in + * the system. + */ +public class ConfigurationProvider implements StellarConfigurationProvider { + + /** + * Default constructor. + */ + public ConfigurationProvider() { + } + + @Override + public String getName() { + return "Apache Metron"; + } + + @Override + public List<ExpressionConfigurationHolder> provideConfigurations(CuratorFramework client, + ErrorConsumer errorConsumer) { + List<ExpressionConfigurationHolder> holders = new LinkedList<>(); + visitParserConfigs(client, holders, errorConsumer); + visitEnrichmentConfigs(client, holders, errorConsumer); + visitProfilerConfigs(client, holders, errorConsumer); + return holders; + } + + private void visitParserConfigs(CuratorFramework client, + List<ExpressionConfigurationHolder> holders, ErrorConsumer errorConsumer) { + List<String> children = null; + + try { + children = client.getChildren().forPath(PARSER.getZookeeperRoot()); + } catch (Exception nne) { + return; --- End diff -- Need to log and comment here. We are silently eating the exception. Seems especially problematic because of the overly generic `Exception` declaration that the Curator library gives us.
---