You are correct that the discussion on the serviceLoader may be off-topic wrt JEP 264. I believe I mentioned that currently Log4j only supports binding with a single implementation as well. But we don’t take the first, we take the one with the highest priority.
Ralph > On Sep 30, 2015, at 9:50 AM, Daniel Fuchs <daniel.fu...@oracle.com> wrote: > > Hi Ralph, > > On 30/09/15 18:30, Ralph Goers wrote: >> What would be preferable is to have the serviceLoader accept “criteria” >> (which are callbacks) that can evaluate each of the located services based >> on any additional properties that are included in the properties file and >> either eliminate them or return a “ranking". The serviceLoader would then >> end up with a set of eligible services in their preferred order. > > I understand you may have another use case in mind, but in > what concerns jep264's LoggerFinder though - I don't think > that would be useful. The JDK can only use one LoggerFinder > service implementation, and if more than one is found, it most > probably indicates a configuration error - where several > implementations have been put by mistake on the classpath. > > Just taking the first and silently continue could end up in > strange misbehavior, where the application's developer would > not see the expected debug traces - because she configured > one framework but it's the other that happens to be used. > > I believe it's a better idea to fail fast in this case. > > best regards, > > -- daniel > >