avoid runtime package scanning to discover TypeConverters
---------------------------------------------------------

                 Key: CAMEL-4233
                 URL: https://issues.apache.org/jira/browse/CAMEL-4233
             Project: Camel
          Issue Type: Improvement
            Reporter: james strachan


Package scanning to discover classes annotated with @Converter is slow. Plus on 
many containers (especially commercial JEE containers) its not even possible; 
since ClassLoader.getResource() doesn't often return file system based URIs you 
can easily convert to a java.io.File so you can list files in a directory.

Finding known resources/classes in class loaders generally works; scanning 
packages is generally more problematic - as well as being slow.

So it would be better if Camel could use a text file per jar containing all the 
fully qualified class names of the converters to use. Then no package scanning 
is required. Or rather we only need to use package scanning if a text file 
contains packages (rather than fully qualified classes). i.e. do the package 
scanning at build time (when you have full access to the file system :) rather 
than at runtime when you generally don't have access to the files - and 
expanding jars to look inside them is awfully slow.

In addition it'd be great if we added a maven plugin - or Java compiler 
AnnotationProcessor we can use with the compile step - to generate the 
META-INF/services/org/apache/camel/TypeConverter file automatically as part of 
the build. Then users don't even have to think about it; they just add 
@Converter to a class and the plugin generates the text file as part of the 
build., using fully qualified class names - so no package scanning required at 
runtime - and much faster startup times too


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to