Plugins are disabled during startup due to unsatisfied dependencies errors
Platform Notice: Server and Data Center Only. This article only applies to Atlassian products on the server and data center platforms.
During startup, Confluence are unable to enable certain plugins.
The following appears in the atlassian-confluence
2016-07-05 18:36:36,714 ERROR [Timer-0] [internal.dependencies.startup.DependencyWaiterApplicationContextExecutor] fail Unable to create application context for [com.atlassian.streams.aggregator-plugin], unsatisfied dependencies: Dependency on [(objectClass=com.atlassian.streams.spi.FormatPreferenceProvider)] (from bean [&formatPreferenceProvider]), Dependency on [(objectClass=com.atlassian.streams.spi.EntityResolver)] (from bean [&entityResolvers]) org.springframework.context.ApplicationContextException: Application context initialization for 'com.atlassian.streams.aggregator-plugin' has timed out
The error above shows that the plugin com.atlassian.confluence.plugins.confluence-business-blueprints are unable to be startup due to unsatisfied dependency on the objectClass=com.atlassian.streams.spi.EntityResolver.
The former plugin has a plugin system dependencies with the latter plugin which are not visible to this user. It's crucial that the latter objectClass has started in order for the former plugin to startup properly.
There are various reasons that the latter plugin are not started up. This could be that it has another dependencies to another disabled plugin. Hence, it's important that we look into the first error message that's displayed in the atlassian-confluence.log right after Confluence startup logs.
Assess whether the dependent plugin is disabled, and if necessary enable it:
Shut Down Confluence.
Run the following query against your database:
select * from BANDANA where BANDANAKEY='plugin.manager.state.Map';
In the example above, check for the plugin that's similar to the offending ObjectClass, "com.atlassian.streams.spi.EntityResolver"XML
'<map> <entry> <string>com.atlassian.confluence.plugins.confluence-hipchat-integration-plugin</string> <boolean>false</boolean> </entry> <entry> <string>com.atlassian.streams.confluence</string> <boolean>false</boolean> </entry> <entry> <string>com.atlassian.confluence.ext.usage</string> <boolean>true</boolean> </entry> </map>'
In this example com.atlassian.streams.confluence has been set to
Remove the plugin entry from the map, and update the map in the database. This will enable the specific offending plugin, while keeping the status for the other plugins. Note that the offending plugin is deleted starting from the tag <entry> and the closing tag </entry>.
update BANDANA set BANDANAVALUE= '<map> <entry> <string>com.atlassian.confluence.plugins.confluence-hipchat-integration-plugin</string> <boolean>false</boolean> </entry> <entry> <string>com.atlassian.confluence.ext.usage</string> <boolean>true</boolean> </entry> </map>' where BANDANAKEY='plugin.manager.state.Map';