package eu.dnetlib;

import io.prometheus.client.exporter.MetricsServlet;
import io.prometheus.client.hotspot.DefaultExports;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import eu.dnetlib.services.ApiDocUtils;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class WorkerConfiguration {

	@Bean
	public Docket api() {
		return ApiDocUtils.newSwaggerDocket();
	}

	@Bean
	@ConditionalOnMissingBean(name = "prometheusMetricsServletRegistrationBean")
	ServletRegistrationBean prometheusMetricsServletRegistrationBean(@Value("${prometheus.metrics.path:/prometheus}") String metricsPath) {
		DefaultExports.initialize();
		return new ServletRegistrationBean(new MetricsServlet(), metricsPath);
	}

}
