From 97374b411905efa9f47aac26e17627fc8e79d340 Mon Sep 17 00:00:00 2001 From: Jean-Kevin KPADEY Date: Thu, 12 Jun 2025 09:31:28 +0200 Subject: [PATCH] feat: improve performance in AirportSupplier by resolving the provider once in the constructor --- .../java/io/github/mivek/command/AirportSupplier.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/metarParser-parsers/src/main/java/io/github/mivek/command/AirportSupplier.java b/metarParser-parsers/src/main/java/io/github/mivek/command/AirportSupplier.java index 7c40edf3..35596729 100644 --- a/metarParser-parsers/src/main/java/io/github/mivek/command/AirportSupplier.java +++ b/metarParser-parsers/src/main/java/io/github/mivek/command/AirportSupplier.java @@ -3,25 +3,28 @@ import io.github.mivek.model.Airport; import io.github.mivek.provider.airport.AirportProvider; import io.github.mivek.provider.airport.impl.DefaultAirportProvider; + +import java.util.Iterator; import java.util.ServiceLoader; /** * @author mivek */ public final class AirportSupplier implements Supplier { - /** The service loader for the airport provider. */ - private final ServiceLoader airportLoader; + /** The airport provider. */ + private final AirportProvider provider; /** * Constructor. */ public AirportSupplier() { - airportLoader = ServiceLoader.load(AirportProvider.class); + ServiceLoader loader = ServiceLoader.load(AirportProvider.class); + Iterator iterator = loader.iterator(); + this.provider = iterator.hasNext() ? iterator.next() : new DefaultAirportProvider(); } @Override public Airport get(final String string) { - AirportProvider provider = airportLoader.iterator().hasNext() ? airportLoader.iterator().next() : new DefaultAirportProvider(); return provider.getAirports().get(string); } }