Package org.jruby.rack.jms

Source Code of org.jruby.rack.jms.QueueContextListener

/*
* Copyright (c) 2010-2012 Engine Yard, Inc.
* Copyright (c) 2007-2009 Sun Microsystems, Inc.
* This source code is available under the MIT license.
* See the file LICENSE.txt for details.
*/

package org.jruby.rack.jms;

import org.jruby.rack.RackApplicationFactory;
import org.jruby.rack.RackContext;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
*
* @author nicksieger
*/
public class QueueContextListener implements ServletContextListener {
    private QueueManagerFactory factory;
   
    public QueueContextListener() {
        this.factory = null;
    }
   
    public QueueContextListener(QueueManagerFactory qmf) {
        this.factory = qmf;
    }
   
    public void contextInitialized(ServletContextEvent event) {
        final ServletContext servletContext = event.getServletContext();
        RackContext rackContext = (RackContext) servletContext.getAttribute(RackApplicationFactory.RACK_CONTEXT);

        try {
            QueueManager qm = newQueueManagerFactory().newQueueManager();
            qm.init(rackContext);
            servletContext.setAttribute(QueueManager.MGR_KEY, qm);
        } catch (Exception e) {
            servletContext.log("Error initializing queue manager:" + e.getMessage(), e);
        }
    }

    public void contextDestroyed(ServletContextEvent event) {
        QueueManager qm = (QueueManager) event.getServletContext().getAttribute(QueueManager.MGR_KEY);
        if (qm != null) {
            event.getServletContext().removeAttribute(QueueManager.MGR_KEY);
            qm.destroy();
        }
    }

    private QueueManagerFactory newQueueManagerFactory() {
        if (factory != null) {
            return factory;
        }
        return new QueueManagerFactory() {
            public QueueManager newQueueManager() {
                return new DefaultQueueManager();
            }
        };
    }
}
TOP

Related Classes of org.jruby.rack.jms.QueueContextListener

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.