[9] Review request JDK-8131334: SAAJ Plugability Layer: using java.util.ServiceLoader

Georgiy Rakov georgiy.rakov at oracle.com
Mon Oct 5 13:20:13 UTC 2015

On 05.10.2015 14:52, Miroslav Kos wrote:
> On 02/10/15 19:36, Georgiy Rakov wrote:
>> On 02.10.2015 18:52, Miroslav Kos wrote:
>>> There is an updated version: 
>>> http://cr.openjdk.java.net/~mkos/8131334/specdiff.07/index.html
>>> Two changes:
>>> 1) SAAJMetaFactory javadoc - new (self contained) paragraph 
>>> describing the algorithm for the factory + apiNote
>>> 2) package javadoc: added back SAAJMetaFactory + "all these 
>>> factories define newInstance method ..." changed to "first three 
>>> ..." + sentence about instantiating SAAJMetaFactory
>>> On 02/10/15 16:21, Georgiy Rakov wrote:
>>>> According to the spec ofSAAJMetaFactory.newInstance method there is 
>>>> the last step of lookup procedure:
>>>> * <LI>Default to 
>>>> com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl.
>>> I mentioned the default impl. I believe it's specific enough - in 
>>> jdk8 version there is nothing regarding this ...
>>>> If this step is still performed, I believe this should be mentioned 
>>>> like it's made in the last step of the lookup procedure described 
>>>> in javax.xml.soap: "...or platform default implementation is 
>>>> used...". BTW it would be good to mention what newMessageFactory 
>>>> and newSOAPFactory of this default implementation return (I guess 
>>>> the default implementations of corresponding factories).
>>> I don't think it's necessary.
>> From conformance testing perspective it's not clear what to expect 
>> from MessageFactory.newInstance and SOAPFactory.newInstance when 
>> there is no configuration at all (ServiceLoader is not configured, 
>> jaxm.properties is missing, corresponding system property is not  
>> set). For instance returning null doesn't contradict spec. Not 
>> specifying it actually means that this is left up to implementation. 
>> Any conformance tests written and expecting non-null result could be 
>> successfully challenged by an external implementer returning null 
>> since there is no spec about it.
> Sorry, it was misunderstanding here - I thought you wanted me to 
> specify the actual type of platform default implementations - 
> specifying null/not null makes definitely sense.
> I added not null statements to SAAJMetaFactory methods' javadoc:
> Returns:
>     a|SOAPFactory|
>     <http://cr.openjdk.java.net/%7Emkos/8131334/specdiff.08/javax/xml/soap/SOAPFactory.html>,notnull
> Hopefully it's enough?
Yep, it looks enough for me.

Thank you,
> Thanks
> Miran
>> Thus we merely cannot write conformance tests verifying 
>> MessageFactory and SOAPFactory default implementations if this is the 
>> way how they are to be obtained. I'm telling about the way of 
>> obtaining the default implementation because there are actually 
>> another way that is to configure ServiceLoader to return default 
>> implementation. But I don't like this idea, since there are other 
>> questions arise, for instance if we should normatively specify that 
>> ServiceLoader should be configured to return default implementation.
>> The rest looks great.
>> Thanks,
>> Georgiy.

More information about the core-libs-dev mailing list