Package org.jboss.soa.esb.servlet

Source Code of org.jboss.soa.esb.servlet.ConfigListener

package org.jboss.soa.esb.servlet;

import java.io.File;

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

import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.listeners.config.ConfigurationController;

/**
* Context listener used to configure the ESB in a war environment.
* @author kevin
*/
public class ConfigListener implements ServletContextListener
{
    /**
     * The configuration controller.
     */
    private ConfigurationController configurationController ;
   
    /**
     * Initialise the ESB.
     * @param servletContextEvent The initialised context event.
     */
    public void contextInitialized(final ServletContextEvent servletContextEvent)
    {
        final ServletContext servletContext = servletContextEvent.getServletContext() ;
       
        servletContext.log("Initialising ESB Configuration Controller") ;
        final String catalinaHome = System.getProperty("catalina.home") ;
        if (catalinaHome == null)
        {
            servletContext.log("***** Error initialising context, catalina home not set") ;
        }
        else
        {
            final File catalinaHomeDir = new File(catalinaHome) ;
            final File confDir = new File(catalinaHomeDir, "conf") ;
           
            final File propertyFile = new File(confDir, "jbossesb-properties.xml") ;
            final String absPropertyFile = propertyFile.getAbsolutePath() ;
           
            System.setProperty(Environment.PROPERTIES_FILE, "abs://" + absPropertyFile) ;
           
            servletContext.log("ESB Property configuration obtained from file: " + absPropertyFile);
           
            final File juddiPropertyFile = new File(confDir, "juddi.properties") ;
            final String absJuddiPropertyFile = juddiPropertyFile.getAbsolutePath() ;
            System.setProperty("juddi.propertiesFile", absJuddiPropertyFile) ;
           
            servletContext.log("ESB juddi configuration obtained from file: " + absJuddiPropertyFile) ;
           
            final File configFile = new File(confDir, "jboss-esb.xml") ;
            final String absConfigFile = configFile.getAbsolutePath() ;
           
            servletContext.log("ESB configuration obtained from file: " + absConfigFile) ;
           
            configurationController = new ConfigurationController(absConfigFile, null) ;
            new Thread(configurationController).start() ;
        }
    }

    /**
     * Terminate the ESB.
     * @param servletContextEvent The destroyed context event.
     */
    public void contextDestroyed(final ServletContextEvent servletContextEvent)
    {
        if (configurationController != null)
        {
            final ServletContext servletContext = servletContextEvent.getServletContext() ;
           
            servletContext.log("ESB starting termination") ;
           
            configurationController.requestEnd() ;
            configurationController.waitUntilEnded() ;
           
            servletContext.log("ESB terminated") ;
        }
    }
}
TOP

Related Classes of org.jboss.soa.esb.servlet.ConfigListener

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.