1 //========================================================================
2 //$Id: Configuration.java,v 1.2 2005/10/26 20:48:48 gregwilkins Exp $
3 //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
4 //------------------------------------------------------------------------
5 //Licensed under the Apache License, Version 2.0 (the "License");
6 //you may not use this file except in compliance with the License.
7 //You may obtain a copy of the License at
8 //http://www.apache.org/licenses/LICENSE-2.0
9 //Unless required by applicable law or agreed to in writing, software
10 //distributed under the License is distributed on an "AS IS" BASIS,
11 //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 //See the License for the specific language governing permissions and
13 //limitations under the License.
14 //========================================================================
15
16 package org.mortbay.jetty.webapp;
17
18 import java.io.Serializable;
19
20 /* ------------------------------------------------------------------------------- */
21 /** Base Class for WebApplicationContext Configuration.
22 * This class can be extended to customize or extend the configuration
23 * of the WebApplicationContext. If WebApplicationContext.setConfiguration is not
24 * called, then an XMLConfiguration instance is created.
25 *
26 * @author gregw
27 */
28 public interface Configuration extends Serializable
29 {
30 /* ------------------------------------------------------------------------------- */
31 /** Set up a context on which to perform the configuration.
32 * @param context
33 */
34 public void setWebAppContext (WebAppContext context);
35
36 /* ------------------------------------------------------------------------------- */
37 /** Get the context on which the configuration is performed.
38 */
39 public WebAppContext getWebAppContext();
40
41 /* ------------------------------------------------------------------------------- */
42 /** Configure ClassPath.
43 * This method is called to configure the context ClassLoader. It is called just
44 * after a new WebAppClassLoader is constructed and before it has been used.
45 * Class paths may be added, options changed or the loader totally replaced.
46 * @throws Exception
47 */
48 public void configureClassLoader()
49 throws Exception;
50
51 /* ------------------------------------------------------------------------------- */
52 /** Configure Defaults.
53 * This method is called to intialize the context to the containers default configuration.
54 * Typically this would mean application of the webdefault.xml file.
55 * @throws Exception
56 */
57 public void configureDefaults()
58 throws Exception;
59
60
61 /* ------------------------------------------------------------------------------- */
62 /** Configure WebApp.
63 * This method is called to apply the standard and vendor deployment descriptors.
64 * Typically this is web.xml and jetty-web.xml.
65 * @throws Exception
66 */
67 public void configureWebApp()
68 throws Exception;
69
70 /* ------------------------------------------------------------------------------- */
71 /** DeConfigure WebApp.
72 * This method is called to undo all configuration done to this webapphandler. This is
73 * called to allow the context to work correctly over a stop/start cycle
74 * @throws Exception
75 */
76 public void deconfigureWebApp()
77 throws Exception;
78
79
80 }