org.objectweb.jonas.web.catalina55
Class CatalinaJWebContainerServiceImpl

java.lang.Object
  extended by javax.management.NotificationBroadcasterSupport
      extended by org.objectweb.jonas.management.ReconfigDispatcher
          extended by org.objectweb.jonas.service.AbsServiceImpl
              extended by org.objectweb.jonas.web.AbsJWebContainerServiceImpl
                  extended by org.objectweb.jonas.web.catalina55.CatalinaJWebContainerServiceImpl
All Implemented Interfaces:
javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, ReconfigDispatcherMBean, Service, AbsJWebContainerServiceImplMBean, JWebContainerService, CatalinaJWebContainerService

public class CatalinaJWebContainerServiceImpl
extends AbsJWebContainerServiceImpl
implements CatalinaJWebContainerService

This class provides an implementation of the Catalina service (as web container service).

Author:
Florent Benoit, Ludovic Bert (Tomcat 4.0)

Nested Class Summary
 
Nested classes/interfaces inherited from class org.objectweb.jonas.web.AbsJWebContainerServiceImpl
AbsJWebContainerServiceImpl.WebLoaderHolder
 
Field Summary
protected static java.lang.String CONFIG_FILE
          Relative path of the configuration file
 
Fields inherited from class org.objectweb.jonas.web.AbsJWebContainerServiceImpl
AUTOLOADDIR, CLASS, DESCRIPTORS, INEAR_WORK_WEBAPPS_DIR_SUFFIX, JONAS_BASE, PARSINGWITHVALIDATION, SINGLE_WORK_WEBAPPS_DIR_SUFFIX, WEBAPPS_DIR, WORK_DIR, WORK_WEBAPPS_DIR
 
Fields inherited from class org.objectweb.jonas.management.ReconfigDispatcher
RECONFIG_TYPE, SAVE_RECONFIG_TYPE
 
Constructor Summary
CatalinaJWebContainerServiceImpl()
           
 
Method Summary
protected  void checkStartedContext(org.apache.catalina.Context context, PermissionManager permissionManager)
          Check that the context that was started was right configured
protected  org.apache.tomcat.util.digester.Digester createServerDigester()
          Create and configure the Digester that will be used for the xml parsing of the configuration file.
protected  void doInit(javax.naming.Context ctx)
          Initialize the Catalina service.
protected  void doRegisterWar(javax.naming.Context ctx)
          Deploy a specific WAR file specified in the context.
 void doStart()
          Start the Catalina service in a new thread
protected  void doStop()
          Stop the Catalina service.
protected  void doUnRegisterWar(javax.naming.Context ctx)
          Undeploy a specific WAR file specified in the context.
 org.apache.catalina.Host findHost(java.lang.String hostName)
          Find the specified host.
protected  java.io.File getConfigFile()
          Return a File object representing the server.xml configuration file.
protected  java.util.List getConfiguredMatchingJonasContexts(java.lang.String contextRoot, java.io.File fpackedWar, java.lang.String destDir)
          Check if there is a previous JOnASStandardContext which match the current context If true, deploy our context into the configured context
protected  java.util.List getContexts()
          Gets all the contexts of the current Tomcat server
 java.lang.String getDefaultHost()
          Return the Default host name of the web container.
 java.lang.String getDefaultHttpPort()
          Return the Default HTTP port number of the web container.
 java.lang.String getDefaultHttpsPort()
          Return the Default HTTPS port number of the web container (can be null if multiple HTTPS connector has been set).
protected  java.util.List getEngines()
          Gets all the engines of the current Tomcat server
protected  void initCatalinaEnvironment()
          Init the environment of catalina set catalina.home, catalina.base and unset the tomcat naming
 boolean isTomcatStarted()
          The server is started ?
 void registerWarMBean(java.lang.String fileName)
          Register a WAR by delegating the operation to the registerWar() method.
 void removeContext(org.apache.catalina.Context context)
          Remove the specified Context from the set of defined Contexts for its associated Host.
protected  javax.naming.Context setGlobalNamingResources()
          Defines the naming resources for tomcat only use for avoid null pointer when using a server.xml of the original distribution
 void setServer(org.apache.catalina.Server server)
          Set the server instance we are configuring.
 void unRegisterWarMBean(java.lang.String fileName)
          Unregister a WAR by delegating the operation to the unRegisterWar() method.
protected  void updateServerInfos()
          Update info of the serverName and serverVersion
 
Methods inherited from class org.objectweb.jonas.web.AbsJWebContainerServiceImpl
deployWars, getAutoloadDirectories, getClassLoader, getContextLinkedClassLoader, getCurrentNumberOfWars, getDeployableWars, getDeployedWars, getInstalledWars, getLogger, getMbeanServer, getNaming, getServerName, getServerVersion, getUnpackDir, getWar, getWarNames, getWebappsDirectory, isWarLoaded, removeCache, setServerName, setServerVersion, unDeployWars
 
Methods inherited from class org.objectweb.jonas.service.AbsServiceImpl
getDomainName, getJonasServerName, getName, init, isStarted, setName, start, stop
 
Methods inherited from class org.objectweb.jonas.management.ReconfigDispatcher
addNotificationListener, getFilter, getHandback, getListener, getNotificationInfo, initLogger, removeNotificationListener, sendReconfigNotification, sendSaveNotification
 
Methods inherited from class javax.management.NotificationBroadcasterSupport
handleNotification, removeNotificationListener, sendNotification
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.jonas.web.JWebContainerService
deployWars, getClassLoader, getContextLinkedClassLoader, getWar, getWebappsDirectory, isWarLoaded, removeCache, unDeployWars
 
Methods inherited from interface org.objectweb.jonas.service.Service
getName, init, isStarted, setName, start, stop
 

Field Detail

CONFIG_FILE

protected static final java.lang.String CONFIG_FILE
Relative path of the configuration file

See Also:
Constant Field Values
Constructor Detail

CatalinaJWebContainerServiceImpl

public CatalinaJWebContainerServiceImpl()
Method Detail

doInit

protected void doInit(javax.naming.Context ctx)
               throws ServiceException
Initialize the Catalina service.

Overrides:
doInit in class AbsJWebContainerServiceImpl
Parameters:
ctx - the configuration context of the service.
Throws:
ServiceException - if the initialization failed.

initCatalinaEnvironment

protected void initCatalinaEnvironment()
                                throws ServiceException
Init the environment of catalina set catalina.home, catalina.base and unset the tomcat naming

Throws:
ServiceException - if catalina home is not set

doStart

public void doStart()
             throws ServiceException
Start the Catalina service in a new thread

Overrides:
doStart in class AbsJWebContainerServiceImpl
Throws:
ServiceException - if the startup failed.

setGlobalNamingResources

protected javax.naming.Context setGlobalNamingResources()
                                                 throws ServiceException
Defines the naming resources for tomcat only use for avoid null pointer when using a server.xml of the original distribution

Returns:
the previous naming context
Throws:
ServiceException - if a naming exception occurs

doStop

protected void doStop()
               throws ServiceException
Stop the Catalina service.

Overrides:
doStop in class AbsJWebContainerServiceImpl
Throws:
ServiceException - if the stop failed.

doRegisterWar

protected void doRegisterWar(javax.naming.Context ctx)
                      throws JWebContainerServiceException
Deploy a specific WAR file specified in the context.

Specified by:
doRegisterWar in class AbsJWebContainerServiceImpl
Parameters:
ctx - the context which contains the configuration in order to deploy the WAR.
Throws:
JWebContainerServiceException - if the registration of the WAR failed.

getConfiguredMatchingJonasContexts

protected java.util.List getConfiguredMatchingJonasContexts(java.lang.String contextRoot,
                                                            java.io.File fpackedWar,
                                                            java.lang.String destDir)
Check if there is a previous JOnASStandardContext which match the current context If true, deploy our context into the configured context

Parameters:
contextRoot - name of the context that we want to find preconfigured contexts
fpackedWar - file of the original war file
destDir - name of the unpacked directory of the war file
Returns:
true if a context was found and used

checkStartedContext

protected void checkStartedContext(org.apache.catalina.Context context,
                                   PermissionManager permissionManager)
                            throws JWebContainerServiceException
Check that the context that was started was right configured

Parameters:
context - context to check
permissionManager - the permission manager used for JACC
Throws:
JWebContainerServiceException - if the context was not right configured

getEngines

protected java.util.List getEngines()
                             throws JWebContainerServiceException
Gets all the engines of the current Tomcat server

Returns:
all the engines of the current Tomcat server
Throws:
JWebContainerServiceException - if engines can not be retrieved

getContexts

protected java.util.List getContexts()
                              throws JWebContainerServiceException
Gets all the contexts of the current Tomcat server

Returns:
all the contexts of the current Tomcat server
Throws:
JWebContainerServiceException - if contexts can not be retrieved

doUnRegisterWar

protected void doUnRegisterWar(javax.naming.Context ctx)
                        throws JWebContainerServiceException
Undeploy a specific WAR file specified in the context.

Specified by:
doUnRegisterWar in class AbsJWebContainerServiceImpl
Parameters:
ctx - the context which contains the configuration in order to undeploy a WAR.
Throws:
JWebContainerServiceException - if the unregistration failed.

removeContext

public void removeContext(org.apache.catalina.Context context)
                   throws JWebContainerServiceException
Remove the specified Context from the set of defined Contexts for its associated Host. If this is the last Context for this Host, the Host will also be removed.

Parameters:
context - The Context to be removed
Throws:
JWebContainerServiceException - if the context can not be removed

isTomcatStarted

public boolean isTomcatStarted()
The server is started ?

Specified by:
isTomcatStarted in interface CatalinaJWebContainerService
Returns:
boolean true if the catalina container is running.

setServer

public void setServer(org.apache.catalina.Server server)
Set the server instance we are configuring.

Parameters:
server - The new server

getConfigFile

protected java.io.File getConfigFile()
                              throws java.io.FileNotFoundException
Return a File object representing the server.xml configuration file.

Returns:
a File object representing the server.xml configuration file.
Throws:
java.io.FileNotFoundException - if the configuration file is not found.

findHost

public org.apache.catalina.Host findHost(java.lang.String hostName)
                                  throws JWebContainerServiceException
Find the specified host.

Parameters:
hostName - the name of the host to find.
Returns:
the host found.
Throws:
JWebContainerServiceException - if the specified host cannot be found.

createServerDigester

protected org.apache.tomcat.util.digester.Digester createServerDigester()
Create and configure the Digester that will be used for the xml parsing of the configuration file.

Returns:
Digester the digester containing the rules for the xml parsing of the server.xml.

updateServerInfos

protected void updateServerInfos()
Update info of the serverName and serverVersion

Specified by:
updateServerInfos in class AbsJWebContainerServiceImpl

getDefaultHost

public java.lang.String getDefaultHost()
                                throws JWebContainerServiceException
Return the Default host name of the web container.

Specified by:
getDefaultHost in interface JWebContainerService
Specified by:
getDefaultHost in class AbsJWebContainerServiceImpl
Returns:
the Default host name of the web container.
Throws:
JWebContainerServiceException - when default host cannot be resolved (multiple services).

getDefaultHttpPort

public java.lang.String getDefaultHttpPort()
                                    throws JWebContainerServiceException
Return the Default HTTP port number of the web container. Returns the first connector port if more than one are defined.

Specified by:
getDefaultHttpPort in interface JWebContainerService
Specified by:
getDefaultHttpPort in class AbsJWebContainerServiceImpl
Returns:
the Default HTTP port number of the web container.
Throws:
JWebContainerServiceException - when default HTTP port cannot be resolved or none are defined.

getDefaultHttpsPort

public java.lang.String getDefaultHttpsPort()
                                     throws JWebContainerServiceException
Return the Default HTTPS port number of the web container (can be null if multiple HTTPS connector has been set).

Specified by:
getDefaultHttpsPort in interface JWebContainerService
Specified by:
getDefaultHttpsPort in class AbsJWebContainerServiceImpl
Returns:
the Default HTTPS port number of the web container.
Throws:
JWebContainerServiceException - when default HTTPS port cannot be resolved (0 occurences).

registerWarMBean

public void registerWarMBean(java.lang.String fileName)
                      throws java.rmi.RemoteException,
                             JWebContainerServiceException
Register a WAR by delegating the operation to the registerWar() method. This is used for JMX management.

Specified by:
registerWarMBean in interface AbsJWebContainerServiceImplMBean
Specified by:
registerWarMBean in interface JWebContainerService
Overrides:
registerWarMBean in class AbsJWebContainerServiceImpl
Parameters:
fileName - the name of the war to deploy.
Throws:
java.rmi.RemoteException - if rmi call failed.
JWebContainerServiceException - if the registration failed.

unRegisterWarMBean

public void unRegisterWarMBean(java.lang.String fileName)
                        throws java.rmi.RemoteException,
                               JWebContainerServiceException
Unregister a WAR by delegating the operation to the unRegisterWar() method. This is used for JMX management.

Specified by:
unRegisterWarMBean in interface AbsJWebContainerServiceImplMBean
Specified by:
unRegisterWarMBean in interface JWebContainerService
Overrides:
unRegisterWarMBean in class AbsJWebContainerServiceImpl
Parameters:
fileName - the name of the war to undeploy.
Throws:
java.rmi.RemoteException - if rmi call failed.
JWebContainerServiceException - if the unregistration failed.