Package com.gentics.cr.rest

Source Code of com.gentics.cr.rest.RESTNavigation

/**
*
*/
package com.gentics.cr.rest;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;

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

import org.apache.log4j.Logger;

import com.gentics.api.lib.resolving.Resolvable;
import com.gentics.cr.CRServletConfig;
import com.gentics.cr.monitoring.MonitorFactory;
import com.gentics.cr.monitoring.UseCase;
import com.gentics.cr.util.BeanWrapper;
import com.gentics.cr.util.CRNavigationRequestBuilder;
import com.gentics.cr.util.HttpSessionWrapper;
import com.gentics.cr.util.response.ServletResponseTypeSetter;

/**
* @author Christopher
*
*/
public class RESTNavigation extends HttpServlet {

  /**
   *
   */
  private static final long serialVersionUID = 557189789791823626L;

  /**
   * Log4j logger for debug and error messages;
   */
  private Logger log = Logger.getLogger(RESTNavigation.class);

  /**
   * Configuration for the Servlet.
   */
  private CRServletConfig crConf;

  private RESTNavigationContainer container;

  public void init(ServletConfig config) throws ServletException {

    super.init(config);
    crConf = new CRServletConfig(config);
    container = new RESTNavigationContainer(crConf);
  }

  @Override
  public void destroy() {
    if (this.container != null)
      this.container.finalize();
  }

  public void doService(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
    UseCase uc = MonitorFactory.startUseCase("RESTServlet(" + request.getServletPath() + ")");
    this.log.debug("Request:" + request.getQueryString());

    // starttime
    long s = new Date().getTime();
    HashMap<String, Resolvable> objects = new HashMap<String, Resolvable>();
    objects.put("request", new BeanWrapper(request));
    objects.put("session", new HttpSessionWrapper(request.getSession()));
    CRNavigationRequestBuilder requestBuilder = new CRNavigationRequestBuilder(request, crConf);
    container.processService(requestBuilder, objects, response.getOutputStream(), new ServletResponseTypeSetter(
        response));
    response.getOutputStream().flush();
    response.getOutputStream().close();
    // endtime
    long e = new Date().getTime();
    this.log.info("Executiontime for " + request.getQueryString() + ":" + (e - s));
    uc.stop();
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doService(request, response);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doService(request, response);
  }

}
TOP

Related Classes of com.gentics.cr.rest.RESTNavigation

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.