-
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