Package org.jboss.resteasy.jsapi

Source Code of org.jboss.resteasy.jsapi.JSAPIServlet

package org.jboss.resteasy.jsapi;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jboss.resteasy.core.ResourceMethodRegistry;
import org.jboss.resteasy.logging.Logger;
import org.jboss.resteasy.spi.Registry;
import org.jboss.resteasy.spi.ResteasyProviderFactory;

/**
* @author Stéphane Épardaud <stef@epardaud.fr>
*/
public class JSAPIServlet extends HttpServlet
{

  private static final long serialVersionUID = -1985015444704126795L;

  private final static Logger logger = Logger.getLogger(JSAPIServlet.class);
  private ServiceRegistry service;

  private JSAPIWriter apiWriter;

  @Override
  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
    if (logger.isDebugEnabled())
      logger.info("Loading JSAPI Servlet");

    scanResources();
   
    if (logger.isDebugEnabled())
      logger.debug("JSAPIServlet loaded");

    // 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 ServletException, IOException
  {
    String pathInfo = req.getPathInfo();
    String uri = req.getRequestURL().toString();
    uri = uri.substring(0, uri.length() - req.getServletPath().length());
    if (logger.isDebugEnabled())
    {
      logger.debug("Serving " + pathInfo);
      logger.debug("Query " + req.getQueryString());
    }
    PrintWriter printWriter = resp.getWriter();
    this.apiWriter.writeJavaScript(uri, printWriter, service);
  }

  public void scanResources(){

    ServletConfig config = getServletConfig();
    ServletContext servletContext = config .getServletContext();
    ResourceMethodRegistry registry = (ResourceMethodRegistry) servletContext
    .getAttribute(Registry.class.getName());
    ResteasyProviderFactory providerFactory =
      (ResteasyProviderFactory) servletContext.getAttribute(ResteasyProviderFactory.class.getName());

    String restPath = servletContext
    .getInitParameter("resteasy.servlet.mapping.prefix");

    service = new ServiceRegistry(null, registry, providerFactory, null);
    apiWriter = new JSAPIWriter(restPath);
  }
}
TOP

Related Classes of org.jboss.resteasy.jsapi.JSAPIServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.