[ 
https://issues.apache.org/jira/browse/GERONIMO-5178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847294#action_12847294
 ] 

Rick McGuire commented on GERONIMO-5178:
----------------------------------------

Unfortunately, there has been no guidance on any of the specifications on how 
this should be handled.  Most of the spec implementations would fail 
immediately if there was a classloading or instantiation failure when 
processing any of the META-INF/services files it located, so that's how I ended 
up coding the ProviderLocator.getServices() call.  We end up with multiple 
levels of log points in this whole stack, so I suspect throwing the exception 
is the appropriate way to handle this.  

> Inconsistent handling of META-INF/services files by different Geronmo specs. 
> -----------------------------------------------------------------------------
>
>                 Key: GERONIMO-5178
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-5178
>             Project: Geronimo
>          Issue Type: Sub-task
>      Security Level: public(Regular issues) 
>    Affects Versions: 3.0
>            Reporter: Rick McGuire
>            Assignee: Rick McGuire
>             Fix For: 3.0
>
>
> A number of the Geronimo specs use the provider resolution pattern defined by 
> the ServiceLoader class in Java 6 to resolve different provider classes.  In 
> this pattern, a file with a given class name in the META-INF/services 
> directory can define one or more provider classes for a given source 
> interface name.  As implemented by the ServiceLoader class, these files can 
> contain multiple lines with pure comment lines and line comments on lines 
> that define classes, as well as multiple providers defined per file.  Thus a 
> file like this would be considered valiid:
> # A set of provider classes for the blah.blah interface
> org.apache.geronimo.foo.BlahImpl  # The default first one 
> org.apache.geronimo.bar.BlahImpl  # The secondary fall back. 
> The different spec projects that use these files parse them under different 
> assumptions:
> - Some unilaterally take the first line without any comment processing at all 
> or recognition that there might be multiple providers defined per file. 
> - Some projects allow for pure comment lines but don't parse for comments on 
> a definition line. 
> - Not all projects are opening these files assuming a utf-8 encoding. 
> This could best be solved by refactoring the code to use some common methods. 
>  This refactoring will also allow OSGi-awareness to be added to the service 
> file lookups.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to