-
Suggestion
-
Resolution: Obsolete
-
None
-
None
https://extranet.atlassian.com/display/SUPPORT/2009/05/01/A+better+500page.jsp
Basically we would like to have a sorted list of the plugins currently enabled in the instance, Atlassian Supported and Unsupported. I couldn't think of an elegant, easy to maintain, way of doing it since there isn't a 'support' flag on the plugin objects. You can maybe pull it from the plugins xml file that the Plugin Repository uses but that seemed like a lot of work. So I just brute forced it:
<h3>Plugins</h3> <h4>Atlassian Supported</h4> <ul class="plugins"> <% if (confluenceInfo != null) { try { //block for Atlassian Supported Plugin listing for (Iterator it = confluenceInfo.getEnabledPlugins().iterator(); it.hasNext();) { Plugin plugin = (Plugin) it.next(); PluginInformation pluginInfo = plugin.getPluginInformation(); String pluginName = plugin.getName(); String pluginKey = plugin.getKey(); String pluginVersion = pluginInfo == null ? "N/A" : pluginInfo.getVersion(); boolean atlSupport = false; //supported listing as of 2.10.2 %> <%! String[] supported = new String[] {"com.atlassian.confluence.extra.applinks", "com.atlassian.confluence.ext.mailpage", "com.atlassian.confluence.extra.sharepoint", "confluence.menu.add","confluence.sections.admin", "confluence.macros.advanced", "confluence.sections.attachments", "com.atlassian.confluence.plugins.attachmentExtractors", "confluence.macros.basic", "confluence.sections.browse", "confluence.extra.chart", "com.atlassian.confluence.themes.clickr", "confluence.macros.code", "confluence.comment.action", "confluence.repository.client", "confluence.extra.attachments", "com.atlassian.confluence.plugins.xmlrpc.bloggingrpc", "com.atlassian.confluence.contributors", "confluence.macros.html","confluence.extra.confluencerpc", "com.atlassian.confluence.ext.usage", "confluence.content.action.menu", "confluence.sections.page.temp", "confluence.sections.content.metadata", "confluence.extractors.core", "confluence.listeners.core", "confluence.converters.core", "confluence.lifecycle.core", "confluence.macros.dashboard", "com.atlassian.confluence.themes.default", "confluence.sections.admin.indexing", "confluence.extra.dynamictasklist2", "confluence.sections.profile.edit", "confluence.languages.fr_FR", "confluence.languages.de_DE", "confluence.sections.dashboard.global", "confluence.sections.labels", "confluence.extra.impresence2", "confluence.extra.information", "confluence.extra.jira", "confluence.extra.layout", "com.atlassian.confluence.themes.leftnavigation", "confluence.extra.livesearch", "confluence.sections.news", "com.atlassian.confluence.extra.officeconnector", "confluence.sections.page.operations", "confluence.search.mappers.lucene", "confluence.sections.page", "com.atlassian.confluence.plugins.pagetree", "confluence.sections.page.actions", "confluence.sections.profile", "confluence.sections.admin.generalconfig", "confluence.sections.search.view", "com.atlassian.confluence.plugins.socialbookmarking", "confluence.sections.space.actions", "confluence.sections.space.admin", "confluence.sections.space.advanced", "confluence.sections.space.browse", "confluence.sections.space", "confluence.sections.space.labels", "confluence.sections.space.pages", "confluence.web.resources", "org.randombits.confluence.toc", "confluence.extra.masterdetail", "com.atlassian.confluence.tinymceplugin", "com.atlassian.confluence.plugins.uwc.uwcimporter-adminpanel", "confluence.admin.user", "confluence.extra.userlister", "confluence.user.menu", "confluence.sections.profile.view", "com.atlassian.confluence.extra.widgetconnector", "confluence.renderer.components"}; %> <% for (int x= 0; x < supported.length; x++) if (pluginKey.equals(supported[x])) { atlSupport = true; break; } if (pluginVersion == null) // sometimes the version isn't defined by the plugin pluginVersion = "N/A"; if (atlSupport) {%> <li><%= GeneralUtil.htmlEncode(pluginName) %> (<%= GeneralUtil.htmlEncode(pluginKey) %>, Version: <%= pluginVersion %>)</li> <% }} %> <h4>Unsupported</h4> <% //block for Unsupported Plugin listing for (Iterator it = confluenceInfo.getEnabledPlugins().iterator(); it.hasNext();) { Plugin plugin = (Plugin) it.next(); PluginInformation pluginInfo = plugin.getPluginInformation(); String pluginName = plugin.getName(); String pluginKey = plugin.getKey(); String pluginVersion = pluginInfo == null ? "N/A" : pluginInfo.getVersion(); boolean atlSupport = false; for (int x= 0; x < supported.length; x++) if (pluginKey.equals(supported[x])) { atlSupport = true; break; } if (pluginVersion == null) // sometimes the version isn't defined by the plugin pluginVersion = "N/A"; if (!atlSupport) {%> <li><%= GeneralUtil.htmlEncode(pluginName) %> (<%= GeneralUtil.htmlEncode(pluginKey) %>, Version: <%= pluginVersion %>)</li> <% }} } catch (Exception e) { %> <li>Error retrieving plugin information: <%= GeneralUtil.htmlEncode(e.toString()) %></li> <% } } else { %> <li>No plugin information available.</li> <% } %> </ul>
Also please add the Server Base Url to the 500page, perhaps below the servlet version:
Server Base Url: <%= GeneralUtil.getGlobalSettings().getBaseUrl() %><br>
Thanks,
Maleko
- is related to
-
CONFSERVER-16278 500.jsp requires a database connection, to report errors caused by database connection pool timeout
- Closed
-
CONFSERVER-17024 Improve instructions on the Confluence error page (500.jsp)
- Closed
-
CONFSERVER-18100 Change 500page.jsp so it informs users where to zip log files and submit to us
- Closed
- relates to
-
CONFSERVER-12404 Restrict the transmission of Confluence version details
- Closed