001: /*
002: * (C) Copyright 2000 - 2005 Nabh Information Systems, Inc.
003: *
004: * This program is free software; you can redistribute it and/or
005: * modify it under the terms of the GNU General Public License
006: * as published by the Free Software Foundation; either version 2
007: * of the License, or (at your option) any later version.
008: *
009: * This program is distributed in the hope that it will be useful,
010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012: * GNU General Public License for more details.
013: *
014: * You should have received a copy of the GNU General Public License
015: * along with this program; if not, write to the Free Software
016: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
017: *
018: */
019: package com.nabhinc.ws.server;
020:
021: import java.io.InputStream;
022: import java.net.MalformedURLException;
023: import java.net.URL;
024: import java.util.Enumeration;
025:
026: import javax.servlet.ServletConfig;
027:
028: import com.nabhinc.ws.spi.UserManager;
029:
030: /**
031: * This interface provides context information to Web services in the same
032: * way a <code>ServletContext</code> provides context info to servlets. In
033: * addition, it also provides access to server related information.
034: *
035: * @author Padmanabh Dabke
036: * (c) 2005 Nabh Information Systems, Inc. All Rights Reserved.
037: */
038: public interface WebServiceContext {
039:
040: /**
041: * Returns ID of the current server instance. This may be used
042: * in storing individual server-specific information in a clustered
043: * environment
044: * @return ID of the server, the Web service is running in.
045: */
046: public abstract String getServerID();
047:
048: /**
049: * Returns secure server URL. For HTTP servers, this is the https URL.
050: * @return HTTPS server URL
051: */
052: public abstract String getSecureURL();
053:
054: /**
055: * Returns regular server URL. For HTTP server, this is http URL.
056: * @return Server URL
057: */
058: public abstract String getUnsecureURL();
059:
060: /**
061: * Computes the real OS path corresponding to the application-relative
062: * path.
063: * @param path Relative path
064: * @return Absolute OS path for the file/directory.
065: */
066: public abstract String getRealPath(String path);
067:
068: /**
069: * Returns URL for accessing a resource with the given key.
070: * @param key Resource Key
071: * @return URL for accessing the resource
072: * @throws MalformedURLException
073: */
074: public abstract URL getResource(String key)
075: throws MalformedURLException;
076:
077: /**
078: * Input stream corresponding to the resource at the specified path
079: * @param path Resource path
080: * @return Input stream to be used to read resource contents
081: */
082: public abstract InputStream getResourceAsStream(String path);
083:
084: /**
085: * User manager that handles authentication for this server.
086: * @return User manager for this site
087: */
088: public abstract UserManager getUserManager();
089:
090: /**
091: * Returns attribute value for the given name.
092: */
093:
094: public Object getAttribute(String name);
095:
096: /**
097: * Returns an <code>Enumeration</code> of names of
098: * attributes available through this context.
099: *
100: * @return Enumeration of attribute names in this context
101: */
102:
103: public Enumeration getAttributeNames();
104:
105: /**
106: * Sets the specified attribute to the given value. If
107: * the value is null, the effect is the same as doing
108: * <code>removeAttribute</code>
109: * @param name Attribute name
110: * @param value Attribute value
111: */
112: public void setAttribute(String name, Object value);
113:
114: /**
115: * Removes the attribute with the given name from the context.
116: *
117: * @param name Name of the attribute to be removed.
118: *
119: */
120: public void removeAttribute(String name);
121:
122: /**
123: * Get ServletConfig object corresponding to the WebServicesServlet that
124: * is loading Web services framework. Note that using this method
125: * will restrict your service to run in a servlet environment.
126: * @return ServletConfig for the current WebServicesServlet
127: */
128: public ServletConfig getServletConfig();
129: }
|