1 //========================================================================
2 //$Id: AbstractJetty6Mojo.java 2147 2007-10-23 05:08:49Z gregw $
3 //Copyright 2000-2004 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.plugin;
17
18 import java.io.File;
19
20 import org.mortbay.jetty.Connector;
21 import org.mortbay.jetty.RequestLog;
22 import org.mortbay.jetty.plugin.util.JettyPluginServer;
23 import org.mortbay.jetty.security.UserRealm;
24 import org.mortbay.xml.XmlConfiguration;
25
26 /**
27 * AbstractJetty6Mojo
28 *
29 * Base class for all jetty6 mojos.
30 *
31 */
32 public abstract class AbstractJetty6Mojo extends AbstractJettyMojo
33 {
34
35 /**
36 * List of connectors to use. If none are configured
37 * then we use a single SelectChannelConnector at port 8080
38 *
39 * @parameter
40 */
41 private Connector[] connectors;
42
43
44 /**
45 * List of security realms to set up. Optional.
46 * @parameter
47 */
48 private UserRealm[] userRealms;
49
50
51
52 /**
53 * A RequestLog implementation to use for the webapp at runtime.
54 * Optional.
55 * @parameter
56 */
57 private RequestLog requestLog;
58
59
60
61 /**
62 * @see org.mortbay.jetty.plugin.AbstractJettyMojo#getConfiguredUserRealms()
63 */
64 public Object[] getConfiguredUserRealms()
65 {
66 return this.userRealms;
67 }
68
69 /**
70 * @see org.mortbay.jetty.plugin.AbstractJettyMojo#getConfiguredConnectors()
71 */
72 public Object[] getConfiguredConnectors()
73 {
74 return this.connectors;
75 }
76
77
78 public Object getConfiguredRequestLog()
79 {
80 return this.requestLog;
81 }
82
83
84 public void applyJettyXml() throws Exception
85 {
86
87 if (getJettyXmlFile() == null)
88 return;
89
90 getLog().info( "Configuring Jetty from xml configuration file = " + getJettyXmlFile() );
91 XmlConfiguration xmlConfiguration = new XmlConfiguration(getJettyXmlFile().toURL());
92 xmlConfiguration.configure(getServer().getProxiedObject());
93 }
94
95
96 /**
97 * @see org.mortbay.jetty.plugin.AbstractJettyMojo#createServer()
98 */
99 public JettyPluginServer createServer() throws Exception
100 {
101 return new Jetty6PluginServer();
102 }
103
104 }