8004371: (props) Properties.loadFromXML needs small footprint XML parser as fallback when JAXP is not present
Alan Bateman
Alan.Bateman at oracle.com
Wed Dec 5 18:58:19 UTC 2012
A while back [1], I brought up the issue of the Properties
storeToXML/loadFromXML methods being problematic for our efforts to
modularize the JDK and also the Compact Profiles effort. At the time I
mentioned that we were thinking of including a small footprint XML
parser that we could use in the base module (when JAXP is not present)
and also use in the compact1 profile. The preparatory work to create a
JDK-internal provider mechanism and the spec work to only require an
implementation support UTF-8 and UTF-16 is already in jdk8, now it's
time for the next step.
Joe Wang has taken the JSR-280 RI, which includes some code from SAX,
and stripped it down so that it's reasonably small (less than 50k in a
compressed rt.jar). We've hooked it up to Properties so that it works as
a fallback when there isn't an XmlPropertiesProvider present. There's
still a good bit of clean-up required and there's probably more that can
be pulled out but it's at the point where we can start early review. To
that end, the webrev with everything is here:
http://cr.openjdk.java.net/~alanb/8004371/webrev/
For tests then I've changed the LoadAndStoreXML test that I added
recently to exercise the implementation. Otherwise, the implementation
will only be used when testing the smallest profile (compact1, brewing
in the jdk8/profiles forest) or when it gets pulled into the downstream
jigsaw forest. Joe has some additional tests and we need to compare
these with existing tests to see if it's worth converting them.
One issue that I'm still mulling over, as least for the profiles effort,
is whether to only include the fallback provider in the smallest profile
as it won't be used otherwise. If the eventual size isn't too
significant then it might not be worth it of course.
-Alan.
[1]
http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-October/011648.html
More information about the core-libs-dev
mailing list