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