diff --git a/saaj-ri/src/main/java/com/sun/xml/messaging/saaj/util/transform/EfficientStreamingTransformer.java b/saaj-ri/src/main/java/com/sun/xml/messaging/saaj/util/transform/EfficientStreamingTransformer.java index 3ff1709..ff2d614 100644 --- a/saaj-ri/src/main/java/com/sun/xml/messaging/saaj/util/transform/EfficientStreamingTransformer.java +++ b/saaj-ri/src/main/java/com/sun/xml/messaging/saaj/util/transform/EfficientStreamingTransformer.java @@ -27,6 +27,7 @@ import javax.xml.transform.stream.StreamSource; import com.sun.xml.messaging.saaj.util.LogDomainConstants; +import com.sun.xml.messaging.saaj.util.SAAJUtil; import org.w3c.dom.Document; import com.sun.xml.messaging.saaj.util.XMLDeclarationParser; @@ -77,7 +78,8 @@ public class EfficientStreamingTransformer extends Transformer { private EfficientStreamingTransformer() { boolean log = LOG.compareAndSet(true, false); - TransformerFactory tf = TransformerFactory.newInstance(); + boolean useDefaultTransformerFactory = SAAJUtil.getSystemBoolean("saaj.use.default.transformer.factory"); + TransformerFactory tf = useDefaultTransformerFactory ? TransformerFactory.newDefaultInstance() : TransformerFactory.newInstance(); try { tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch (TransformerConfigurationException e) { diff --git a/saaj-ri/src/main/java/module-info.java b/saaj-ri/src/main/java/module-info.java index 1895f48..7a04ff1 100644 --- a/saaj-ri/src/main/java/module-info.java +++ b/saaj-ri/src/main/java/module-info.java @@ -146,6 +146,15 @@ * large attachments in incoming messages. The default is false. * * + * + * saaj.use.default.transformer.factory + * boolean + * The {@code saaj.use.default.transformer.factory} property forces usage of + * the {@code TransformerFactory} builtin system-default implementation instead of the + * JAXP Lookup Mechanism. + * The default is false. + * + * * * * @see Jakarta SOAP Specification