001: /*
002: License $Id: I_JoHost.java,v 1.6 2003/09/13 04:59:56 hendriks73 Exp $
003:
004: Copyright (c) 2001-2005 tagtraum industries.
005:
006: LGPL
007: ====
008:
009: jo! is free software; you can redistribute it and/or
010: modify it under the terms of the GNU Lesser General Public
011: License as published by the Free Software Foundation; either
012: version 2.1 of the License, or (at your option) any later version.
013:
014: jo! is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018:
019: You should have received a copy of the GNU Lesser General Public
020: License along with this library; if not, write to the Free Software
021: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022:
023: For LGPL see <http://www.fsf.org/copyleft/lesser.txt>
024:
025:
026: Sun license
027: ===========
028:
029: This release contains software by Sun Microsystems. Therefore
030: the following conditions have to be met, too. They apply to the
031: files
032:
033: - lib/mail.jar
034: - lib/activation.jar
035: - lib/jsse.jar
036: - lib/jcert.jar
037: - lib/jaxp.jar
038: - lib/crimson.jar
039: - lib/servlet.jar
040: - lib/jnet.jar
041: - lib/jaas.jar
042: - lib/jaasmod.jar
043:
044: contained in this release.
045:
046: a. Licensee may not modify the Java Platform
047: Interface (JPI, identified as classes contained within the javax
048: package or any subpackages of the javax package), by creating additional
049: classes within the JPI or otherwise causing the addition to or modification
050: of the classes in the JPI. In the event that Licensee creates any
051: Java-related API and distribute such API to others for applet or
052: application development, you must promptly publish broadly, an accurate
053: specification for such API for free use by all developers of Java-based
054: software.
055:
056: b. Software is confidential copyrighted information of Sun and
057: title to all copies is retained by Sun and/or its licensors. Licensee
058: shall not modify, decompile, disassemble, decrypt, extract, or otherwise
059: reverse engineer Software. Software may not be leased, assigned, or
060: sublicensed, in whole or in part. Software is not designed or intended
061: for use in on-line control of aircraft, air traffic, aircraft navigation
062: or aircraft communications; or in the design, construction, operation or
063: maintenance of any nuclear facility. Licensee warrants that it will not
064: use or redistribute the Software for such purposes.
065:
066: c. Software is provided "AS IS," without a warranty
067: of any kind. ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES,
068: INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
069: PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
070:
071: d. This License is effective until terminated. Licensee may
072: terminate this License at any time by destroying all copies of Software.
073: This License will terminate immediately without notice from Sun if Licensee
074: fails to comply with any provision of this License. Upon such termination,
075: Licensee must destroy all copies of Software.
076:
077: e. Software, including technical data, is subject to U.S.
078: export control laws, including the U.S. Export Administration Act and its
079: associated regulations, and may be subject to export or import regulations
080: in other countries. Licensee agrees to comply strictly with all such
081: regulations and acknowledges that it has the responsibility to obtain
082: licenses to export, re-export, or import Software. Software may not be
083: downloaded, or otherwise exported or re-exported (i) into, or to a national
084: or resident of, Cuba, Iraq, Iran, North Korea, Libya, Sudan, Syria or any
085: country to which the U.S. has embargoed goods; or (ii) to anyone on the
086: U.S. Treasury Department's list of Specially Designated Nations or the U.S.
087: Commerce Department's Table of Denial Orders.
088:
089:
090: Feedback
091: ========
092:
093: We encourage your feedback and suggestions and want to use your feedback to
094: improve the Software. Send all such feedback to:
095: <feedback@tagtraum.com>
096:
097: For more information on tagtraum industries and jo!
098: please see <http://www.tagtraum.com/>.
099:
100:
101: */
102: package com.tagtraum.jo;
103:
104: import com.tagtraum.framework.log.Log;
105: import com.tagtraum.framework.server.ServerException;
106: import com.tagtraum.jo.builder.I_JoHostBuilder;
107: import com.tagtraum.jo.event.ChildModificationListener;
108:
109: import java.io.File;
110: import java.util.Iterator;
111:
112: /**
113: * Represents a virtual host.
114: *
115: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
116: * @version 1.1beta1 $Id: I_JoHost.java,v 1.6 2003/09/13 04:59:56 hendriks73 Exp $
117: */
118: public interface I_JoHost {
119:
120: /**
121: * Source-Version
122: */
123: public static String vcid = "$Id: I_JoHost.java,v 1.6 2003/09/13 04:59:56 hendriks73 Exp $";
124:
125: /**
126: * Initializes this host.
127: */
128: public void init() throws ServerException;
129:
130: /**
131: * Sets the service of this host.
132: *
133: * @param aService the service
134: */
135: public void setService(I_JoServletService aService);
136:
137: /**
138: * Returns the service of this host.
139: *
140: * @return the service.
141: */
142: public I_JoServletService getService();
143:
144: /**
145: * Returns the symbolic name of this host.
146: *
147: * @return this host's name
148: */
149: public String getName();
150:
151: /**
152: * Sets the the symbolic name of this host.
153: *
154: * @param aName this host's name
155: */
156: public void setName(String aName);
157:
158: /**
159: * Deletes all set hostnames and sets them new.
160: *
161: * @param aHostnames list of hostnames
162: */
163: public void setHostnames(String[] aHostnames);
164:
165: /**
166: * Returns the hostnames of this host.
167: *
168: * @return this host's hostnames
169: */
170: public String[] getHostnames();
171:
172: /**
173: * Returns the name of this server. Format: <pre><name>/<majorversion.<minorversion></pre>
174: *
175: * @return server name
176: */
177: public String getServerInfo();
178:
179: /**
180: * Returns an iterator over all registered {@link I_JoServletContextPeers}.
181: *
182: * @return Iterator
183: */
184: public Iterator servletContextPeers();
185:
186: /**
187: * Returns a {@link I_JoServletContextPeer} for a URI.
188: *
189: * @param aURI URI
190: * @return I_JoServletContextPeer
191: */
192: public I_JoServletContextPeer getServletContextPeer(String aURI);
193:
194: /**
195: * Returns a {@link I_JoServletContextPeer} for a {@link I_JoServletRequest}.
196: *
197: * @param aServletRequest a ServletRequest
198: * @return I_JoServletContextPeer
199: */
200: public I_JoServletContextPeer getServletContextPeer(
201: I_JoServletRequest aServletRequest);
202:
203: /**
204: * Returns a {@link I_JoServletContextPeer} for a name.
205: *
206: * @param aName a Name
207: * @return I_JoServletContextPeer
208: */
209: public I_JoServletContextPeer getNamedServletContextPeer(
210: String aName);
211:
212: /**
213: * Adds a {@link I_JoServletContextPeer} to a host.
214: *
215: * @param aPeer a Peer
216: */
217: public void addServletContextPeer(I_JoServletContextPeer aPeer);
218:
219: /**
220: * Removes a {@link I_JoServletContextPeer} from this host.
221: *
222: * @param aName Name of the peer.
223: * @see I_JoServletContextPeer
224: */
225: public void removeServletContextPeer(String aName);
226:
227: /**
228: * Destroys all {@link I_JoServletContextPeer}s.
229: * @see I_JoServletContextPeer#destroy()
230: */
231: public void destroy();
232:
233: /**
234: * Returns an attribute of this host's service.
235: *
236: * @param aName key for an attribute.
237: * @return the value of this attribute or <code>null</code>.
238: */
239: public Object getAttribute(String aName);
240:
241: // still needed? (rik)
242:
243: /**
244: * Returns an errorpage.
245: *
246: * @param aStatusCode Statuscode
247: * @param aMessage Message
248: * @return an errorpage.
249: */
250: public String getErrorPage(int aStatusCode, String aMessage);
251:
252: /**
253: * Returns an errorpage.
254: *
255: * @param aStatusCode Statuscode
256: * @param aThrowable Throwable
257: * @return an errorpage.
258: */
259: public String getErrorPage(int aStatusCode, Throwable aThrowable);
260:
261: /**
262: * Returns a MIME-Type of the given file or
263: * <code>null</code> if it is unknown.
264: *
265: * @param file filename
266: */
267: public String getMimeType(String file);
268:
269: // ====
270:
271: /**
272: * Returns the eventlog.
273: *
274: * @see #getAccessLog()
275: */
276: public Log getLog();
277:
278: /**
279: * Sets the log.
280: *
281: * @see #setName();
282: */
283: public void setLog(Log log);
284:
285: /**
286: * Returns the accesslog.
287: *
288: * @see #getLog()
289: */
290: public Log getAccessLog();
291:
292: /**
293: * Sets the accesslog.
294: *
295: * @see #setName();
296: */
297: public void setAccessLog(Log log);
298:
299: /**
300: * Sets the Builder for this host.
301: */
302: public void setBuilder(I_JoHostBuilder builder);
303:
304: /**
305: * Gets the Builder for this host.
306: */
307: public I_JoHostBuilder getBuilder();
308:
309: /**
310: * Rebuilds the object.
311: */
312: public void rebuild();
313:
314: /**
315: * Returns the name of the directory where the wars are stored.
316: */
317: public File[] getWARDirs();
318:
319: /**
320: * Adds the name of the directory where the wars are stored.
321: */
322: public void addWARDir(File warDir);
323:
324: /**
325: * Removes the name of the directory where the wars are stored.
326: */
327: public void removeWARDir(File warDir);
328:
329: public void addChildModificationListener(
330: ChildModificationListener listener);
331:
332: public void removeChildModificationListener(
333: ChildModificationListener listener);
334:
335: }
|