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

Miroslav Kos miroslav.kos at oracle.com
Mon Oct 5 11:52:58 UTC 2015



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?

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