ParticipantSpringWeb.java :  » Web-Framework » rife-1.6.1 » com » uwyn » rife » rep » participants » Java Open Source

Java Open Source » Web Framework » rife 1.6.1 
rife 1.6.1 » com » uwyn » rife » rep » participants » ParticipantSpringWeb.java
/*
 * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com>
 * Distributed under the terms of either:
 * - the common development and distribution license (CDDL), v1.0; or
 * - the GNU Lesser General Public License, v2.1 or later
 * $Id: ParticipantSpringWeb.java 3634 2007-01-08 21:42:24Z gbevin $
 */
package com.uwyn.rife.rep.participants;

import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Set;
import java.util.Vector;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.uwyn.rife.rep.BlockingParticipant;

public class ParticipantSpringWeb extends BlockingParticipant
{
  private BeanFactory  mBeanFactory = null;

  public ParticipantSpringWeb()
  {
    setInitializationMessage("Obtaining the Spring web application context ...");
    setCleanupMessage("Releasing the Spring web application context ...");
  }

  protected void initialize()
  {
    ServletContext   context = (ServletContext)getRepository().getContext();
    if (getParameter() != null && !getParameter().equals(""))
    {
      ContextLoader   loader = new ContextLoader();
      mBeanFactory = loader.initWebApplicationContext(new ServletContextWrapper(context));
    }
    else
    {
      mBeanFactory = WebApplicationContextUtils.getWebApplicationContext(context);
    }
  }

  protected Object _getObject()
  {
    return mBeanFactory;
  }

  protected Object _getObject(Object key)
  {
    if (null == key)
    {
      return null;
    }

    return mBeanFactory.getBean(String.valueOf(key));
  }

  public class ServletContextWrapper implements ServletContext
  {
    private ServletContext  mDelegate;
    private Vector      mInitParamNames = new Vector();

    ServletContextWrapper(ServletContext delegate)
    {
      mDelegate = delegate;

      Enumeration names_enum = mDelegate.getInitParameterNames();
      while (names_enum.hasMoreElements())
      {
        mInitParamNames.add(names_enum.nextElement());
      }
      if (!mInitParamNames.contains(ContextLoader.CONFIG_LOCATION_PARAM))
      {
        mInitParamNames.add(ContextLoader.CONFIG_LOCATION_PARAM);
      }
    }

    public Object getAttribute(String name)
    {
      return mDelegate.getAttribute(name);
    }

    public Enumeration getAttributeNames()
    {
      return mDelegate.getAttributeNames();
    }

    public ServletContext getContext(String uripath)
    {
      return mDelegate.getContext(uripath);
    }

    public String getInitParameter(String name)
    {
      if (ContextLoader.CONFIG_LOCATION_PARAM.equals(name))
      {
        return getParameter();
      }

      return mDelegate.getInitParameter(name);
    }

    public Enumeration getInitParameterNames()
    {
      return mInitParamNames.elements();
    }

    public int getMajorVersion()
    {
      return mDelegate.getMajorVersion();
    }

    public String getMimeType(String file)
    {
      return mDelegate.getMimeType(file);
    }

    public int getMinorVersion()
    {
      return mDelegate.getMinorVersion();
    }

    public RequestDispatcher getNamedDispatcher(String name)
    {
      return mDelegate.getNamedDispatcher(name);
    }

    public String getRealPath(String path)
    {
      return mDelegate.getRealPath(path);
    }

    public RequestDispatcher getRequestDispatcher(String path)
    {
      return mDelegate.getRequestDispatcher(path);
    }

    public URL getResource(String path) throws MalformedURLException
    {
      return mDelegate.getResource(path);
    }

    public InputStream getResourceAsStream(String path)
    {
      return mDelegate.getResourceAsStream(path);
    }

    public Set getResourcePaths(String path)
    {
      return mDelegate.getResourcePaths(path);
    }

    public String getServerInfo()
    {
      return mDelegate.getServerInfo();
    }

    public Servlet getServlet(String name) throws ServletException
    {
      return mDelegate.getServlet(name);
    }

    public String getServletContextName()
    {
      return mDelegate.getServletContextName();
    }

    public Enumeration getServletNames()
    {
      return mDelegate.getServletNames();
    }

    public Enumeration getServlets()
    {
      return mDelegate.getServlets();
    }

    public void log(Exception exception, String msg)
    {
      mDelegate.log(exception, msg);
    }

    public void log(String message, Throwable throwable)
    {
      mDelegate.log(message, throwable);
    }

    public void log(String msg)
    {
      mDelegate.log(msg);
    }

    public void removeAttribute(String name)
    {
      mDelegate.removeAttribute(name);
    }

    public void setAttribute(String name, Object object)
    {
      mDelegate.setAttribute(name, object);
    }
  }
}

java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.