Fast @Converter loading in uber-jar ----------------------------------- Key: CAMEL-4009 URL: https://issues.apache.org/jira/browse/CAMEL-4009 Project: Camel Issue Type: Improvement Components: camel-core Reporter: Arkadi Shishlov Priority: Minor Attachments: apache-camel-r1127037-fast-TypeConverter-loading-in-uber-jar.diff
Currently, the @Converter converters are loaded as follows {noformat} for package in TypeConverter meta-inf resource get package url from classloader if url is jar for entries in jar if entry match package check annotation {noformat} This is very inefficient approach when application is packaged into uber-jar as expensive iteration is performed multiple times over same jar. The attached patch changes loop into: {noformat} for package in TypeConverter meta-inf resource get package url from classloader create map url -> package names for url in distinct url if jar for entries in jar for package in packages if entry match package check annotation {noformat} With this patch I was able to cut startup time significantly from 15sec spent on @Converter-s load to 2sec on 45MB 29k entries uber-jar. I understand that the solution is not pretty but resolves a very practical problem. Let me know if you want me to polish it and update the javadoc. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira