package org.jvnet.hudson.plugins.monitoring;
import hudson.Extension;
import hudson.model.ManagementLink;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
/**
* ManagementLink of the plugin to add a link in the "/manage" page.
* @author Emeric Vernat
*/
@Extension
public class PluginManagementLink extends ManagementLink {
/**
* Mostly works like {@link hudson.model.Action#getIconFileName()}, except that
* the expected icon size is 48x48, not 24x24. So if you give
* just a file name, "/images/48x48" will be assumed.
*
* @return
* As a special case, return null to exclude this object from the management link.
* This is useful for defining {@link ManagementLink} that only shows up under
* certain circumstances.
*/
public String getIconFileName() {
return "monitor.gif";
}
/**
* Returns a short description of what this link does. This text
* is the one that's displayed in grey. This can include HTML,
* although the use of block tags is highly discouraged.
*
* Optional.
*/
public String getDescription() {
return "Monitoring of memory, cpu, http requests and more in Hudson";
}
/**
* Gets the string to be displayed.
*
* The convention is to capitalize the first letter of each word,
* such as "Test Result".
*/
public String getDisplayName() {
return "Monitoring of Hudson";
}
/**
* {@inheritDoc}
*
* <p>
* In case of {@link ManagementLink}, this value is put straight into the href attribute,
* so relative paths are interpreted against the root {@link hudson.model.Hudson} object.
*/
public String getUrlName() {
StaplerRequest req = Stapler.getCurrentRequest();
if (req != null) {
return req.getContextPath() + "/monitoring";
}
return "/monitoring";
}
}