From 81d2d78bc45e5b15f4f7c2f84d6250bce830686e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=CC=8Avard=20Ottestad?= Date: Thu, 20 Jun 2024 11:38:42 +0200 Subject: [PATCH] GH-5041 register glassfish implementation of Jakarta JSON with SPI --- .../services/jakarta.json.spi.JsonProvider | 1 + .../rdf4j/rio/jsonld/JSONLDParserCustomTest.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 core/rio/jsonld/src/main/resources/META-INF/services/jakarta.json.spi.JsonProvider diff --git a/core/rio/jsonld/src/main/resources/META-INF/services/jakarta.json.spi.JsonProvider b/core/rio/jsonld/src/main/resources/META-INF/services/jakarta.json.spi.JsonProvider new file mode 100644 index 00000000000..52f1a6b2e45 --- /dev/null +++ b/core/rio/jsonld/src/main/resources/META-INF/services/jakarta.json.spi.JsonProvider @@ -0,0 +1 @@ +org.glassfish.json.JsonProviderImpl diff --git a/core/rio/jsonld/src/test/java/org/eclipse/rdf4j/rio/jsonld/JSONLDParserCustomTest.java b/core/rio/jsonld/src/test/java/org/eclipse/rdf4j/rio/jsonld/JSONLDParserCustomTest.java index 36003d89a2d..f0fb28e05fe 100644 --- a/core/rio/jsonld/src/test/java/org/eclipse/rdf4j/rio/jsonld/JSONLDParserCustomTest.java +++ b/core/rio/jsonld/src/test/java/org/eclipse/rdf4j/rio/jsonld/JSONLDParserCustomTest.java @@ -14,13 +14,17 @@ import static org.eclipse.rdf4j.rio.helpers.JSONLDSettings.SECURE_MODE; import static org.eclipse.rdf4j.rio.helpers.JSONLDSettings.WHITELIST; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.StringReader; import java.net.URI; import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.ServiceLoader; import java.util.Set; +import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.eclipse.rdf4j.model.IRI; @@ -44,6 +48,7 @@ import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.Test; +import jakarta.json.spi.JsonProvider; import no.hasmac.jsonld.document.Document; import no.hasmac.jsonld.document.JsonDocument; @@ -354,4 +359,15 @@ public void testRemoteContextException() throws Exception { assertEquals("Could not load document from https://example.org/context.jsonld", rdfParseException.getMessage()); } + @Test + public void testSPI() { + ServiceLoader load = ServiceLoader.load(JsonProvider.class); + List collect = load.stream() + .map(ServiceLoader.Provider::get) + .map(t -> t.getClass().getName()) + .collect(Collectors.toList()); + assertFalse(collect.isEmpty()); + assertEquals("org.glassfish.json.JsonProviderImpl", collect.stream().findFirst().orElse("")); + } + }