Package com.iizix.server.app
Class AppDefinition
java.lang.Object
com.iizix.server.app.AppDefinition
Application definition when loading the applications/projects.
- Author:
- Christopher Mindus
Field Summary
FieldsConstructor Summary
ConstructorsConstructorDescriptionAppDefinition(DBApp dbApp, boolean doHotDeploy) Constructor for an app definition from a database definition.AppDefinition(String id, Set<String> aliases, String serverEnvironmentName, File iiziAppFile, boolean doHotDeploy) Constructor for an app definition for a Jar file (iiziAppFileis non-null) or separate directories (calladdModuleDirectory(File)to add module directories, used for development server only).Method Summary
Modifier and TypeMethodDescriptionbooleanaddListener(IAppChangedListener listener) Adds an app change listener to be informed of app load/reloads and/or app dispose.voidaddModuleDirectory(File dir) Adds a directory for loading.voiddispose()Disposes of the application definition.voidDisposes of the application's hot deploy.Gets the unmodifiable application aliases set.Get the web server file provider for the application session.Gets the application factory.Returns the Server environment for the application.booleanChecks if the iiziApp has been changed and needs reload.booleanChecks if hot deploy is used for this application.voidloadApplication(ServerShell server) Loads the application.booleanreload(ServerShell server, boolean forceReload) Reloads the application if it has changed.booleanremoveListener(IAppChangedListener listener) Adds an app change listener to be informed of app load/reloads and/or app dispose.
Field Details
id
The ID of the application.
Constructor Details
AppDefinition
Constructor for an app definition from a database definition.- Parameters:
dbApp- The database app instance.doHotDeploy- Hot deploy flag.
AppDefinition
public AppDefinition(String id, Set<String> aliases, String serverEnvironmentName, File iiziAppFile, boolean doHotDeploy) Constructor for an app definition for a Jar file (iiziAppFileis non-null) or separate directories (calladdModuleDirectory(File)to add module directories, used for development server only).- Parameters:
id- The application ID.aliases- The unmodifiable application aliases set.serverEnvironmentName- The server environment name to use, null for default.iiziAppFile- The application file.doHotDeploy- Hot deploy flag.
Method Details
getAppAliases
Gets the unmodifiable application aliases set.- Returns:
- The set of aliases, the App ID is not among the aliases. Return value is never
null.
dispose
public void dispose()Disposes of the application definition.This method is intended to be called from the server: DO NOT CALL THIS METHOD.
addListener
Adds an app change listener to be informed of app load/reloads and/or app dispose.- Parameters:
listener- The listener to add.- Returns:
trueif the listener was added,falseotherwise (nothing changed).- Throws:
NullPointerException- If thelistenerisnull.
removeListener
Adds an app change listener to be informed of app load/reloads and/or app dispose.- Parameters:
listener- The listener to remove.- Returns:
trueiflisteneris successfully removed,falseotherwise, i.e. if not previous an added listener instance.
getFactory
Gets the application factory.- Returns:
- The application factory once loaded,
nullotherwise.
addModuleDirectory
Adds a directory for loading.- Parameters:
dir- The Module directory to load.- Throws:
IOException- if the directory is already added, or if the application definition is a compiled application.
hasAppChanged
public boolean hasAppChanged()Checks if the iiziApp has been changed and needs reload.- Returns:
- true if app has changed and hot deploy is used, false when not changed or hot deploy is not used.
getServerEnvironmentName
Returns the Server environment for the application.loadApplication
public void loadApplication(ServerShell server) throws PropException, IOException, ServerApplicationSetupException, IllegalStateException Loads the application.- Throws:
IOException- For file errors.PropException- For property errors.ServerApplicationSetupException- In case a plug-in fail to initialize.IllegalStateException- If there are duplicates among the names, or if there is a collision of names in the Assets table when applying the App ID and/or it's aliases, or the asset table is corrupt.
isHotDeployEnabled
public boolean isHotDeployEnabled()Checks if hot deploy is used for this application.- Returns:
- true if hot deploy is enabled, false otherwise.
reload
public boolean reload(ServerShell server, boolean forceReload) throws PropException, IOException, ServerApplicationSetupException, IllegalStateException Reloads the application if it has changed. Apps loaded from databases are not reloaded using this method.- Returns:
- true if reloaded, false if not changed or not loaded with hot deploy.
- Throws:
IOException- For file errors.PropException- For property errors.ServerApplicationSetupException- In case a plug-in fail to initialize.IllegalStateException- If there are duplicates among the names, or if there is a collision of names in the Assets table when applying the App ID and/or it's aliases, or the asset table is corrupt.
disposeHotDeploy
public void disposeHotDeploy()Disposes of the application's hot deploy.getAppSessionFileProvider
Get the web server file provider for the application session.- Returns:
- The web server file provider.
- Throws:
IOException- If the directory for the application session files failed to be created.IllegalStateException- If the application is not yet loaded or is disposed of.