001 /*******************************************************************************
002 * Copyright (C) PicoContainer Organization. All rights reserved.
003 * --------------------------------------------------------------------------
004 * The software in this package is published under the terms of the BSD style
005 * license a copy of which has been included with this distribution in the
006 * LICENSE.txt file.
007 ******************************************************************************/
008 package org.picocontainer.web;
009
010 import org.picocontainer.MutablePicoContainer;
011
012 /**
013 * Allows to compose containers for different webapp scopes. The composer is
014 * used by the
015 * {@link org.picocontainer.web.PicoServletContainerListener PicoServletContainerListener}
016 * after the webapp context is initialised. Users can either implement their
017 * composer and register components for each scope directly or load them from a
018 * picocontainer script, using the
019 * {@link org.picocontainer.web.script.ScriptedWebappComposer ScriptedWebappComposer}.
020 *
021 * @author Paul Hammant
022 * @author Mauro Talevi
023 */
024 public interface WebappComposer {
025
026 void composeApplication(MutablePicoContainer applicationContainer);
027
028 void composeSession(MutablePicoContainer sessionContainer);
029
030 void composeRequest(MutablePicoContainer requestContainer);
031
032 }