001 /*
002 * Copyright (C) The Apache Software Foundation. All rights reserved.
003 *
004 * This software is published under the terms of the Apache Software License
005 * version 1.1, a copy of which has been included with this distribution in
006 * the LICENSE file.
007 *
008 * $Id: InitMessengerServlet.java 155459 2005-02-26 13:24:44Z dirkv $
009 */
010 package org.apache.commons.messenger;
011
012 import java.net.URL;
013
014 import javax.servlet.ServletException;
015 import javax.servlet.http.HttpServlet;
016
017
018 /** <p><code>InitMessengerServlet</code> is a simple servlet that
019 * will initialize the MessengerManager from a URL specified in the
020 * web.xml deployment descriptor.</p>
021 *
022 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
023 * @version $Revision: 155459 $
024 */
025 public class InitMessengerServlet extends HttpServlet {
026
027 private static boolean initialized = false;
028
029 public InitMessengerServlet() {
030 }
031
032 public void init() throws ServletException {
033 if ( ! initialized ) {
034 initialized = true;
035
036 getServletContext().log( "About to initialize MessengerManager" );
037
038 String config = getRequiredInitParmeter( "config", "The URL of the Messenger XML deployment document" );
039 try {
040 URL url = getServletContext().getResource( config );
041 MessengerManager.configure( url.toString() );
042 }
043 catch (Exception e) {
044 throw new ServletException( "Failed to initialise MessengerManager from config: " + config + ". Reason : " + e, e );
045 }
046 }
047 }
048
049 // Implementation methods
050 //-------------------------------------------------------------------------
051 protected String getRequiredInitParmeter(String key, String description) throws ServletException {
052 String value = getInitParameter( key );
053 if ( value == null || value.length() == 0 ) {
054 throw new ServletException(
055 "No initialization parameter for parameter: " + key
056 + " description: " + description
057 );
058 }
059 return value;
060 }
061 }
062