Move towards supported JAXBContextFactory provider
Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/jaxb-ri/bundles/runtime/src/main/java/module-info.java b/jaxb-ri/bundles/runtime/src/main/java/module-info.java
index ab107f6..fdf4620 100644
--- a/jaxb-ri/bundles/runtime/src/main/java/module-info.java
+++ b/jaxb-ri/bundles/runtime/src/main/java/module-info.java
@@ -41,4 +41,6 @@
opens org.glassfish.jaxb.runtime.v2.schemagen.xmlschema to jakarta.xml.bind;
opens org.glassfish.jaxb.runtime.v2 to jakarta.xml.bind;
+ provides jakarta.xml.bind.JAXBContextFactory with org.glassfish.jaxb.runtime.v2.JAXBContextFactory;
+
}
diff --git a/jaxb-ri/runtime/impl/pom.xml b/jaxb-ri/runtime/impl/pom.xml
index 142f10e..37f0a2f 100644
--- a/jaxb-ri/runtime/impl/pom.xml
+++ b/jaxb-ri/runtime/impl/pom.xml
@@ -33,6 +33,7 @@
<properties>
<spotbugs.exclude>${project.basedir}/exclude-runtime.xml</spotbugs.exclude>
<argLine>
+ --add-opens org.glassfish.jaxb.runtime/org.glassfish.jaxb.runtime.v2=jakarta.xml.bind
--add-opens org.glassfish.jaxb.runtime/org.glassfish.jaxb.runtime.v2=org.glassfish.jaxb.core
--add-opens org.glassfish.jaxb.runtime/org.glassfish.jaxb.runtime.v2.schemagen=org.glassfish.jaxb.core
--add-opens java.base/java.lang=org.glassfish.jaxb.runtime
diff --git a/jaxb-ri/runtime/impl/src/main/java/module-info.java b/jaxb-ri/runtime/impl/src/main/java/module-info.java
index f845343..9f010b1 100644
--- a/jaxb-ri/runtime/impl/src/main/java/module-info.java
+++ b/jaxb-ri/runtime/impl/src/main/java/module-info.java
@@ -45,12 +45,6 @@
opens org.glassfish.jaxb.runtime.v2.schemagen to jakarta.xml.bind;
opens org.glassfish.jaxb.runtime.v2.schemagen.xmlschema to jakarta.xml.bind;
- // The API is going to load us via reflection if no other implementation is found sooner.
- // Note that it is NOT mandatory for the jakarta.xml.bind.JAXBContext
- // implementation to implement that interface (v2.ContextFactory does not do that),
- // so we cannot use provides jakarta.xml.bind.JAXBContext with v2.ContextFactory here
- // and we have to rely on accessibility of our META-INF/services/jakarta.xml.bind.JAXBContext
- // resource by the API
- opens org.glassfish.jaxb.runtime.v2 to jakarta.xml.bind;
+ provides jakarta.xml.bind.JAXBContextFactory with org.glassfish.jaxb.runtime.v2.JAXBContextFactory;
}
diff --git a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/JAXBContextFactory.java b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/JAXBContextFactory.java
index 5de6d4d..f1d2eae 100644
--- a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/JAXBContextFactory.java
+++ b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/JAXBContextFactory.java
@@ -23,6 +23,13 @@
*/
public class JAXBContextFactory implements jakarta.xml.bind.JAXBContextFactory {
+
+ /**
+ * Default constructor.
+ */
+ public JAXBContextFactory() {
+ }
+
/**
* Creates JAXB context.
*
@@ -32,6 +39,7 @@
* @throws JAXBException on any error.
*/
@Override
+ @SuppressWarnings({"unchecked"})
public JAXBContext createContext(Class<?>[] classesToBeBound, Map<String, ?> properties) throws JAXBException {
return ContextFactory.createContext(classesToBeBound, (Map<String, Object>) properties);
}
@@ -45,6 +53,7 @@
* @throws JAXBException on any error.
*/
@Override
+ @SuppressWarnings({"unchecked"})
public JAXBContext createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties) throws JAXBException {
return ContextFactory.createContext(contextPath, classLoader, (Map<String, Object>) properties);
}
diff --git a/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContext b/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContext
deleted file mode 100644
index 239c6b2..0000000
--- a/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContext
+++ /dev/null
@@ -1 +0,0 @@
-org.glassfish.jaxb.runtime.v2.ContextFactory
diff --git a/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContextFactory b/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContextFactory
new file mode 100644
index 0000000..27c7ad5
--- /dev/null
+++ b/jaxb-ri/runtime/impl/src/main/resources/META-INF/services/jakarta.xml.bind.JAXBContextFactory
@@ -0,0 +1 @@
+org.glassfish.jaxb.runtime.v2.JAXBContextFactory