2 * ============LICENSE_START=======================================================
3 * dcaegen2-collectors-veshv
4 * ================================================================================
5 * Copyright (C) 2019 NOKIA
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package org.onap.dcae.collectors.veshv.kafkaconsumer
22 import org.onap.dcae.collectors.veshv.commandline.handleWrongArgumentErrorCurried
23 import org.onap.dcae.collectors.veshv.kafkaconsumer.config.ArgKafkaConsumerConfiguration
24 import org.onap.dcae.collectors.veshv.kafkaconsumer.config.KafkaConsumerConfiguration
25 import org.onap.dcae.collectors.veshv.kafkaconsumer.metrics.MicrometerMetrics
26 import org.onap.dcae.collectors.veshv.kafkaconsumer.metrics.http.PrometheusApiServer
27 import org.onap.dcae.collectors.veshv.utils.process.ExitCode
28 import org.onap.dcae.collectors.veshv.utils.process.ExitSuccess
30 private const val PACKAGE_NAME = "org.onap.dcae.collectors.veshv.kafkaconsumer"
31 const val PROGRAM_NAME = "java $PACKAGE_NAME.MainKt"
33 fun main(args: Array<String>): Unit =
34 ArgKafkaConsumerConfiguration().parse(args)
35 .fold(handleWrongArgumentErrorCurried(PROGRAM_NAME), ::startApp)
36 .let(ExitCode::doExit)
39 private fun startApp(config: KafkaConsumerConfiguration): ExitSuccess {
40 PrometheusApiServer(config.apiAddress, MicrometerMetrics.INSTANCE)
41 .start().block()!!.await().block() // TODO refactor netty server logic