From 8deee157b1ff4190bffa160986ee7a0f193cfe46 Mon Sep 17 00:00:00 2001 From: Tomas Fernandez Lobbe Date: Mon, 6 Oct 2025 14:36:57 -0300 Subject: [PATCH] Add a getImplementationName method to VectorizationProvider that returns the name of the selected implementation --- .../internal/vectorization/VectorizationProvider.java | 9 +++++++++ .../vectorization/TestVectorizationProvider.java | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java b/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java index cf9c56c59774..526952ca80cd 100644 --- a/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java +++ b/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java @@ -96,6 +96,11 @@ public static VectorizationProvider getInstance() { Holder.INSTANCE, "call to getInstance() from subclass of VectorizationProvider"); } + /** Returns the name of the {@code VectorizationProvider}'s implementation that's being used. */ + public static String getImplementationName() { + return Objects.requireNonNull(Holder.INSTANCE).getName(); + } + VectorizationProvider() { // no instance/subclass except from this package } @@ -224,6 +229,10 @@ private static void ensureCaller() { } } + public String getName() { + return this.getClass().getSimpleName(); + } + /** This static holder class prevents classloading deadlock. */ private static final class Holder { private Holder() {} diff --git a/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java b/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java index 7c7a3453e43e..d3187c7ce6f3 100644 --- a/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java +++ b/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java @@ -24,6 +24,10 @@ public void testCallerOfGetter() { expectThrows(UnsupportedOperationException.class, TestVectorizationProvider::illegalCaller); } + public void testGetProviderName() { + assertEquals("DefaultVectorizationProvider", VectorizationProvider.getImplementationName()); + } + private static void illegalCaller() { VectorizationProvider.getInstance(); }