From dd06f34b24349363266614b4bbdb142a6247db69 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Tue, 28 Jun 2022 00:16:11 +0100 Subject: [PATCH] Add standard osgi.serviceloader OSGi metadata for provided services. (#151) --- pom.xml | 17 ++++++++++++++--- .../java/com/ctc/wstx/dtd/DTDSchemaFactory.java | 2 ++ .../com/ctc/wstx/msv/RelaxNGSchemaFactory.java | 2 ++ .../java/com/ctc/wstx/msv/W3CSchemaFactory.java | 2 ++ .../com/ctc/wstx/stax/WstxEventFactory.java | 2 ++ .../com/ctc/wstx/stax/WstxInputFactory.java | 2 ++ .../com/ctc/wstx/stax/WstxOutputFactory.java | 2 ++ ....stax2.validation.XMLValidationSchemaFactory | 3 +++ 8 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/META-INF/services/org.codehaus.stax2.validation.XMLValidationSchemaFactory diff --git a/pom.xml b/pom.xml index 3927f775..604d71c0 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,9 @@ SAX2 and Stax2 APIs --> com.ctc.wstx.*;version=${project.version} + + 6.3.1 + - org.apache.felix - org.osgi.core - 1.4.0 + org.osgi + osgi.core + 5.0.0 true provided + + biz.aQute.bnd + biz.aQute.bnd.annotation + ${version.bnd.annotation} + true + provided + + diff --git a/src/main/java/com/ctc/wstx/dtd/DTDSchemaFactory.java b/src/main/java/com/ctc/wstx/dtd/DTDSchemaFactory.java index 4b5b3caa..660177c3 100644 --- a/src/main/java/com/ctc/wstx/dtd/DTDSchemaFactory.java +++ b/src/main/java/com/ctc/wstx/dtd/DTDSchemaFactory.java @@ -20,6 +20,7 @@ import javax.xml.stream.*; +import aQute.bnd.annotation.spi.ServiceProvider; import org.codehaus.stax2.validation.*; import com.ctc.wstx.api.ReaderConfig; @@ -40,6 +41,7 @@ * documents) is only accessible by core Woodstox. The externally * accessible */ +@ServiceProvider(XMLValidationSchemaFactory.class) public class DTDSchemaFactory extends XMLValidationSchemaFactory { diff --git a/src/main/java/com/ctc/wstx/msv/RelaxNGSchemaFactory.java b/src/main/java/com/ctc/wstx/msv/RelaxNGSchemaFactory.java index 55b1a31f..30cfba34 100644 --- a/src/main/java/com/ctc/wstx/msv/RelaxNGSchemaFactory.java +++ b/src/main/java/com/ctc/wstx/msv/RelaxNGSchemaFactory.java @@ -18,6 +18,7 @@ import javax.xml.parsers.SAXParserFactory; import javax.xml.stream.*; +import aQute.bnd.annotation.spi.ServiceProvider; import org.xml.sax.InputSource; import org.codehaus.stax2.validation.*; @@ -35,6 +36,7 @@ * to work, and acts as a quite thin wrapper layer (although not a completely * trivial one, since MSV only exports SAX API, some adapting is needed) */ +@ServiceProvider(XMLValidationSchemaFactory.class) public class RelaxNGSchemaFactory extends BaseSchemaFactory { diff --git a/src/main/java/com/ctc/wstx/msv/W3CSchemaFactory.java b/src/main/java/com/ctc/wstx/msv/W3CSchemaFactory.java index 97b558a0..30de0813 100644 --- a/src/main/java/com/ctc/wstx/msv/W3CSchemaFactory.java +++ b/src/main/java/com/ctc/wstx/msv/W3CSchemaFactory.java @@ -18,6 +18,7 @@ import javax.xml.parsers.SAXParserFactory; import javax.xml.stream.*; +import aQute.bnd.annotation.spi.ServiceProvider; import org.xml.sax.InputSource; import org.codehaus.stax2.validation.*; @@ -35,6 +36,7 @@ * to work, and acts as a quite thin wrapper layer, similar to * how matching RelaxNG validator works */ +@ServiceProvider(XMLValidationSchemaFactory.class) public class W3CSchemaFactory extends BaseSchemaFactory { diff --git a/src/main/java/com/ctc/wstx/stax/WstxEventFactory.java b/src/main/java/com/ctc/wstx/stax/WstxEventFactory.java index 47d7e3cc..f19adf1d 100644 --- a/src/main/java/com/ctc/wstx/stax/WstxEventFactory.java +++ b/src/main/java/com/ctc/wstx/stax/WstxEventFactory.java @@ -22,6 +22,7 @@ import javax.xml.stream.*; import javax.xml.stream.events.*; +import aQute.bnd.annotation.spi.ServiceProvider; import org.codehaus.stax2.ri.Stax2EventFactoryImpl; import com.ctc.wstx.compat.QNameCreator; @@ -31,6 +32,7 @@ * Implementation of {@link XMLEventFactory} to be used with * Woodstox. Contains minimal additions on top of Stax2 RI. */ +@ServiceProvider(XMLEventFactory.class) public final class WstxEventFactory extends Stax2EventFactoryImpl { diff --git a/src/main/java/com/ctc/wstx/stax/WstxInputFactory.java b/src/main/java/com/ctc/wstx/stax/WstxInputFactory.java index f9683349..2de47385 100644 --- a/src/main/java/com/ctc/wstx/stax/WstxInputFactory.java +++ b/src/main/java/com/ctc/wstx/stax/WstxInputFactory.java @@ -24,6 +24,7 @@ import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamSource; +import aQute.bnd.annotation.spi.ServiceProvider; import org.xml.sax.InputSource; import org.codehaus.stax2.XMLEventReader2; import org.codehaus.stax2.XMLInputFactory2; @@ -68,6 +69,7 @@ * * @author Tatu Saloranta */ +@ServiceProvider(XMLInputFactory.class) public class WstxInputFactory extends XMLInputFactory2 implements ReaderCreator, diff --git a/src/main/java/com/ctc/wstx/stax/WstxOutputFactory.java b/src/main/java/com/ctc/wstx/stax/WstxOutputFactory.java index fcca5edb..16221ac4 100644 --- a/src/main/java/com/ctc/wstx/stax/WstxOutputFactory.java +++ b/src/main/java/com/ctc/wstx/stax/WstxOutputFactory.java @@ -29,6 +29,7 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamResult; +import aQute.bnd.annotation.spi.ServiceProvider; import org.codehaus.stax2.XMLOutputFactory2; import org.codehaus.stax2.XMLStreamWriter2; import org.codehaus.stax2.io.Stax2Result; @@ -61,6 +62,7 @@ * * */ +@ServiceProvider(XMLOutputFactory.class) public class WstxOutputFactory extends XMLOutputFactory2 implements OutputConfigFlags diff --git a/src/main/resources/META-INF/services/org.codehaus.stax2.validation.XMLValidationSchemaFactory b/src/main/resources/META-INF/services/org.codehaus.stax2.validation.XMLValidationSchemaFactory new file mode 100644 index 00000000..63f6bb83 --- /dev/null +++ b/src/main/resources/META-INF/services/org.codehaus.stax2.validation.XMLValidationSchemaFactory @@ -0,0 +1,3 @@ +com.ctc.wstx.dtd.DTDSchemaFactory +com.ctc.wstx.msv.RelaxNGSchemaFactory +com.ctc.wstx.msv.W3CSchemaFactory