big-bucket/src/main/java/dev/dinauer/metrics/service/utils/BucketConfigProvider.java
2025-11-15 11:34:28 +01:00

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;
}
}