##########################################################################
# 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.
##########################################################################

org.apache.knox.gateway.topology.discovery.cm.model.atlas.AtlasServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.atlas.AtlasAPIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hbase.HBaseUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hbase.WebHBaseServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hdfs.NameNodeServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hdfs.HdfsUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hdfs.WebHdfsServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hive.HiveServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hive.HiveOnTezServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hive.WebHCatServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hue.HueServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.hue.HueLBServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.impala.ImpalaServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.impala.ImpalaUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.yarn.JobTrackerServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.kudu.KuduUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.livy.LivyServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.oozie.OozieServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.oozie.OozieUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.phoenix.PhoenixServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.ranger.RangerServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.ranger.RangerUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.solr.SolrServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.spark.SparkHistoryUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.yarn.JobHistoryUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.yarn.ResourceManagerUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.yarn.YarnUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.yarn.YarnUIv2ServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.zeppelin.ZeppelinServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.zeppelin.ZeppelinUIServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.zeppelin.ZeppelinWSServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.nifi.NifiServiceModelGenerator
org.apache.knox.gateway.topology.discovery.cm.model.nifi.NifiRegistryServiceModelGenerator

