Hi guys,
A few months ago I was developing a Confluence plugin and all was well. I have since returned with the latest Atlassian SDK. Now when I run the plugin using an 'atlas-run' command the plugin gets disabled.
This is the log output that implies there is an issue some where:
[INFO] <PLUGIN-NAME>/hello_blueprint/MyBlueprintListener.java: Some input files use or override a deprecated API.
[INFO] <PLUGIN-NAME>hello_blueprint/MyBlueprintListener.java: Recompile with -Xlint:deprecation for details.
[INFO] [talledLocalContainer] 2017-04-06 16:21:39,865 ERROR [localhost-startStop-1] [atlassian.plugin.manager.DefaultPluginManager] enableConfiguredPluginModule There was an error loading the descriptor 'null' of plugin '<PLUGIN-NAME>'. Disabling.
[INFO] [talledLocalContainer] com.atlassian.plugin.PluginParseException: Unable to load the module's display conditions: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.bsquare.emea.plugins.hello_blueprint.HierarchyContextProvider': Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.confluence.languages.LocaleManager]: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugins.createcontent.extensions.ContentTemplateModuleDescriptor.getContextProvider(ContentTemplateModuleDescriptor.java:265)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugins.createcontent.extensions.ContentTemplateModuleDescriptor.enabled(ContentTemplateModuleDescriptor.java:232)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.notifyModuleEnabled(DefaultPluginManager.java:1991)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.enableConfiguredPluginModule(DefaultPluginManager.java:1738)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.enableConfiguredPluginModules(DefaultPluginManager.java:1715)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.enableDependentPlugins(DefaultPluginManager.java:1227)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:1188)
[INFO] [talledLocalContainer] at com.atlassian.plugin.manager.DefaultPluginManager.lateStartup(DefaultPluginManager.java:634)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.ConfluencePluginManager.lateStartup(ConfluencePluginManager.java:147)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.PluginFrameworkContextListener.contextInitialized(PluginFrameworkContextListener.java:79)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
[INFO] [talledLocalContainer] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:745)
[INFO] [talledLocalContainer] Caused by: com.atlassian.plugin.web.conditions.ConditionLoadingException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '<PLUGIN-NAME>.HierarchyContextProvider': Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.confluence.languages.LocaleManager]: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebFragmentHelper.loadComponent(ConfluenceWebFragmentHelper.java:35)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebFragmentHelper.loadContextProvider(ConfluenceWebFragmentHelper.java:58)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugins.createcontent.extensions.ContentTemplateModuleDescriptor.getContextProvider(ContentTemplateModuleDescriptor.java:255)
[INFO] [talledLocalContainer] ... 22 more
[INFO] [talledLocalContainer] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '<PACKAGE_NAME>.HierarchyContextProvider': Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.confluence.languages.LocaleManager]: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.confluence.languages.LocaleManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:342)
[INFO] [talledLocalContainer] at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source)
[INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer] at com.atlassian.plugin.osgi.spring.DefaultSpringContainerAccessor.createBean(DefaultSpringContainerAccessor.java:97)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.ConfluencePluginUtils.instantiatePluginModule(ConfluencePluginUtils.java:150)
[INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebFragmentHelper.loadComponent(ConfluenceWebFragmentHelper.java:33)
[INFO] [talledLocalContainer] ... 24 moreIt seems that something in my HierarchyContextProvider method is deprecated. This is taken from the example class in the "intermediate" blueprint example that uses this class to generate a page title. The tutorial (that is found here: https://developer.atlassian.com/confdev/confluence-plugin-guide/confluence-blueprints/write-an-intermediate-blueprint-plugin) doesn't seem to reflect this change.
It should also be noted that I had changed my pom.xml to reflect the new changes to the Atlassian Spring Byte Code Scanner. The changes follow this guide: https://bitbucket.org/atlassian/atlassian-spring-scanner.
I'm unfamiliar with Java Spring but I had placed a "@Hardwired" directive about the method to see if that would achieve anything. I'm not sure it did!
If anyone has a fix/workaround for this, any help would be much appreciated!
Thanks,
Russell Bateman