had a stab at converting our existing app from being transformer based to using spring-scanner-2. After the change, it seems to work fine on all Atlassian products with the sole exception of Fecru.
In Fecru, the app fails to install with the following error:
[ThreadPoolAsyncTaskExecutor::Thread 14 ] org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor DependencyWaiterApplicationContextExecutor-fail - Unable to create application context for [my.plugin.key], unsatisfied dependencies: none
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.atlassian.com/schema/atlassian-scanner/2]
Offending resource: URL [bundle://94.0:0/META-INF/spring/spring-context.xml]
Based on a web search, the common mistake appears to be some sort of library conflict, or forgetting to use ‘provided’ for spring, but I can’t see that we’re doing this. Have checked the resulting JAR and can’t see any packages that seem like they should affect this, and would also expect this to fail on Jira/Confluence et.al. and not just Fecru if we were including something we shouldn’t.
Apparently an instance of DefaultNamespaceHandlerResolver needs to find a META-INF/spring.handlers file containing the scanner/2 namespace via the active class loader - but figuring out how this all fits together and why it isn’t working in Fecru… well… Debugging this is looking pretty non-trivial at this point, so I’m considering just putting it on the back burner and not spend more time on it for now.
Before I abandon it though, I wanted to check if anyone else has any ideas? Or experiences running spring-scanner(2) on Fecru in general, successful or not?