Class ServerShell
- All Implemented Interfaces:
IWebServiceEngine
,WebSocketAcceptor
,IAdditonalInformation<UserInfoHistoryEntry>
,IAppLoader
,IServer
,IKStringInfoProviderHolder
- Direct Known Subclasses:
JakartaEEServer
,JettyRunConfiguration
- Author:
- Christopher Mindus
Nested Class Summary
Nested classes/interfaces inherited from interface com.iizix.server.IServer
IServer.InvalidAppID, IServer.State
Field Summary
Modifier and TypeFieldDescriptionprotected ExternalBrowserPagesImpl
The external server pages.protected static MemoryJarURLStreamHandlerFactory
The memory Jar stream handler factory.protected static XJarURLStreamHandlerFactory
The XJar stream handler factory.Fields inherited from interface com.iizix.server.IServer
MAX_VALID_APP_ID_LENGTH
Constructor Summary
Method Summary
Modifier and TypeMethodDescriptionstatic IServer.State
Gets the state of the server.static void
_registerApplication
(String jndiName, Object injector) Registers an application with the server.static void
_unregisterApplication
(String jndiName, Object injector) Unregisters an application with the server.boolean
addDisposeListener
(IServerDisposeListener listener) Adds a server dispose.final IEndPoint[]
addEndPointListener
(IEndPointListener listener) Adds a listener of end point create/dispose and retrieves the list of current end points.void
addFileUploader
(IWSUploaderAcceptor endPoint) Adds a new web file loader acceptor for an end point.boolean
addModule
(IServerModule<?> module) Adds a server module for processing.final boolean
addUserLoginProhibitedInterval
(TimeInterval timeInterval) Removes a time interval when user login is prohibited.void
Configures the client session manager with the settings for idle timeout, dormant time and heartbeat interval.final boolean
dispose()
Disposes of the server, e.g.abstract boolean
Flag indicating the normal HTML files needs compression along with CSS minify and JS compression.protected void
Flushes a potential start-up logging to console for exceptions causing server not to initialize the logging system.boolean
getAccessibleEnvironments
(HttpServletRequest request, List<ServerConfigEnvProps> envs) Gets the environments that are supported for the request.final ActiveUserSessions
The active user sessions.final UserInfoHistoryEntry
Allocates a new instance of the additional information to be stored with the history entry.Gets the unmodifiable map of application aliases.final AppFactory
getApplication
(String id) Gets an application that has been registered with an ID.final AppFactory[]
Gets the applications that are loaded and registered.Gets the server current directory.Gets the default mail sender.getEmailVerificationURL
(BasicUserInfo bui, String email, String externalWebServerBaseURL) Gets a verification URL for an email address.final IEndPoint[]
Gets an array of all end points.Gets the map of web server mappings for files.final ExecutorService
Gets the Server ExecutorService.Attempts to get the default external host address from the current thread's context.Gets the WSFile provider engine.String[]
Gets the list of potential handled context paths for the websocket.getHistory
(long start) Gets the history entries gathered between a date up to the last available entry.final Class<UserInfoHistoryEntry>
Gets the class of the additional information.static ServerShell
Gets the instance of the main server.protected static ServerShell
getInstance
(Class<ServerShell> server) Gets the instance of the main server.final IKStringInfoProvider
/** Gets the session's IKStringInfoProvider from the ClientSessionGyro threads, and if not found, from the application session gyro threads.getMailSender
(String name) Gets the default mail sender.final PropFactory
Gets the server property factory.final PropMgr
Gets the server property manager.final File
Gets the Server Config File.Gets the server logger instance.final ServerProps
Gets the Server Properties.Gets the container for server settings.final ThreadGroup
Gets the ThreadGroup for server threads.Gets the source file resolver.final long
Gets the server's start time (not the creation time).final IServer.State
getState()
Gets the server state.final ITXPCoordinator
The transaction processor coordinator.final TimeInterval[]
Gets the time intervals when user login is prohibited.Gets the instance of the WebLogos.abstract IWebServerCompression
Gets the web server compression interface.getWebServerMapping
(String mappedFile) Gets the map of web server mappings for files.Gets the instance of the WebThumbs.protected final Worker
Gets the server worker.Gets the web service file uploader service.protected void
Initializes and compresses the HTML files and all sources and CSS files loaded from there.static void
Initializes the URN factory along with its providers.final Object
isRequestURIAccepted
(IWebSocketComm comm, String uri, Map<String, List<String>> headerFields) Called to check if a request URI can be accepted.final boolean
Checks if user login is enabled.final boolean
Verifies if the user login is permitted at the current time.abstract void
Called to load the applications.final PropCnr
Loads a property file.final PropCnr
loadFile
(String fileName, InputStream inputStream) Loads a property file.final List<IPluginDescriptor<?>>
loadPlugins
(String names) Loads required plug-in's.protected final void
Performs initial setup, loading plugins and the configuration file.protected final void
Loads or reloads the server config and starts the WSFile provider engine.void
Called when an application is instantiated and started by a user session.void
Called when an application is stopped.protected void
Called prior to disposing.protected void
Called after disposing.final void
onEndPointDisposed
(IEndPoint endPoint) Called when an end point is disposed of.void
Called to initialize the server.final AppDefinition
registerApplication
(String id, AppDefinition app) Registers an application with an ID available in the server.void
registerApplication
(String jndiName, Object injector) Registers an application with the server.protected final boolean
Registers an end point constructor.static void
registerRegionLocationServiceProviders
(ServerSettings settings, boolean isTestMode) Registers the Region Location Service Providers.boolean
registerRequestPrinter
(String target, IWebServerRequestPrinter processor) Registers a new request printer.boolean
removeDisposeListener
(IServerDisposeListener listener) Removes a server dispose listener.final boolean
removeEndPointListener
(IEndPointListener listener) Adds a listener of end point create/dispose and retrieves the list of current end points.void
removeFileUploader
(IWSUploaderAcceptor endPoint) Removes a new web file loader acceptor for an end point.boolean
removeModule
(IServerModule<?> module) Removes a server module for processing.final void
Saves a property file.boolean
Saves the Server Properties if required, creating a backup file of the previous configuration as "filename-DD MMM YYYY hh:mm:ss.SSS.iiziServer".final void
setUserLoginEnabled
(boolean on) Sets the user login enabled flag.static void
Assigns the web server file provider engine.static void
Shuts down the Region Location Service Providers.final void
Processes server start-up asynchronously.void
unregisterApplication
(String jndiName, Object injector) Unregisters an application with the server.protected final boolean
Unregisters an end point constructor.boolean
unregisterRequestPrinter
(String target, IWebServerRequestPrinter processor) Unregister a previously registered request printer.static void
updateWebServerRoot
(File dirHint) Update the web server root for the license system.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.iizix.server.IServer
getRootDirectory
Methods inherited from interface com.iizix.IWebServiceEngine
configureProxy, getProxy
Field Details
memoryJarFactory
The memory Jar stream handler factory.xjarFactory
The XJar stream handler factory.externalBrowserPages
The external server pages.
Constructor Details
ServerShell
Constructor.- Parameters:
configFileParam
- The configuration file, null for default.- Throws:
IOException
- For load failure.PropException
- For property errors.
Method Details
updateWebServerRoot
Update the web server root for the license system. This method is not intended to be called, it is done only by the IIZI framework.- Parameters:
dirHint
- The directory hint might be non-null. If so, that one should be used.
setWSFileProviderEngine
Assigns the web server file provider engine. This method is not intended to be called, it is done only by the IIZI framework.- Parameters:
engine
- The engine.- Throws:
IllegalStateException
- In case the engine is already set by the framework.
getInstance
Gets the instance of the main server. If the server never has been started, it will be started before returning the instance.- Returns:
- null if it is stopped.
getInstance
Gets the instance of the main server. If the server never has been started, it will be started before returning the instance.- Returns:
- null if it is stopped.
_getState
Gets the state of the server.- Returns:
- The server state: STARTING, STARTED, STOPPING or STOPPED.
_unregisterApplication
Unregisters an application with the server.- Parameters:
jndiName
- The full JNDI name of the application.injector
- The instance of the application injector.- Throws:
NullPointerException
- If the server has not been started.
_registerApplication
Registers an application with the server.- Parameters:
jndiName
- The full JNDI name of the application.injector
- The instance of the application injector.- Throws:
NullPointerException
- If the server has not been started.
registerRegionLocationServiceProviders
public static void registerRegionLocationServiceProviders(ServerSettings settings, boolean isTestMode) Registers the Region Location Service Providers.- Parameters:
settings
- The settings.isTestMode
- Flag for test mode.- Throws:
IllegalStateException
- For invalid server states.
shutdownRegionLocationServiceProviders
public static void shutdownRegionLocationServiceProviders()Shuts down the Region Location Service Providers.This method is used for testing and not by the server.
- Throws:
IllegalStateException
- For invalid state.
initializeURNFactory
public static void initializeURNFactory()Initializes the URN factory along with its providers. This method is intended to be used by the IIZI framework and not instantiated to be called.getAppAliases
Gets the unmodifiable map of application aliases.- Returns:
- The map of aliasAppID as keys and appID as values.
getCurrentDirectory
Gets the server current directory.- Returns:
- The current directory (canonical form).
getStartTime
public final long getStartTime()Gets the server's start time (not the creation time).- Returns:
- The start time in milliseconds since the Epoch, zero if not yet started.
getExecutorService
Gets the Server ExecutorService.- Specified by:
getExecutorService
in interfaceIAppLoader
getServerThreadGroup
Gets the ThreadGroup for server threads.getState
Gets the server state.getActiveUserSessions
The active user sessions.- Returns:
- The instance controlling the active user sessions, null if server hasn't been started.
loadPluginsAndConfig
Performs initial setup, loading plugins and the configuration file.- Throws:
IOException
- For server singleton errors.Throwable
- For other severe server failures.
startServer
Processes server start-up asynchronously.- Specified by:
startServer
in interfaceIServer
- Throws:
Throwable
- for startup errors.
getServerLogger
Gets the server logger instance.flushStartupLog
protected void flushStartupLog()Flushes a potential start-up logging to console for exceptions causing server not to initialize the logging system.registerRequestPrinter
Registers a new request printer.- Specified by:
registerRequestPrinter
in interfaceIServer
- Parameters:
target
- The target URL, always starting with "/" and doesn't contain the query.processor
- The print processor.- Returns:
- true if added successfully, false if the print processor already exists or the server is not started yet.
unregisterRequestPrinter
Unregister a previously registered request printer.- Specified by:
unregisterRequestPrinter
in interfaceIServer
- Parameters:
target
- The target URL, always starting with "/" and doesn't contain the query.processor
- The print processor.- Returns:
- true if removed successfully, false if the print processor does not exist or doesn't match, or the server is not yet started.
getExternalWebServerBaseURL
Attempts to get the default external host address from the current thread's context.Note: the
SessionInfo
instance will be attempted to be retrieved from the current thread and used for the external server address, including protocol (http:// or https://). Note that if the iiziServer is behind a proxy that handles SSL, the protocol returned here would be "http://" if not configured properly in the server configuration.- Returns:
- The external host address, including protocol (http:// or https://) and potentially a port as (:8080), or null if it cannot be established. The string never ends with a '/'.
getEmailVerificationURL
public String getEmailVerificationURL(BasicUserInfo bui, String email, String externalWebServerBaseURL) Gets a verification URL for an email address. This URL is used to send a mail to the email in question with the link using this URL. When the user clicks on the link, the email gets verified in the database and all logging is handled by the server.Note: if the parameter
externalHostAddress
isnull
, theSessionInfo
instance will be attempted to be retrieved from the current thread and used for the external server address, including protocol (http:// or https://). Note that if the iiziServer is behind a proxy that handles SSL, the protocol returned here would be "http://" if not configured properly in the server configuration.If the
SessionInfo
cannot be located, the server's external URL configuration is used.- Parameters:
bui
- The basic user information.email
- The email in question.externalWebServerBaseURL
- The external base URL for the web server, e.g. "https://lic.mindus.co", usenull
for default. The default address is retrieved usinggetExternalWebServerBaseURL()
.- Returns:
- The URL, or
null
if the external host address cannot be created.PLEASE NOTE THAT IF THE DOMAIN NAME FAILS TO BE RETRIEVED, THE "url" DOES NOT CONTAIN THAT INFORMATION. It will then just be a path such as "/iizi-email-verification?...".
The return URL is
null
if the SHA-256 message digest fails to be created due to Java not having unlimited security configured. If this is the case, an error message is logged prior to returning.
getServerConfigFile
Gets the Server Config File.- Returns:
- The config file used to start the server with.
loadServerConfig
Loads or reloads the server config and starts the WSFile provider engine. This call can only be done by the framework and is not intended to be called.- Throws:
IOException
- For load failure.PropException
- For property errors.
getServerProperties
Gets the Server Properties.- Specified by:
getServerProperties
in interfaceIServer
getServerSettings
Gets the container for server settings.configureSessionMgr
public void configureSessionMgr()Configures the client session manager with the settings for idle timeout, dormant time and heartbeat interval.saveServerConfig
Saves the Server Properties if required, creating a backup file of the previous configuration as "filename-DD MMM YYYY hh:mm:ss.SSS.iiziServer".- Returns:
- true for successful save, false for no change.
- Throws:
IOException
- For load failure.
getDefaultMailSender
public MailSender getDefaultMailSender() throws NotFoundException, AddressException, NoSuchProviderException, IOExceptionGets the default mail sender.- Specified by:
getDefaultMailSender
in interfaceIServer
- Returns:
- The default mail sender.
- Throws:
NotFoundException
- If the mail sender is not found.IOException
- If the mail queue directory does not exist.NoSuchProviderException
- If the "smtp" or "smtps" providers do not exist!AddressException
- If the default sender failed to parse.
getMailSender
public MailSender getMailSender(String name) throws NotFoundException, AddressException, NoSuchProviderException, IOException Gets the default mail sender.- Specified by:
getMailSender
in interfaceIServer
- Parameters:
name
- The mail sender name, null for default or the first one found if no default is configured.- Returns:
- The default mail sender.
- Throws:
NotFoundException
- If the mail sender is not found.IOException
- If the mail queue directory does not exist.NoSuchProviderException
- If the "smtp" or "smtps" providers do not exist!AddressException
- If the default sender failed to parse.
loadApplications
Called to load the applications.- Specified by:
loadApplications
in interfaceIServer
- Throws:
Throwable
- for start-up errors.
registerApplication
public final AppDefinition registerApplication(String id, AppDefinition app) throws ServerApplicationSetupException Registers an application with an ID available in the server.- Specified by:
registerApplication
in interfaceIServer
- Parameters:
id
- The ID of the application.app
- The application.- Returns:
- The previous overwritten application, or null for a new application.
- Throws:
ServerApplicationSetupException
- In case a plug-in fail to initialize.
getApplication
Gets an application that has been registered with an ID. The table of appID aliases is checked.- Parameters:
id
- The application ID or an alias of the appID.- Returns:
- The application factory, or null if not registered.
getApplications
Gets the applications that are loaded and registered. The appIDs are only the non-aliased names.- Returns:
- The application factories loaded.
onApplicationSessionStarted
Called when an application is instantiated and started by a user session.- Parameters:
appGyro
- The application session.
onApplicationSessionStopped
Called when an application is stopped.- Parameters:
appGyro
- The application session.
addDisposeListener
Adds a server dispose. Calling this method multiple times with the same listener will have no effect (but to return false).- Specified by:
addDisposeListener
in interfaceIServer
- Parameters:
listener
- The listener to add.- Returns:
- true if the listener was added, false otherwise.
- Throws:
NullPointerException
- If the listener isnull
.
removeDisposeListener
Removes a server dispose listener.- Specified by:
removeDisposeListener
in interfaceIServer
- Parameters:
listener
- The listener to remove.- Returns:
- true if listener is successfully removed, false otherwise.
onStartServer
Called to initialize the server.- Specified by:
onStartServer
in interfaceIServer
- Throws:
Throwable
- for start-up errors.
getWorker
Gets the server worker.dispose
public final boolean dispose()Disposes of the server, e.g. at shut-down. This dispose call will wait until the server has shut-down successfully.onDispose
protected void onDispose()Called prior to disposing. Override to process.onDisposed
protected void onDisposed()Called after disposing. Override to process.getPropertyFactory
Gets the server property factory.getPropertyManager
Gets the server property manager.- Specified by:
getPropertyManager
in interfaceIAppLoader
loadFile
Loads a property file.- Specified by:
loadFile
in interfaceIAppLoader
- Parameters:
file
- The file to load.- Returns:
- A Property container.
- Throws:
IOException
- For file errors.PropException
- For property errors.
loadFile
public final PropCnr loadFile(String fileName, InputStream inputStream) throws IOException, PropException Loads a property file.- Specified by:
loadFile
in interfaceIAppLoader
- Parameters:
fileName
- The file name for logging.inputStream
- The file input stream.- Returns:
- A Property container.
- Throws:
IOException
- For file errors.PropException
- For property errors.
saveFile
Saves a property file.- Parameters:
file
- The file to load.cnr
- The property container to save.- Throws:
IOException
- For file errors.PropException
- For property errors.
getAccessibleEnvironments
public boolean getAccessibleEnvironments(HttpServletRequest request, List<ServerConfigEnvProps> envs) Gets the environments that are supported for the request. Pass in an empty ArrayList ofenvs
that is filled in.- Parameters:
request
- The HTTP request.envs
- The environment list is filled in upon return.- Returns:
- true if the request is "valid", false if the "host" header doesn't match and that each environment should be interrogated. The return value could be true even if there is no specific environment in
envs
that matches, but the request is valid.
loadPlugins
Loads required plug-in's.Each plug-in must have a class called "name.server.Descriptor" that implement the interface
com.iizix.IPluginDescriptor
available.The plug-in definition should be found at the "name/schema/properties.xml", but the iiziGo modules have the "iizigo" module instead of "iizix". To figure out translation of names, a class called "name.server.Descriptor" is loaded and should implement the interface
- Specified by:
loadPlugins
in interfaceIAppLoader
- Parameters:
names
- The plug-in name, e.g. "com.iizigo.db,com.iizigo.term,com.iizigo.ws".- Returns:
- The list of plug-in descriptors.
- Throws:
IOException
- If a plug-in failed to load.
addModule
Adds a server module for processing. The module can have an end point constructor that is added during initialization.removeModule
Removes a server module for processing. This will unregister a potential end point constructor and dispose of the module.- Specified by:
removeModule
in interfaceIServer
- Parameters:
module
- The server module.- Returns:
- true for success, false if already removed.
registerEndPointConstructor
Registers an end point constructor.- Parameters:
epc
- The end point constructor.- Returns:
- true for success, false for failure e.g.
epc
is null or it is already registered.
unregisterEndPointConstructor
Unregisters an end point constructor.- Parameters:
epc
- The end point constructor.- Returns:
- true for success, false for failure.
isRequestURIAccepted
public final Object isRequestURIAccepted(IWebSocketComm comm, String uri, Map<String, List<String>> headerFields) Called to check if a request URI can be accepted.- Specified by:
isRequestURIAccepted
in interfaceWebSocketAcceptor
- Parameters:
comm
- The WebSocket communication instance.uri
- The request URI, formatted as e.g. "/something/more.ws?query-params".headerFields
- HTTP header fields.- Returns:
- Object an object that is attached to the communications, or null if the URI is not accepted.
getHandledContextPaths
Gets the list of potential handled context paths for the websocket.- Specified by:
getHandledContextPaths
in interfaceWebSocketAcceptor
- Returns:
- The array of possibly handled context path.
getEndPointsInstances
Gets an array of all end points. Avoid this method as it causes unnecessary garbage collection, use getEndPointsCollection instead.- Specified by:
getEndPointsInstances
in interfaceIServer
- Returns:
- An array of IEndPoint instances.
onEndPointDisposed
Called when an end point is disposed of.- Specified by:
onEndPointDisposed
in interfaceIServer
addEndPointListener
Adds a listener of end point create/dispose and retrieves the list of current end points. Calling this method several times with the same listener does not add a new one, it is similar to callinggetEndPointInstances()
.- Specified by:
addEndPointListener
in interfaceIServer
- Parameters:
listener
- The end point listener.- Returns:
- An array of EndPoint instances.
removeEndPointListener
Adds a listener of end point create/dispose and retrieves the list of current end points. Calling this method several times with the same listener does not add a new one, it is similar to callinggetEndPointInstances()
.- Specified by:
removeEndPointListener
in interfaceIServer
- Parameters:
listener
- The end point listener.- Returns:
- true for success, false if not added as listener.
getTXPCoordinator
The transaction processor coordinator.- Specified by:
getTXPCoordinator
in interfaceIServer
getKStringInfoProvider
/** Gets the session's IKStringInfoProvider from the ClientSessionGyro threads, and if not found, from the application session gyro threads.- Specified by:
getKStringInfoProvider
in interfaceIKStringInfoProviderHolder
- Returns:
- The current client or application session's IKStringInfoProvider instance, or null if not found.
registerApplication
Registers an application with the server.- Parameters:
jndiName
- The full JNDI name of the application.injector
- The instance of the application injector.
unregisterApplication
Unregisters an application with the server.- Parameters:
jndiName
- The full JNDI name of the application.injector
- The instance of the application injector.
getHistory
Gets the history entries gathered between a date up to the last available entry. The history entries are gathered at specific interval defined at start of history.- Parameters:
start
- The start time for the events in milliseconds since the Epoch, or zero for all history entries.- Returns:
- The entries, possibly empty array.
getInfoClass
Gets the class of the additional information.- Specified by:
getInfoClass
in interfaceIAdditonalInformation<UserInfoHistoryEntry>
- Returns:
- The Class for additional information, or null for none.
getAdditionalInformation
Allocates a new instance of the additional information to be stored with the history entry. If the
returnsgetInfoClass()
null
, this method can also returnnull
.- Specified by:
getAdditionalInformation
in interfaceIAdditonalInformation<UserInfoHistoryEntry>
- Returns:
- A new instance of additional information, or null for none.
isUserLoginEnabled
public final boolean isUserLoginEnabled()Checks if user login is enabled.- Returns:
- The user login enabled flag.
setUserLoginEnabled
Sets the user login enabled flag.- Parameters:
on
- The enabled flag.- Throws:
SecurityException
- If the caller is not allowed to perform this function.
isUserLoginPermittedNow
public final boolean isUserLoginPermittedNow()Verifies if the user login is permitted at the current time.- Returns:
- The login permission flag.
getUserLoginProhibitedIntervals
Gets the time intervals when user login is prohibited.- Returns:
- The array of time intervals.
addUserLoginProhibitedInterval
public final boolean addUserLoginProhibitedInterval(TimeInterval timeInterval) throws SecurityException Removes a time interval when user login is prohibited.- Parameters:
timeInterval
- The time interval.- Returns:
- Success flag
true
meaning OK,false
means no change, or the interval was already present. - Throws:
SecurityException
- If the caller is not allowed to perform this function.
initializeCompressedFiles
Initializes and compresses the HTML files and all sources and CSS files loaded from there.- Throws:
IOException
- For I/O errors.
getSourceResolver
Gets the source file resolver.- Returns:
- The instance used to resolve file names.
getFileProviderEngine
Gets the WSFile provider engine.The engine is initialized as soon as the server configuration file has been loaded, before any additional processing is done.
- Returns:
- The file provider engine, null if not yet initialized.
getWebThumbs
Gets the instance of the WebThumbs.- Returns:
- The singleton (per server instance).
- Throws:
IOException
- For I/O errors when creating the WebThumbs directory for persistent images.
getWebLogos
Gets the instance of the WebLogos.- Returns:
- The singleton (per server instance).
- Throws:
IOException
- For I/O errors when creating the WebLogos directory for persistent images.
addFileUploader
Adds a new web file loader acceptor for an end point.- Parameters:
endPoint
- The end point.- Throws:
ClassCastException
- If the end point is not configurable to receive file uploads.IllegalStateException
- If the end point is already added.
removeFileUploader
Removes a new web file loader acceptor for an end point.- Parameters:
endPoint
- The end point.
getWSUploaderService
Gets the web service file uploader service.- Returns:
- The instance of the web service file uploader service.
doCompressNormalHTML
public abstract boolean doCompressNormalHTML()Flag indicating the normal HTML files needs compression along with CSS minify and JS compression.The files are typically: iiziApp.html and iiziVSViewer.html.
- Returns:
- true by default, override to return false (e.g. for internal development).
getWebServerCompression
Gets the web server compression interface.- Returns:
- The instance of the interface implemented by the web server.
getWebServerMapping
Gets the map of web server mappings for files.- Parameters:
mappedFile
- The file to map.- Returns:
- The mapping from String (such as "dojo.root" or "iiziRun.root") to File Returns null if not found.
getETag
Gets the map of web server mappings for files.- Parameters:
file
- The file.- Returns:
- The weak ETag for the resource.mapping from String (such as "dojo.root" or "iiziRun.root") to File Returns null if not found.