Releases: powsybl/powsybl-core
v5.0.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- Consider station supply objects in import (#2296)
- BaseVoltage attribute exported in CGMES for PowerTransformerEnd (#2283)
- Export without topological nodes mapping (#2053)
- Find a voltage level when substation contains nodes + explicit exception thrown when access to undefined voltage level of conducting equipment instead of NullPointerException (#2298)
- Move CGMES shortcircuits into core. (#2311 & #2368)
- Fix CGMES target deadband (#2317)
- Fix: do not export flows and terminals of non-exported switches (#2327)
- Fix conversion of equivalent branches with different nominal voltages (#2329)
- Add missing attributes or references in CGMES export (#2328)
- Export Switch.normalOpen
- Export Equipment.EquipmentContainer of GeneratingUnit
- Export Equipment.EquipmentContainer of Shunts
- Export Equipment.EquipmentContainer of PowerTransformers
- Export RatioTapChanger.tculControlMode
- Export Equipment.EquipmentContainer for static var compensators
- Export ConductingEquipment.BaseVoltage for AcLineSegments
- CGMES Export: export missing load groups (#2344)
- Fix exception processing an equivalent branch with zero impedance inside a voltage level (#2349)
- CGMES. Add functional logs (#1901 & #2357)
- CGMES export: do not throw exception when merged lines contain boundary terminals properties (#2361)
- Cgmes Conversion: Extend hvdc configuration. (#2348)
- CGMES export: fix export of boundary data from dangling lines (#2347)
Contingency
IEEE
- Add IEEE 33 and 69 buses network (#2299)
IIDM
- Fix IdentifiableShortCircuit so that it only applies to voltage levels, buses and busbar sections. (#2285)
- Add getConnectable(string) in network (#2297)
- Topology Processor: Components with single bus are ignored (#2310)
- Add network FourSubstationsNodeBreaker with extensions. (#2314)
- Add ratio tap changer to four substations network (#2320)
- StandbyAutomaton extension of static var compensator (#2335)
- Fix remaining dangling switches when replacing tee point by voltage level on line (#2343)
IIDM comparator
- ShuntCompensator active power comparison in NetworkStateComparator (#2305)
- Added SVCs reactive power and voltage comparison in NetworkStateComparator (#2312)
IIDM modifications
- Changes on network modifications: Do not use redundant voltage level ID in CreateLineOnLine and ConnectVoltageLevelOnLine + Rename attribute + Delete deprecated constructors (#2292)
- Fix extension creation in case of no connectables in the voltage level. (#2306)
- Detach a voltage level from 2 lines (line split reverse action) (#2228)
- Add coupling device (#2288)
- Create voltage level topology (#2289)
- Detach a line from 3 lines (attach new line on line reverse action) (#2230)
- Fix loop to get unused positions + refactoring + min is 0, not Integer.MIN_VALUE (#2333)
- Create voltage level topology with only one section (#2342)
- Remove feeder bay (#2340)
- Renamings in "replace tee point by voltage level on line" modification (#2359)
- Factorize get tee point from lines + clean (#2360)
Matpower
- Matpower: fix inverted voltage limits (#2338)
PowerFactory
- Support number of parallel lines (nlnum) attribute (#2272)
- Add phase angle clock from transformer connection type (#2262)
- Allow empty matrices in DGS parser (#2276)
- Common impedance, fix conversion to engineering units when it has different nominal at both ends (#2281)
- Consider sign of shortCircuitVoltage attribute (#2290)
- Out of service (#2282)
- Generator converter, for targetP and targetQ use pgini_a and qgini_a if are available #2337
Security Analysis
- Refactor action deserializer (#2321)
- Make OperatorStrategy extendable (#2323)
- Refactor actions JSON serialization / deserialization + plugin mechanism (#2325)
- Generator action (#2237)
- Load action (#2331)
Short Circuit
- Fix ShortCircuitParametersSerializer boolean default values (#2316)
UCTE
- UCTE import, avoid empty element name properties (#2322)
Quality
- Upgrade string template version (#2301)
- Use PowSyBl Parent 9 (#2304)
- Bump commons-text from 1.9 to 1.10.0 (#2334)
- Bump jackson to 2.13.4 and jackson-databind to 2.13.4.2 [CVE-2022-42003] [CVE-2022-42004] (#2336)
- Remove iidm-converter-api (merged with iidm-api) (#2350)
v5.0.0-RC1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- Consider station supply objects in import (#2296)
- BaseVoltage attribute exported in CGMES for PowerTransformerEnd (#2283)
- Export without topological nodes mapping (#2053)
- Find a voltage level when substation contains nodes + explicit exception thrown when access to undefined voltage level of conducting equipment instead of NullPointerException (#2298)
- Move CGMES shortcircuits into core. (#2311)
- Fix CGMES target deadband (#2317)
- Fix: do not export flows and terminals of non-exported switches (#2327)
- Fix conversion of equivalent branches with different nominal voltages (#2329)
- Add missing attributes or references in CGMES export (#2328)
- Export Switch.normalOpen
- Export Equipment.EquipmentContainer of GeneratingUnit
- Export Equipment.EquipmentContainer of Shunts
- Export Equipment.EquipmentContainer of PowerTransformers
- Export RatioTapChanger.tculControlMode
- Export Equipment.EquipmentContainer for static var compensators
- Export ConductingEquipment.BaseVoltage for AcLineSegments
- CGMES Export: export missing load groups (#2344)
- Fix exception processing an equivalent branch with zero impedance inside a voltage level (#2349)
- CGMES. Add functional logs (#1901)
Contingency
IEEE
- Add IEEE 33 and 69 buses network (#2299)
IIDM
- Fix IdentifiableShortCircuit so that it only applies to voltage levels, buses and busbar sections. (#2285)
- Add getConnectable(string) in network (#2297)
- Topology Processor: Components with single bus are ignored (#2310)
- Add network FourSubstationsNodeBreaker with extensions. (#2314)
- Add ratio tap changer to four substations network (#2320)
- StandbyAutomaton extension of static var compensator (#2335)
IIDM comparator
- ShuntCompensator active power comparison in NetworkStateComparator (#2305)
- Added SVCs reactive power and voltage comparison in NetworkStateComparator (#2312)
IIDM modifications
- Changes on network modifications: Do not use redundant voltage level ID in CreateLineOnLine and ConnectVoltageLevelOnLine + Rename attribute + Delete deprecated constructors (#2292)
- Fix extension creation in case of no connectables in the voltage level. (#2306)
- Detach a voltage level from 2 lines (line split reverse action) (#2228)
- Add coupling device (#2288)
- Create voltage level topology (#2289)
- Detach a line from 3 lines (attach new line on line reverse action) (#2230)
- Fix loop to get unused positions + refactoring + min is 0, not Integer.MIN_VALUE (#2333)
- Create voltage level topology with only one section (#2342)
- Remove feeder bay (#2340)
Matpower
- Matpower: fix inverted voltage limits (#2338)
PowerFactory
- Support number of parallel lines (nlnum) attribute (#2272)
- Add phase angle clock from transformer connection type (#2262)
- Allow empty matrices in DGS parser (#2276)
- Common impedance, fix conversion to engineering units when it has different nominal at both ends (#2281)
- Consider sign of shortCircuitVoltage attribute (#2290)
- Out of service (#2282)
- Generator converter, for targetP and targetQ use pgini_a and qgini_a if are available #2337
Security Analysis
- Refactor action deserializer (#2321)
- Make OperatorStrategy extendable (#2323)
- Refactor actions JSON serialization / deserialization + plugin mechanism (#2325)
- Generator action (#2237)
- Load action (#2331)
Short Circuit
- Fix ShortCircuitParametersSerializer boolean default values (#2316)
UCTE
- UCTE import, avoid empty element name properties (#2322)
Quality
- Upgrade string template version (#2301)
- Use PowSyBl Parent 9 (#2304)
- Bump commons-text from 1.9 to 1.10.0 (#2334)
- Bump jackson to 2.13.4 and jackson-databind to 2.13.4.2 [CVE-2022-42003] [CVE-2022-42004] (#2336)
- Remove iidm-converter-api (merged with iidm-api) (#2350)
v4.10.1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
UCTE
- Ignore coupler with same bus at both ends (#2291)
v4.10.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES export: avoid duplicated base voltages (#2162)
- Allow setting terminal P for shunt compensators in CGMES import (#2189)
- CGMES import: reset slack terminal only if previous was disconnected (#2187)
- Read base URI if present during CGMES triplestore import and apply to all files (#2197)
- Allow boundaries to be assembled with other network data in the same instance file (#2216)
- CGMES: terminal sequenceNumber can be optional (#2245)
- CGMES export: ensure all exported identifiers are valid (#2151)
- Add PowerTransformerEnd.ratedS and SynchronousMachine.EquipmentContainer info during CGMES export (#2265)
Configuration
- Improve import/export parameters description (#2255)
Conversion
- Importer and exporter refactoring (#2217)
IIDM
- Limit getters return optionals (#2169)
- Allow setting terminal P for shunt compensators (#2189)
- Move parameters to commons (#2199)
- Move extensions from sld to core (#2198)
- Able to choose encoding for network xml export (#1591)
- Use intermediary objects to copy limits for modification AttachNewLineOnLine and AttachVoltageLevelOnLine (#2207)
- Fix extensions namespaces (#2231)
- Proposition for network modification builder (#2218)
- Add convenient methods to retrieve bus-breaker buses from bus-branch bus ID (#2239)
- Allow to serialize redundancy equal to false for Observability and make redundancy optional (#2271 & #2274)
- Add Metrix tuto 6 buses test network (#2275)
- Fix NPE in BranchObservability XML serialization (#2235)
- Extension adder: change return type of add method (#2246)
IIDM Network modifications
- Create feeder bay (#2214, #2254, #2256, #2259 & #2269)
- Create Hypothesis for creation of branch feeders (#2257, #2270)
- Clean NetworkModification interface and implementations of complicated override methods (#2252)
- Transform line on line into voltage level on line (#2249)
- Add method to get order positions by connectable (#2264)
- Add logging for CreateLineOnLine and ConnectVoltageLevelOnLine (#2266)
- Support of branches internal to a voltage level (#2268)
- Add configurable feeder names in hypotheses creating feeders' bays (#2278)
- Rename topology network modifications (#2238)
Math
- Improve dense matrix multiplication and addition performance (#2236)
MatPower
- Apparent power limits are now imported on both sides of branches, instead of only side 1 (#2221)
PowerFactory
- Select nodeRef in concordance with the busIndexIn parameter (#2098)
- Transformers (#2100)
- Review conversion of nodes and switches. (#2166)
- Common Impedance (ElmZpu) (#2181)
- Shunt converter (#2185)
- Reorganize code. (#2188)
- Parallel lines defined using Tower (ElmTow) (#2195)
- strengthen DgsParser (#2196)
- Voltage levels and substations creation (#2202)
- Extend containersMapping changes to importers (#2210)
- Hvdc links (#2222)
- fix updates of voltages (#2248)
- Capability curve and minor changes (#2224)
Security analysis
- Add remedial actions for security analysis (#2095)
- Line connection action (#2243)
- Fix lineConnectionAction deserializer (#2251)
- PreContingencyResult: correct method name (#2253)
- Phase tap changer tap position action (#2242)
Sensitivity analysis
- Sensitivity analysis: add contingency status in the results (#2186)
- Increase sensitivity function and variable types to support ThreeWindingsTransformer (#2260)
- Rework sensitivity analysis results (#2263)
- Rename contingency status enum (#2273)
Short circuit
Quality
- Upgrade rdf4j to latest version (4.1.0) for performance improvements
(#2178 & #2244) - Refactor simple anonymizer (#2200)
- Upgrade jgrapht to 1.5.1 (#2247)
- Move some classes from converter-api to xml-converter (#2250)
- Create utility class for compareXml/compareTxt for refactoring purposes (#2209)
- Bump snakeyaml to 1.32 (fix vulnerabilities [CVE-2022-25857] and [CVE-2022-38752]) (#2277 & #2279)
v4.10.0-RC1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES export: avoid duplicated base voltages (#2162)
- Allow setting terminal P for shunt compensators in CGMES import (#2189)
- CGMES import: reset slack terminal only if previous was disconnected (#2187)
- Read base URI if present during CGMES triplestore import and apply to all files (#2197)
- Allow boundaries to be assembled with other network data in the same instance file (#2216)
- CGMES: terminal sequenceNumber can be optional (#2245)
- CGMES export: ensure all exported identifiers are valid (#2151)
Configuration
- Improve import/export parameters description (#2255)
Conversion
- Importer and exporter refactoring (#2217)
IIDM
- Limit getters return optionals (#2169)
- Allow setting terminal P for shunt compensators (#2189)
- Move parameters to commons (#2199)
- Move extensions from sld to core (#2198)
- Able to choose encoding for network xml export (#1591)
- Use intermediary objects to copy limits for modification AttachNewLineOnLine and AttachVoltageLevelOnLine (#2207)
- Fix extensions namespaces (#2231)
- Proposition for network modification builder (#2218)
- Network modification: create feeder bay (#2214, #2254, #2256 & #2259)
- Add convenient methods to retrieve bus-breaker buses from bus-branch bus ID (#2239)
- Clean NetworkModification interface and implementations of complicated override methods (#2252)
- Transform line on line into voltage level on line (#2249)
- [Network modification] Add method to get orders by connectable (#2264)
- [Network modification] Create Hypothesis for creation of branch feeders (#2257)
- [Network modification] Add logging for CreateLineOnLine and ConnectVoltageLevelOnLine (#2266)
Math
- Improve dense matrix multiplication and addition performance (#2236)
MatPower
- Apparent power limits are now imported on both sides of branches, instead of only side 1 (#2221)
PowerFactory
- Select nodeRef in concordance with the busIndexIn parameter (#2098)
- Transformers (#2100)
- Review conversion of nodes and switches. (#2166)
- Common Impedance (ElmZpu) (#2181)
- Shunt converter (#2185)
- Reorganize code. (#2188)
- Parallel lines defined using Tower (ElmTow) (#2195)
- strengthen DgsParser (#2196)
- Voltage levels and substations creation (#2202)
- Extend containersMapping changes to importers (#2210)
- Hvdc links (#2222)
- fix updates of voltages (#2248)
- Capability curve and minor changes (#2224)
Security analysis
- Add remedial actions for security analysis (#2095)
- Line connection action (#2243)
- Fix NPE in BranchObservability XML serialization (#2235)
- Extension adder: change return type of add method (#2246)
- Rename topology network modifications (#2238)
- Fix lineConnectionAction deserializer (#2251)
- PreContingencyResult: correct method name (#2253)
- Phase tap changer tap position action (#2242)
Sensitivity analysis
- Sensitivity analysis: add contingency status in the results (#2186)
- Increase sensitivity function and variable types to support ThreeWindingsTransformer (#2260)
- Rework sensitivity analysis results (#2263)
Short circuit
Quality
v4.10.0-alpha-1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES export: avoid duplicated base voltages (#2162)
- Allow setting terminal P for shunt compensators in CGMES import (#2189)
- CGMES import: reset slack terminal only if previous was disconnected (#2187)
- Read base URI if present during CGMES triplestore import and apply to all files (#2197)
Conversion
- Importer and exporter refactoring (#2217)
IIDM
- Limit getters return optionals (#2169)
- Allow setting terminal P for shunt compensators (#2189)
- Move parameters to commons (#2199)
- Move extensions from sld to core (#2198)
- Able to choose encoding for network xml export (#1591)
- Use intermediary objects to copy limits for modification AttachNewLineOnLine and AttachVoltageLevelOnLine (#2207)
PowerFactory
- Select nodeRef in concordance with the busIndexIn parameter (#2098)
- Transformers (#2100)
- Review conversion of nodes and switches. (#2166)
- Common Impedance (ElmZpu) (#2181)
- Shunt converter (#2185)
- Reorganize code. (#2188)
- Parallel lines defined using Tower (ElmTow) (#2195)
- strengthen DgsParser (#2196)
- Voltage levels and substations creation (#2202)
- Extend containersMapping changes to importers (#2210)
Short circuit
Quality
v4.9.2
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
IIDM modification
- Fixes AttachVoltageLevelOnLine and AttachNewLineOnLine (#2205)
- Fix AttachNewLineOnLine
- Remove existing line before creating new lines - Fix AttachVoltageLevelOnLine
- Remove existing line before creating new lines
- Fix topology of voltage level
- Fix AttachNewLineOnLine
v4.9.1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES import parameter for IIDM id source: mRID or rdfID (#2180)
v4.9.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES Models' description, modellinAuthoritySet are not identifiers (#2094)
- Update dependencies between model descriptions at export (#2096)
- Fix regulating terminal mapping. Map cgmesTerminals associated to switches (#2042)
- Fix export of generating units with multiple synchronous machines (#2097)
- Fill ENTSOE category extension from CGMES generating unit description (#2112)
- CGMES export: phase tap changers exported as tabular if EQ is exported (#2102)
- Create equivalent injection id and terminal (#2109)
- CGMES export EQ: tap changer regulating controls (#2105)
- CGMES export SV: write proper RDF ids for SV objects (#2119)
- Clean: delete unused class (#2121)
- CGMES EQ export: consider 2 and 3-winding transformer tap changers (#2107)
- CGMES export: only export terminals for objects exported as equipment (#2111)
- Add CGMES naming strategy (#2023)
- CGMES import: ensure path exists before trying to load boundaries (#2131)
- Move GL CGMES conversion into core (#2135)
- CGMES mRIDs: allow all versions of UUID (#2142)
- CGMES import: consider DC Topological Nodes (#2140)
- CGMES export: shunt compensator reference to its regulating control (#2146)
- CGMES export: export definition of regulating controls only once (#2148)
- CGMES export: handle regions not related to countries (#2150)
- CGMES conversion: non-impedant equivalent branches and series compensators mapped to fictitious switches, consistent with ac line segments (#2143)
- CGMES export: ignore fictitious switches created for disconnected terminals (#2137)
- CGMES: tieflow may not be a dangling line (#2108)
- CGMES: support additional configuration for HVDC (#2125)
- CGMES export: fix hidden tap changer export (#2161)
- CGMES SV export: write dangling lines' terminal's power flows at network side (#2165)
CGMES 3 (beta)
- CGMES 3 Improvements (#2091)
Configuration
- Add methods to get specific parameters for sensitivity and security providers (#2089)
- Import/export parameter possible values (#2122)
- Add update method for parameter extensions with map (#2117)
- Add possible values for import/export parameters when possible (#2139)
- Dummy platform config when no PlatformConfigProvider found (#2062)
- Add possible values for extensions (from present extensions modules) (#2147)
- SecurityAnalysisParameters is missing in SecurityAnalysisJsonModule (#2158)
DataSource
- Fix ZIP datasource with dot in name (#2083)
IIDM
- Set Identifiable name (#2078)
- Fix NPE: no NPE thrown when equipment added and validation level has been invalidated (#2087)
- Throw exception when trying to access component of removed equipment (#2093)
- Bump XIIDM to 1.8
- Fix IdentifiableShortCircuitAdderImpl implementation (generics) (#2138)
- Move GeneratorStartup extension to powsybl-core (#2144)
- Move scalables in iidm-modification (#2157)
- Fix: read startup extension with itesla namespace (#2160)
- Loading limits bug when exporting to XIIDM 1.5 (#2163)
LoadFlow
- Add distributed active power to load flow result (#2141)
Matpower
- Matpower export (#2130)
Modifications
- Fix: connectivity is symmetrical when attaching a voltage level on a line (#2106)
Power Factory
- Load converter (#2071)
- PowerFactory study case custom JSON serialization (#2101)
- PowerFactory DB study case loader (#2035)
PSS/E
- PSSE Converter: Fix error when moving the shunt admittance between ideal ratio and transmission impedance (#2116)
Security Analysis
- Bus and branch result extension (#2126)
Short circuits
- Improve three phase shortcircuits API to support elementary computation (#1947)
TripleStore
- Triplestore: remove prefix using indexOf instead of replaceAll (#2084)
- Remove Jena triplestore implementation (#2123)
XML
- Manually clear the inputstream on various XMLInputFactory objects to allow gc. Make the code more uniform. (#2128)
Quality
v4.9.0-RC1
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES
- CGMES Models' description, modellinAuthoritySet are not identifiers (#2094)
- Update dependencies between model descriptions at export (#2096)
- Fix regulating terminal mapping. Map cgmesTerminals associated to switches (#2042)
- Fix export of generating units with multiple synchronous machines (#2097)
- Fill ENTSOE category extension from CGMES generating unit description (#2112)
- CGMES export: phase tap changers exported as tabular if EQ is exported (#2102)
- Create equivalent injection id and terminal (#2109)
- CGMES export EQ: tap changer regulating controls (#2105)
- CGMES export SV: write proper RDF ids for SV objects (#2119)
- Clean: delete unused class (#2121)
- CGMES EQ export: consider 2 and 3-winding transformer tap changers (#2107)
- CGMES export: only export terminals for objects exported as equipment (#2111)
- Add CGMES naming strategy (#2023)
- CGMES import: ensure path exists before trying to load boundaries (#2131)
- Move GL CGMES conversion into core (#2135)
- CGMES mRIDs: allow all versions of UUID (#2142)
- CGMES import: consider DC Topological Nodes (#2140)
- CGMES export: shunt compensator reference to its regulating control (#2146)
- CGMES export: export definition of regulating controls only once (#2148)
- CGMES export: handle regions not related to countries (#2150)
- CGMES conversion: non-impedant equivalent branches and series compensators mapped to fictitious switches, consistent with ac line segments (#2143)
- CGMES export: ignore fictitious switches created for disconnected terminals (#2137)
- CGMES: tieflow may not be a dangling line (#2108)
- CGMES: support additional configuration for HVDC (#2125)
CGMES 3 (beta)
- CGMES 3 Improvements (#2091)
Configuration
- Add methods to get specific parameters for sensitivity and security providers (#2089)
- Import/export parameter possible values (#2122)
- Add update method for parameter extensions with map (#2117)
- Add possible values for import/export parameters when possible (#2139)
- Dummy platform config when no PlatformConfigProvider found (#2062)
- Add possible values for extensions (from present extensions modules) (#2147)
DataSource
- Fix ZIP datasource with dot in name (#2083)
IIDM
- Set Identifiable name (#2078)
- Fix NPE: no NPE thrown when equipment added and validation level has been invalidated (#2087)
- Throw exception when trying to access component of removed equipment (#2093)
- Bump XIIDM to 1.8 Breaking Change
- Fix IdentifiableShortCircuitAdderImpl implementation (generics) (#2138)
- Move GeneratorStartup extension to powsybl-core (#2144)
Short circuits
- Improve three phase shortcircuits API to support elementary computation (#1947)
Matpower
- Matpower export (#2130)
Modifications
- Fix: connectivity is symmetrical when attaching a voltage level on a line (#2106)
Power Factory
- Load converter (#2071)
- PowerFactory study case custom JSON serialization (#2101)
- PowerFactory DB study case loader (#2035)
PSS/E
- PSSE Converter: Fix error when moving the shunt admittance between ideal ratio and transmission impedance (#2116)
LoadFlow - Add distributed active power to load flow result (#2141)
Security Analysis
- Bus and branch result extension (#2126)
TripleStore
- Triplestore: remove prefix using indexOf instead of replaceAll (#2084)
- Remove Jena triplestore implementation (#2123)
XML
- Manually clear the inputstream on various XMLInputFactory objects to allow gc. Make the code more uniform. (#2128)
Quality