public void onEvent()

in extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java [47:86]


    public void onEvent(WeavingEvent evt)
    {
        if (evt instanceof TaintedEvent)
        {
            _tainted = true;
        } else if (evt instanceof RefreshBeginEvent)
        {
            RefreshBeginEvent refreshEvent = (RefreshBeginEvent) evt;
            if (_tainted)
            {
                _tainted = false;
                HttpServletRequest req = (HttpServletRequest) refreshEvent.getRequest();
                //TODO plug reloadable classloader in here temporarily
                //as context classloader, then restart the container
                //then restore the old classloader
                //ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
                //ClassLoader tempClassLoader = new ThrowAwayClassloader(oldClassLoader);
                //Thread.currentThread().setContextClassLoader(tempClassLoader);
                try
                {
                    OpenWebBeansContainerControl container = (OpenWebBeansContainerControl) CdiContainerLoader
                            .getCdiContainer();
                    container.init();

                    container.getContextControl(req.getServletContext(),
                            req.getSession()).stopContexts();
                    container.shutdown(new ServletContextEvent(req.getServletContext()));

                    CdiContainerLoader.getCdiContainer().boot(new ServletContextEvent(req.getServletContext()));

                    container.getContextControl(req.getServletContext(),
                            req.getSession()).startContexts();
                }
                finally
                {
                    //Thread.currentThread().setContextClassLoader(oldClassLoader);
                }
            }
        }
    }