| 
2 | 2 | 
 
  | 
3 | 3 | import com.fasterxml.jackson.databind.AnnotationIntrospector;  | 
4 | 4 | import com.fasterxml.jackson.databind.module.SimpleModule;  | 
5 |  | - | 
 | 5 | +import com.fasterxml.jackson.databind.ser.SerializerFactory;  | 
6 | 6 | import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;  | 
7 | 7 | import com.fasterxml.jackson.dataformat.xml.deser.XmlBeanDeserializerModifier;  | 
8 | 8 | import com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializerModifier;  | 
@@ -39,13 +39,22 @@ public class JacksonXmlModule  | 
39 | 39 |     /**  | 
40 | 40 |      * Name used for pseudo-property used for returning XML Text value (which does  | 
41 | 41 |      * not have actual element name to use). Defaults to empty String, but  | 
42 |  | -     * may be changed for interoperability reasons: JAXB, for example, uses  | 
 | 42 | +     * may be changed for inter-operability reasons: JAXB, for example, uses  | 
43 | 43 |      * "value" as name.  | 
44 | 44 |      *   | 
45 | 45 |      * @since 2.1  | 
46 | 46 |      */  | 
47 | 47 |     protected String _cfgNameForTextElement = FromXmlParser.DEFAULT_UNNAMED_TEXT_PROPERTY;  | 
48 |  | -      | 
 | 48 | + | 
 | 49 | +    /**  | 
 | 50 | +     * Optional override for {@link SerializerFactory}  | 
 | 51 | +     * used by {@link XmlMapper}. Needed to allow proper override and configurability  | 
 | 52 | +     * using custom {@SerializerFactory} implementations.  | 
 | 53 | +     *   | 
 | 54 | +     * @since 2.18.2  | 
 | 55 | +     */  | 
 | 56 | +    protected SerializerFactory _serializerFactoryOverride;  | 
 | 57 | + | 
49 | 58 |     /*  | 
50 | 59 |     /**********************************************************************  | 
51 | 60 |     /* Life-cycle: construction  | 
@@ -119,6 +128,29 @@ public void setDefaultUseWrapper(boolean state) {  | 
119 | 128 |     public void setXMLTextElementName(String name) {  | 
120 | 129 |         _cfgNameForTextElement = name;  | 
121 | 130 |     }  | 
 | 131 | + | 
 | 132 | +    /**  | 
 | 133 | +     * Method to use for overriding default {@link SerializerFactory} used  | 
 | 134 | +     *  | 
 | 135 | +     * @since 2.18.2  | 
 | 136 | +     */  | 
 | 137 | +    public JacksonXmlModule overrideSerializerFactory(SerializerFactory factory) {  | 
 | 138 | +        _serializerFactoryOverride = factory;  | 
 | 139 | +        return this;  | 
 | 140 | +    }  | 
 | 141 | + | 
 | 142 | +    /*  | 
 | 143 | +    /**********************************************************************  | 
 | 144 | +    /* Accessors  | 
 | 145 | +    /**********************************************************************  | 
 | 146 | +     */  | 
 | 147 | + | 
 | 148 | +    /**  | 
 | 149 | +     * @since 2.18.2  | 
 | 150 | +     */  | 
 | 151 | +    public SerializerFactory serializerFactoryOverride() {  | 
 | 152 | +        return _serializerFactoryOverride;  | 
 | 153 | +    }  | 
122 | 154 | 
 
  | 
123 | 155 |     /*  | 
124 | 156 |     /**********************************************************************  | 
 | 
0 commit comments