[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