8000354: (props) Properties.storeToXML/loadFromXML need to allow for alternative implementations

Remi Forax forax at univ-mlv.fr
Fri Oct 5 21:31:25 UTC 2012

Hi Alan,
just some minor nits,
in Properties.XmlSupport, 'provider' should be PROVIDER because it's a 
constant and
instead of using loadProvider(), you should initialize PROVIDER in a 
static block.

line 1172, you declare a provider and line 1174, you initialize it,
I think line 1174 should do the declaration and the initialization on 
the same line.


On 10/05/2012 03:41 PM, Alan Bateman wrote:
> Properties defines the loadFromXML and storeToXML methods for 
> loading/storing properties in XML format. These methods are 
> problematic for our efforts to modularize the JDK because of the 
> dependency on XML. They are also problematic for the Compact Profiles 
> proposal [1] as it is unlikely that JAXP will be present in the 
> smallest profile.
> As the XML parsing needs of Properties is relatively simple we are 
> thinking about including a small footprint parser that is sufficient 
> for its needs. Joe Wang is looking this. In preparation for this we 
> need to decouple Properties from the parser API that it uses and this 
> is what the proposal here is about.
> The webrev with the proposed changes is here:
> http://cr.openjdk.java.net/~alanb/8000354/webrev/
> Basically it introduces a JDK internal provider interface to which the 
> loadFromXML and storeToXML methods delegate. The existing code that 
> uses JAXP is moved into a provider implementation and will be used 
> when present. When not present then the intention is that it will 
> fallback to a default implementation that is the small footprint 
> provider that Joe will add later. This approach ensures that we 
> maintain compatibility (it remains to be seen whether we will have to 
> deal with a few subtle issues when using the tiny parser). For test 
> purposes there is a system property for overriding the provider, this 
> is also why the system class loader is used as the initiating loader.
> I should explain that when I say  "JDK internal provider interface" 
> then the service type is in sun.util.spi for now. Maybe in the future 
> it may be necessary to define a standard provider interface but it is 
> not needed at this time (in addition it would require getting the 
> security right to do that).
> Thanks,
> Alan.
> [1] http://openjdk.java.net/jeps/161

More information about the core-libs-dev mailing list