+1 for the old pattern.
Do you create a ticket for it?

LieGrue,
strub


> Am 01.07.2017 um 14:29 schrieb Romain Manni-Bucau <rmannibu...@gmail.com>:
> 
> Hi guys,
> 
> just saw how javax.enterprise.inject.se.SeContainerInitializer#newInstance 
> has been implemented. I'm not sure it was based on the ref implementation but 
> - ignoring for now the OSGi issues - I don't think it works:
> 
> long exactSize = serviceLoader.spliterator().getExactSizeIfKnown();
> if(exactSize == 0)
> {
>     throw new IllegalStateException("No valid implementation of 
> SeContainerInitializer found via ServiceLoader");
> }
> else if(exactSize > 1)
> {
>     throw new IllegalStateException("Multiple implementations ("+exactSize+") 
> of SeContainerInitializer found via ServiceLoader");
> }
> return serviceLoader.iterator().next();
> 
> exactSize will be -1 since the splititerator doesnt have the size as a 
> characteristic so we'll always be not deterministic which seems not intended.
> 
> Am I missing anything?
> 
> Do we want to use the old instance = next(); if (hasNext()) fail(); pattern?
> 
> Romain Manni-Bucau
> @rmannibucau |  Blog | Old Blog | Github | LinkedIn | JavaEE Factory

Reply via email to