001: /*
002: License $Id: I_JoServletService.java,v 1.5 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.server.I_Service;
105: import com.tagtraum.framework.util.FileCache;
106: import com.tagtraum.jo.builder.I_JoServiceBuilder;
107: import com.tagtraum.jo.security.I_JoAccessController;
108: import com.tagtraum.jo.security.I_JoAuthentificator;
109: import com.tagtraum.jo.security.I_JoRoleManager;
110:
111: import java.io.File;
112: import java.net.URL;
113: import java.util.Iterator;
114: import java.util.List;
115:
116: /**
117: * Extends the {@link I_TCPService} with jo!-specific methods.
118: *
119: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
120: * @version 1.1beta1 $Id: I_JoServletService.java,v 1.5 2003/09/13 04:59:56 hendriks73 Exp $
121: */
122: public interface I_JoServletService extends I_Service {
123:
124: /**
125: * Source-Version
126: */
127: public static String vcid = "$Id: I_JoServletService.java,v 1.5 2003/09/13 04:59:56 hendriks73 Exp $";
128:
129: public void addRequestInterceptor(
130: RequestInterceptor requestInterceptor);
131:
132: public boolean removeRequestInterceptor(
133: RequestInterceptor requestInterceptor);
134:
135: public Iterator requestInterceptors(
136: RequestInterceptor requestInterceptor);
137:
138: /**
139: * Unmodifiable list.
140: *
141: * @return unmodifiable list
142: */
143: public List getRequestInterceptorList();
144:
145: /**
146: * Returns an Iterator over the registered hosts.
147: *
148: * @return iterator over hosts
149: */
150: public Iterator hosts();
151:
152: /**
153: * Adds a host to this service.
154: *
155: * @param aHost a Host
156: */
157: public void addHost(I_JoHost aHost);
158:
159: /**
160: * Removes a host.
161: *
162: * @param aHost a host
163: */
164: public void removeHost(I_JoHost aHost);
165:
166: /**
167: * Returns a {@link I_JoHost} for a name.
168: *
169: * @param aHostname a hostname
170: * @return I_JoHost
171: */
172: public I_JoHost getHost(String aHostname);
173:
174: /**
175: * Returns a {@link I_JoHost} for a request.
176: *
177: * @param aRequest Request
178: * @return I_JoHost
179: */
180: public I_JoHost getHost(I_JoServletRequest aRequest);
181:
182: /**
183: * Adds a Mime-Type.
184: *
185: * @param aSuffix suffix
186: * @param aMimeType Mimetype
187: */
188: public void addMimeType(String aSuffix, String aMimeType);
189:
190: /**
191: * Removes a suffix.
192: *
193: * @param aSuffix suffix
194: */
195: public void removeMimeType(String aSuffix);
196:
197: /**
198: * Returns an iterator over the registered MimeTypes.
199: *
200: * @return Iterator over MimeTypes
201: */
202: public Iterator getMimeTypes();
203:
204: /**
205: * Returns the mime type of the given filename or null
206: * if the type is unknown.
207: *
208: * @param file file name
209: */
210: public String getMimeType(String file);
211:
212: /**
213: * Sets the time a connection should be kept alive.
214: *
215: * @param aTime time in seconds this connection should be kept alive.
216: */
217: public void setKeepAlive(int aTime);
218:
219: /**
220: * Returns the time a connection should be kept alive.
221: *
222: * @return time in seconds this connection should be kept alive.
223: */
224: public int getKeepAlive();
225:
226: /**
227: * Sets the number of request that can be sent over a
228: * persistent connection.
229: *
230: * @param aMaxRequests number of requests that can be sent over
231: * a persistent connection.
232: */
233: public void setMaxRequests(int aMaxRequests);
234:
235: /**
236: * Returns the number of request that can be sent over a
237: * persistent connection.
238: *
239: * @return number of requests that can be sent over
240: * a persistent connection.
241: */
242: public int getMaxRequests();
243:
244: /**
245: * Returns an errorpage.
246: *
247: * @param aStatusCode Statuscode
248: * @param aMessage message
249: * @return errorpage.
250: */
251: public String getErrorPage(int aStatusCode, String aMessage);
252:
253: /**
254: * Returns an errorpage.
255: *
256: * @param aStatusCode Statuscode
257: * @param aThrowable Throwable
258: * @return an errorpage
259: */
260: public String getErrorPage(int aStatusCode, Throwable aThrowable);
261:
262: /**
263: * Returns a {@link I_JoAuthentificator} for an auth-method or
264: * <code>null</code> if there is no matching one.
265: *
266: * @return an authentificator or <code>null</code>
267: */
268: public I_JoAuthentificator getAuthentificator(String aAuthMethod);
269:
270: /**
271: * Adds an {@link I_JoAuthentificator} for an auth-method.
272: *
273: * @param aAuthMethod an authentification method
274: * @param anAuthentificator an authentificator
275: */
276: public void addAuthentificator(String aAuthMethod,
277: I_JoAuthentificator anAuthentificator);
278:
279: /**
280: * Removes an {@link I_JoAuthentificator} for an auth-method.
281: *
282: * @param aAuthMethod an authentification method
283: */
284: public void removeAuthentificator(String aAuthMethod);
285:
286: /**
287: * Returns the active {@link I_JoAccessController} for this service.
288: *
289: * @return an accesscontroller
290: */
291: public I_JoAccessController getAccessController();
292:
293: /**
294: * Returns the {@link I_JoAccessController} for this service.
295: *
296: * @param anAccessController an accesscontroller
297: */
298: public void setAccessController(
299: I_JoAccessController anAccessController);
300:
301: /**
302: * Returns the {@link I_JoRoleManager} for this service.
303: *
304: * @return a role manager
305: */
306: public I_JoRoleManager getRoleManager();
307:
308: /**
309: * Returns the {@link I_JoRoleManager} for this service.
310: *
311: * @param aRoleManager a RoleManager
312: */
313: public void setRoleManager(I_JoRoleManager aRoleManager);
314:
315: /**
316: * Sets the URL where all configuration files are located.
317: *
318: * @param aConfigURL the URL where all configuration files are located
319: */
320: public void setConfigURL(URL aConfigURL);
321:
322: /**
323: * Returns the URL where all configuration files are located.
324: *
325: * @return the URL where all configuration files are located
326: */
327: public URL getConfigURL();
328:
329: /**
330: * Base directory defined in JO_HOME. If the environment
331: * variable is not set, the current directory is used.
332: */
333: public File getJoHome();
334:
335: /**
336: * Returns the FileCache.
337: *
338: * @return the FileCache
339: */
340: public FileCache getFileCache();
341:
342: /**
343: * Sets the Builder for this service.
344: */
345: public void setBuilder(I_JoServiceBuilder builder);
346:
347: /**
348: * Gets the Builder for this service.
349: */
350: public I_JoServiceBuilder getBuilder();
351:
352: /**
353: * Rebuilds the object.
354: */
355: public void rebuild();
356:
357: }
|