java.lang.Object
org.tentackle.app.AbstractApplication
org.tentackle.persist.app.AbstractServerApplication
- All Implemented Interfaces:
Application,ConnectionManagerProvider,DomainContextProvider,org.tentackle.session.SessionPoolProvider,org.tentackle.session.SessionProvider
- Direct Known Subclasses:
ServerApplication
public abstract class AbstractServerApplication
extends AbstractApplication
implements org.tentackle.session.SessionPoolProvider, ConnectionManagerProvider
Base class for server applications.
- Author:
- harald
-
Field Summary
Fields inherited from class org.tentackle.app.AbstractApplication
DISABLE_MODIFICATION_TRACKER, DISABLE_SECURITY_MANAGER, ENABLE_STATISTICS, LOCALE, SCRIPTING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidcleanup()protected voidprotected voidprotected voidconfigureSessionInfo(org.tentackle.session.SessionInfo sessionInfo) Configures the session info.protected ConnectionManagerCreates the connection manager for the client sessions.org.tentackle.session.MultiUserSessionPoolCreates the remote session pool to serve the client sessions.org.tentackle.session.SessionPoolCreates the session pool to serve the client sessions.protected voidDe-registers all JDBC-Drivers loaded by the app's classloader.
Necessary in containers only (in case connected directly via JDBC and not via JNDI).protected voidDetects whether this application is running within a container.
The result can be retrieved byisRunningInContainer().protected voidorg.tentackle.session.MultiUserSessionPoolorg.tentackle.session.SessionPoolprotected voidbooleanIndicates whether this application is running within a container.booleanisServer()protected booleanprotected voidlogin()Connects the server to the database backend or another remote server.voidLogs and clears the statistics.protected voidsetSessionInfo(org.tentackle.session.SessionInfo sessionInfo) protected voidstartup()protected voidValidates the validators.
The default implementation loads allValidators of all PDO classes and invokesValidator.validate().Methods inherited from class org.tentackle.app.AbstractApplication
applyProperties, configure, configureSecurityManager, createDomainContext, createSession, createSessionInfo, filterName, filterVersion, getCommandLine, getCreationTime, getDomainContext, getName, getProperties, getProperty, getPropertyAsChars, getPropertyAsCharsIgnoreCase, getPropertyIgnoreCase, getSessionInfo, getVersion, initialize, isInteractive, logStackdump, setDomainContext, setProperties, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.tentackle.app.Application
getUser, register, start, stop, unregisterMethods inherited from interface org.tentackle.pdo.DomainContextProvider
on, on, op, op
-
Constructor Details
-
AbstractServerApplication
Creates a server.- Parameters:
name- the application name, null for default nameversion- the application version, null for default version
-
-
Method Details
-
getSessionPool
public org.tentackle.session.SessionPool getSessionPool()- Specified by:
getSessionPoolin interfaceorg.tentackle.session.SessionPoolProvider
-
getRemoteSessionPool
public org.tentackle.session.MultiUserSessionPool getRemoteSessionPool()- Specified by:
getRemoteSessionPoolin interfaceorg.tentackle.session.SessionPoolProvider
-
isServer
public boolean isServer()- Specified by:
isServerin interfaceApplication- Overrides:
isServerin classAbstractApplication
-
setSessionInfo
protected void setSessionInfo(org.tentackle.session.SessionInfo sessionInfo) Overridden to protect the SessionInfo once it is set.
- Overrides:
setSessionInfoin classAbstractApplication
-
configurePreferences
protected void configurePreferences()- Overrides:
configurePreferencesin classAbstractApplication
-
configureModificationTracker
protected void configureModificationTracker()- Overrides:
configureModificationTrackerin classAbstractApplication
-
initializeScripting
protected void initializeScripting()- Overrides:
initializeScriptingin classAbstractApplication
-
validateValidators
protected void validateValidators()Validates the validators.
The default implementation loads allValidators of all PDO classes and invokesValidator.validate(). This will load allCompoundValues and compiles the scripts, if any. -
finishStartup
protected void finishStartup()- Overrides:
finishStartupin classAbstractApplication
-
createSessionPool
public org.tentackle.session.SessionPool createSessionPool()Creates the session pool to serve the client sessions.- Returns:
- the session pool
-
createRemoteSessionPool
public org.tentackle.session.MultiUserSessionPool createRemoteSessionPool()Creates the remote session pool to serve the client sessions.- Returns:
- the session pool
-
getSession
- Specified by:
getSessionin interfaceorg.tentackle.session.SessionProvider- Overrides:
getSessionin classAbstractApplication
-
createConnectionManager
Creates the connection manager for the client sessions. The default creates an MpxConnectionManager.- Returns:
- the connection manager
-
getConnectionManager
- Specified by:
getConnectionManagerin interfaceConnectionManagerProvider
-
configureSessionInfo
protected void configureSessionInfo(org.tentackle.session.SessionInfo sessionInfo) Configures the session info.- Parameters:
sessionInfo- the session info
-
startup
protected void startup()- Specified by:
startupin classAbstractApplication
-
login
protected void login()Connects the server to the database backend or another remote server. -
cleanup
protected void cleanup()- Overrides:
cleanupin classAbstractApplication
-
isRunningInContainer
public boolean isRunningInContainer()Indicates whether this application is running within a container.- Returns:
- true if running in a container, false if not
-
isSystemExitNecessaryToStop
protected boolean isSystemExitNecessaryToStop()- Overrides:
isSystemExitNecessaryToStopin classAbstractApplication
-
detectContainer
protected void detectContainer()Detects whether this application is running within a container.
The result can be retrieved byisRunningInContainer(). -
deregisterJdbcDrivers
De-registers all JDBC-Drivers loaded by the app's classloader.
Necessary in containers only (in case connected directly via JDBC and not via JNDI). Avoids memory leaks.- Parameters:
cl- the app's classloader
-
activateStatistics
protected void activateStatistics()- Overrides:
activateStatisticsin classAbstractApplication
-
logStatistics
public void logStatistics()Logs and clears the statistics.- Overrides:
logStatisticsin classAbstractApplication
-