![JAR search and dependency download from the Maven repository](/logo.png)
io.hawt.web.plugin.PluginServlet Maven / Gradle / Ivy
package io.hawt.web.plugin;
import java.beans.Introspector;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.management.ManagementFactory;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import io.hawt.web.ServletHelpers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Plugin servlet
*/
public class PluginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(PluginServlet.class);
private static final String[] PLUGIN_ATTRIBUTES = {
"Url",
"Scope",
"Module",
"RemoteEntryFileName",
"BustRemoteEntryCache",
"PluginEntry"
};
private static final String[] MANDATORY_PLUGIN_ATTRIBUTES = {
"Url",
"Scope",
"Module"
};
private MBeanServer mBeanServer;
private ObjectName pluginQuery;
@Override
public void init() throws ServletException {
mBeanServer = ManagementFactory.getPlatformMBeanServer();
try {
pluginQuery = new ObjectName("hawtio:type=plugin,name=*");
} catch (MalformedObjectNameException e) {
LOG.warn("Failed to create object name:", e);
}
super.init();
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/json");
final PrintWriter out = response.getWriter();
Set plugins = mBeanServer.queryMBeans(pluginQuery, null);
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy