18
18
import java .util .Enumeration ;
19
19
import java .util .LinkedHashSet ;
20
20
import java .util .List ;
21
+ import java .util .Objects ;
21
22
import java .util .jar .JarFile ;
22
23
import java .util .zip .ZipEntry ;
23
24
@@ -57,6 +58,7 @@ public class MetadataSources implements Serializable {
57
58
private static final CoreMessageLogger LOG = CoreLogging .messageLogger ( MetadataSources .class );
58
59
59
60
private final ServiceRegistry serviceRegistry ;
61
+ private final boolean disableXmlMappingBinders ;
60
62
61
63
private XmlMappingBinderAccess xmlMappingBinderAccess ;
62
64
@@ -86,6 +88,18 @@ public MetadataSources(ServiceRegistry serviceRegistry) {
86
88
}
87
89
}
88
90
this .serviceRegistry = serviceRegistry ;
91
+ this .disableXmlMappingBinders = false ;
92
+ }
93
+
94
+ /**
95
+ * Consider this an SPI, used by Quarkus
96
+ * @param serviceRegistry
97
+ * @param disableXmlMappingBinders
98
+ */
99
+ public MetadataSources (ServiceRegistry serviceRegistry , boolean disableXmlMappingBinders ) {
100
+ Objects .requireNonNull ( serviceRegistry );
101
+ this .serviceRegistry = serviceRegistry ;
102
+ this .disableXmlMappingBinders = disableXmlMappingBinders ;
89
103
}
90
104
91
105
protected static boolean isExpectedServiceRegistryType (ServiceRegistry serviceRegistry ) {
@@ -94,6 +108,9 @@ protected static boolean isExpectedServiceRegistryType(ServiceRegistry serviceRe
94
108
}
95
109
96
110
public XmlMappingBinderAccess getXmlMappingBinderAccess () {
111
+ if ( disableXmlMappingBinders ) {
112
+ return null ;
113
+ }
97
114
if ( xmlMappingBinderAccess == null ) {
98
115
xmlMappingBinderAccess = new XmlMappingBinderAccess ( serviceRegistry );
99
116
}
0 commit comments