package de.is24.util.monitoring.jmx;
import org.springframework.web.context.ServletContextAware;
import javax.servlet.ServletContext;
/**
* This classes provides the contextPath of the servletContext as jmx prefix for the {@link InApplicationMonitorJMXConnector}.
* This should be used for webApps, cause multiple webApps create multiple instances of the {@link InApplicationMonitorJMXConnector} and override eachother.
*
* @see InApplicationMonitorJMXConnector
*/
public class WebContextJmxAppMon4JNamingStrategy implements JmxAppMon4JNamingStrategy, ServletContextAware {
private String prefix = "is24";
/**
* @see JmxAppMon4JNamingStrategy#getJmxPrefix()
* @return the String provided by the {@link ServletContext#getContext(String)} method
*/
public String getJmxPrefix() {
return prefix;
}
/**
* @see ServletContextAware#setServletContext(ServletContext)
* @param servletContext the servlet context
*/
public void setServletContext(ServletContext servletContext) {
if (servletContext == null) {
throw new IllegalArgumentException("servletContext is null");
}
String contextPath = servletContext.getContextPath();
if ((contextPath != null) && (contextPath.length() > 1)) {
// use context path as jmx prefix
prefix = contextPath.replaceFirst("/", "");
} else {
// use default jmx prefix
}
}
}