org.jboss.resteasy.wadl.ResteasyWadlServlet Maven / Gradle / Ivy
The newest version!
package org.jboss.resteasy.wadl;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.ws.rs.core.MediaType;
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
import org.jboss.resteasy.spi.ResteasyDeployment;
import org.jboss.resteasy.wadl.i18n.LogMessages;
import org.jboss.resteasy.wadl.i18n.Messages;
/**
* @author Weinan Li
* This servlet does not support grammars.
* Use @org.jboss.resteasy.wadl.ResteasyWadlDefaultServlet instead.
*/
// TODO: remove this in master in proper time
@Deprecated
public class ResteasyWadlServlet extends HttpServlet {
private Map services;
private ResteasyWadlServletWriter wadlWriter = new ResteasyWadlServletWriter();
public ResteasyWadlServletWriter getWadlWriter() {
return wadlWriter;
}
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
LogMessages.LOGGER.debug(Messages.MESSAGES.loadingResteasyWadlServlet());
scanResources();
LogMessages.LOGGER.debug(Messages.MESSAGES.resteasyWadlServletLoaded());
// make it possible to get to us for rescanning
ServletContext servletContext = config.getServletContext();
servletContext.setAttribute(getClass().getName(), this);
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
String pathInfo = req.getPathInfo();
String uri = req.getRequestURL().toString();
uri = uri.substring(0, uri.length() - req.getServletPath().length());
LogMessages.LOGGER.debug(Messages.MESSAGES.servingPathInfo(pathInfo));
LogMessages.LOGGER.debug(Messages.MESSAGES.query(req.getQueryString()));
if (this.services == null)
scanResources();
if (this.services == null) {
resp.sendError(503, Messages.MESSAGES.noResteasyDeployments());
return;
}
resp.setContentType(MediaType.APPLICATION_XML);
this.wadlWriter.writeWadl(uri, req, resp, services);
}
public void scanResources() {
ServletConfig config = getServletConfig();
ServletContext servletContext = config.getServletContext();
@SuppressWarnings(value = "unchecked")
Map deployments = (Map) servletContext
.getAttribute(ResteasyContextParameters.RESTEASY_DEPLOYMENTS);
if (deployments == null)
return;
synchronized (this) {
services = new HashMap<>();
for (Map.Entry entry : deployments.entrySet()) {
services.put(entry.getKey(), ResteasyWadlGenerator.generateServiceRegistry(entry.getValue()));
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy