45 lines
1.3 KiB
Java
45 lines
1.3 KiB
Java
package dev.dinauer.metrics.service.utils;
|
|
|
|
import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
|
|
import jakarta.enterprise.context.ApplicationScoped;
|
|
import jakarta.inject.Inject;
|
|
|
|
import org.antlr.v4.runtime.misc.OrderedHashSet;
|
|
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
|
import org.jboss.logging.Logger;
|
|
|
|
import io.quarkus.runtime.Startup;
|
|
|
|
import dev.dinauer.metrics.service.model.BucketUnit;
|
|
|
|
@Startup
|
|
@ApplicationScoped
|
|
public class BucketConfigProvider
|
|
{
|
|
private Set<BucketUnit> units;
|
|
|
|
@Inject
|
|
public BucketConfigProvider(Logger LOG, @ConfigProperty(name = "dev.dinauer.metrics-service.buckets") String config)
|
|
{
|
|
Set<BucketUnit> result = new OrderedHashSet<>();
|
|
for (String unit : config.split(","))
|
|
{
|
|
result.add(BucketUnit.valueOf(unit));
|
|
}
|
|
if (!result.isEmpty())
|
|
{
|
|
this.units = result;
|
|
LOG.info(String.format("Configured indexing with bucket units: %s", result.stream().map(Enum::toString).collect(Collectors.joining(","))));
|
|
return;
|
|
}
|
|
throw new IllegalArgumentException("Cannot obtain indexing bucket units from application.properties. Please set property 'dev.dinauer.metrics-service.buckets'.");
|
|
}
|
|
|
|
public Set<BucketUnit> get()
|
|
{
|
|
return units;
|
|
}
|
|
}
|