org.ow2.jonas.ejb2.internal
Class JOnASEJBService

java.lang.Object
  extended by javax.management.NotificationBroadcasterSupport
      extended by org.ow2.jonas.lib.reconfig.ReconfigEmitter
          extended by org.ow2.jonas.lib.service.AbsServiceImpl
              extended by org.ow2.jonas.ejb2.internal.JOnASEJBService
All Implemented Interfaces:
NotificationBroadcaster, NotificationEmitter, org.ow2.jonas.ejb2.EJBService, JOnASEJBServiceMBean, org.ow2.jonas.service.Service

public class JOnASEJBService
extends org.ow2.jonas.lib.service.AbsServiceImpl
implements org.ow2.jonas.ejb2.EJBService, JOnASEJBServiceMBean

Implementation of the EJB Container Service for jonas. This class works only with jonas_ejb classes.

Author:
Philippe Coq, Jeff Mesnil (Security), Markus Karg (Novell port), Christophe Ney (for making easier Enhydra integration), Adriana Danes (complete management methods), Florent Benoit & Ludovic Bert (Ear service, deployJars, undeployJars), Benjamin Bonnet (max thread pool size), Michel-Ange Anton (JSR77 MBean : EJBModule), Adriana Danes (JSR77)

Field Summary
static String BMP
          BeanManaged Management properties.
static String CMP
          ContainerManaged Management properties.
protected static String WORK_DIR
          The name of the working directory.
protected static String WORK_EJBJARS_DIR
          The name of the working ejbjars directory.
 
Fields inherited from class org.ow2.jonas.lib.reconfig.ReconfigEmitter
RECONFIG_TYPE, SAVE_RECONFIG_TYPE
 
Constructor Summary
JOnASEJBService()
          Default constructor.
 
Method Summary
 void checkGenIC(String fileName, URL[] urls)
          Check that GenIC have been applied on the given ejb-jar file If it was not done, it run GenIC against the file.
 String createContainer(Context ctx)
          Create a JOnAS Container for all the beans that are described in a .xml file, or belong to .jar file.
 String createContainer(String fileName)
          Create an ejb container for the EJBs contained in a .jar (or .xml) file.
 void deployJars(Context ctx)
          Deploy the given ejb-jars of an ear file with the specified parent classloader (ear classloader).
 void doStart()
          Start the Service Initialization of the service is already done.
 void doStop()
          Stop the service: - Remove all JOnAS Containers.
 org.ow2.jonas.cmi.CmiService getCmiService()
           
 org.ow2.jonas.lib.ejb21.Container getContainer(String fileName)
          Get the Container by its file name (.xml or .jar)
 String getContainerContextID(String containerFileName)
          
 Integer getCurrentNumberOfContainer()
          MBean method
 Set getDataSourceDependence(String dsName)
          MBean method
 List<String> getDeployedJars()
          Return the list of all loaded EJB container.
 Set getJmsConnectionFactoryDependence(String cfName)
          Management method
 Set getJmsDestinationDependence(String destName)
          Manangement method
 Set getMailFactoryDependence(String mfName)
          Management method
 Timer getTimer(org.ow2.jonas.ejb2.JTimerHandleInfo info)
          
 Integer getTotalCurrentNumberOfBeanType()
          MBean method
 Integer getTotalCurrentNumberOfBMPType()
          MBean method
 Integer getTotalCurrentNumberOfCMPType()
          MBean method
 Integer getTotalCurrentNumberOfMDBType()
          MBean method
 Integer getTotalCurrentNumberOfSBFType()
          MBean method
 Integer getTotalCurrentNumberOfSBLType()
          MBean method
protected  void initWorkingDirectory()
          Create working directory for EJB2.
 Boolean isJarDeployed(String fileName)
          Test if the specified file is already deployed (if a container is created for this jar).
 boolean isJarDeployedByWorkName(String workFileName)
          Test if the specified jar identified with its work name is already deployed (if a container is created for this jar).
 boolean isJarLoaded(String fileName)
          Test if the specified filename is already deployed or not
 org.ow2.jonas.lib.ejb21.Container[] listContainers()
          List JOnAS container created by EJB Service
 void removeCache(ClassLoader earClassLoader)
          Make a cleanup of the cache of deployment descriptor.
 void removeContainer(org.ow2.jonas.lib.ejb21.Container cont)
          Remove a JOnAS container
 void removeContainer(org.ow2.jonas.lib.ejb21.Container cont, boolean isEarCase)
          Remove the specified container.
 void removeContainer(String fileName)
          Remove EJB container corresponding to a .JAR file.
 Timer restartTimer(org.ow2.jonas.ejb2.JTimerHandleInfo info)
          
 void setAutoGenic(boolean autoGenIC)
           
 void setAutoGenicArgs(String args)
           
 void setCmiService(org.ow2.jonas.cmi.CmiService cmiService)
          Set the reference on CMI service.
 void setComponentContextFactory(org.ow2.jonas.naming.JComponentContextFactory componentContextFactory)
           
 void setDeployerManager(org.ow2.util.ee.deploy.api.deployer.IDeployerManager deployerManager)
           
 void setHaService(org.ow2.jonas.ha.HaService haService)
          Set the reference on HA service.
 void setJmxService(org.ow2.jonas.jmx.JmxService jmxService)
           
 void setNaming(org.ow2.jonas.naming.JNamingManager naming)
           
 void setParsingwithvalidation(boolean validate)
           
 void setRegistry(org.ow2.jonas.registry.RegistryService registry)
           
 void setResourceService(org.ow2.jonas.resource.ResourceService resService)
          Set the reference on resource service.
 void setSecurityService(org.ow2.jonas.security.SecurityService securityService)
           
 void setTransactionService(org.ow2.jonas.tm.TransactionService transactionService)
           
 void setWebServicesService(org.ow2.jonas.ws.WebServicesService webServicesService)
           
protected  void setWorkCleanerService(org.ow2.jonas.workcleaner.WorkCleanerService workCleanerService)
          Method called when the workCleanerService is bound to the component.
 void setWorkManagerService(org.ow2.jonas.workmanager.WorkManagerService workManagerService)
           
 void syncAllEntities(boolean passivate)
          Synchronized all entity bean containers
 void unDeployJars(URL[] urls)
          Undeploy the given ejb-jars of an ear file.
 
Methods inherited from class org.ow2.jonas.lib.service.AbsServiceImpl
convertToList, doInit, getDomainName, getJonasServerName, getName, getServerProperties, init, isStarted, setName, setServerProperties, start, stop, throwRequirementException, toString
 
Methods inherited from class org.ow2.jonas.lib.reconfig.ReconfigEmitter
initLogger, sendReconfigNotification, sendSaveNotification
 
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ow2.jonas.service.Service
getName, init, isStarted, setName, start, stop
 

Field Detail

WORK_DIR

protected static final String WORK_DIR
The name of the working directory.


WORK_EJBJARS_DIR

protected static final String WORK_EJBJARS_DIR
The name of the working ejbjars directory.


BMP

public static final String BMP
BeanManaged Management properties.

See Also:
Constant Field Values

CMP

public static final String CMP
ContainerManaged Management properties.

See Also:
Constant Field Values
Constructor Detail

JOnASEJBService

public JOnASEJBService()
Default constructor.

Method Detail

setAutoGenic

public void setAutoGenic(boolean autoGenIC)
Parameters:
autoGenIC - Engage Auto GenIC ?

setParsingwithvalidation

public void setParsingwithvalidation(boolean validate)
Parameters:
validate - Use a validating parser ?

setAutoGenicArgs

public void setAutoGenicArgs(String args)
Parameters:
args - List of arguments to the Auto-GenIC process.

doStart

public void doStart()
             throws org.ow2.jonas.service.ServiceException
Start the Service Initialization of the service is already done.

Specified by:
doStart in class org.ow2.jonas.lib.service.AbsServiceImpl
Throws:
org.ow2.jonas.service.ServiceException

doStop

public void doStop()
Stop the service: - Remove all JOnAS Containers. - Unbinds all the EJBHome names from JNDI

Specified by:
doStop in class org.ow2.jonas.lib.service.AbsServiceImpl

initWorkingDirectory

protected void initWorkingDirectory()
Create working directory for EJB2.


setWorkCleanerService

protected void setWorkCleanerService(org.ow2.jonas.workcleaner.WorkCleanerService workCleanerService)
Method called when the workCleanerService is bound to the component.

Parameters:
workCleanerService - the workCleanerService reference

createContainer

public String createContainer(Context ctx)
                       throws Exception
Create a JOnAS Container for all the beans that are described in a .xml file, or belong to .jar file.

Specified by:
createContainer in interface org.ow2.jonas.ejb2.EJBService
Returns:
The ObjectName of the MBean associated to the container (i.e. to the deployed module)
Throws:
Exception - if an error occur during the creation of the container.

getContainer

public org.ow2.jonas.lib.ejb21.Container getContainer(String fileName)
Get the Container by its file name (.xml or .jar)

Parameters:
fileName - given file name on which
Returns:
Container

removeContainer

public void removeContainer(org.ow2.jonas.lib.ejb21.Container cont)
Remove a JOnAS container


listContainers

public org.ow2.jonas.lib.ejb21.Container[] listContainers()
List JOnAS container created by EJB Service


syncAllEntities

public void syncAllEntities(boolean passivate)
Synchronized all entity bean containers

Specified by:
syncAllEntities in interface org.ow2.jonas.ejb2.EJBService
Specified by:
syncAllEntities in interface JOnASEJBServiceMBean
Parameters:
passivate - passivate instances after synchronization.

getCurrentNumberOfContainer

public Integer getCurrentNumberOfContainer()
MBean method

Specified by:
getCurrentNumberOfContainer in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Container currently in JOnAS

getTotalCurrentNumberOfBeanType

public Integer getTotalCurrentNumberOfBeanType()
MBean method

Specified by:
getTotalCurrentNumberOfBeanType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Bean Type currently in JOnAS

getTotalCurrentNumberOfBMPType

public Integer getTotalCurrentNumberOfBMPType()
MBean method

Specified by:
getTotalCurrentNumberOfBMPType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Bmp Type currently in JOnAS

getTotalCurrentNumberOfCMPType

public Integer getTotalCurrentNumberOfCMPType()
MBean method

Specified by:
getTotalCurrentNumberOfCMPType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Cmp Type currently in JOnAS

getTotalCurrentNumberOfSBFType

public Integer getTotalCurrentNumberOfSBFType()
MBean method

Specified by:
getTotalCurrentNumberOfSBFType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Sbf Type currently in JOnAS

getTotalCurrentNumberOfSBLType

public Integer getTotalCurrentNumberOfSBLType()
MBean method

Specified by:
getTotalCurrentNumberOfSBLType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Sbl Type currently in JOnAS

getTotalCurrentNumberOfMDBType

public Integer getTotalCurrentNumberOfMDBType()
MBean method

Specified by:
getTotalCurrentNumberOfMDBType in interface JOnASEJBServiceMBean
Returns:
Integer Total Number of Mdb Type currently in JOnAS

getDeployedJars

public List<String> getDeployedJars()
Return the list of all loaded EJB container.

Specified by:
getDeployedJars in interface JOnASEJBServiceMBean
Returns:
The list of deployed EJB container

removeContainer

public void removeContainer(String fileName)
                     throws Exception
Remove EJB container corresponding to a .JAR file. This method is called by the J2EESererver MBean's undeployJar(fileName) and by the Adm.removeBeans(fileName).

Specified by:
removeContainer in interface org.ow2.jonas.ejb2.EJBService
Parameters:
fileName - name of the file containing the JAR module
Throws:
Exception

createContainer

public String createContainer(String fileName)
                       throws Exception
Create an ejb container for the EJBs contained in a .jar (or .xml) file.

Specified by:
createContainer in interface org.ow2.jonas.ejb2.EJBService
Parameters:
file - Name of the file to be deployed
Returns:
The ObjectName of the MBean associated to the container (to the deployed module)
Throws:
Exception

isJarDeployed

public Boolean isJarDeployed(String fileName)
Test if the specified file is already deployed (if a container is created for this jar).

Specified by:
isJarDeployed in interface org.ow2.jonas.ejb2.EJBService
Parameters:
fileName - the name of the jar file
Returns:
true if the jar was deployed, false otherwise

isJarDeployedByWorkName

public boolean isJarDeployedByWorkName(String workFileName)
Test if the specified jar identified with its work name is already deployed (if a container is created for this jar).

Specified by:
isJarDeployedByWorkName in interface org.ow2.jonas.ejb2.EJBService
Parameters:
workFileName - the internal name of the jar file (working copy)
Returns:
true if the jar was deployed, false otherwise

getDataSourceDependence

public Set getDataSourceDependence(String dsName)
MBean method

Specified by:
getDataSourceDependence in interface JOnASEJBServiceMBean
Returns:
the ObjectName of all the ejbs using this datasource.

getJmsDestinationDependence

public Set getJmsDestinationDependence(String destName)
Manangement method

Specified by:
getJmsDestinationDependence in interface JOnASEJBServiceMBean
Returns:
the ObjectName of all the ejb using this destination.

getJmsConnectionFactoryDependence

public Set getJmsConnectionFactoryDependence(String cfName)
Management method

Specified by:
getJmsConnectionFactoryDependence in interface JOnASEJBServiceMBean
Returns:
the ObjectName of all the ejb using this Connection Factory.

getMailFactoryDependence

public Set getMailFactoryDependence(String mfName)
Management method

Specified by:
getMailFactoryDependence in interface JOnASEJBServiceMBean
Returns:
the ObjectName of all the ejb using a given Mail Factory.

deployJars

public void deployJars(Context ctx)
                throws org.ow2.jonas.service.ServiceException
Deploy the given ejb-jars of an ear file with the specified parent classloader (ear classloader). (This method is only used for the ear applications, not for the ejb-jar applications).

Specified by:
deployJars in interface org.ow2.jonas.ejb2.EJBService
Parameters:
ctx - the context containing the configuration to deploy the ejbjars.
This context contains the following parameters :
- earRootUrl the root of the ear application.
- earURL filename of the EAR.
- earClassLoader the ear classLoader of the ear application.
- ejbClassLoader the ejb classLoader for the ejbjars.
- jarURLs the list of the urls of the ejb-jars to deploy.
- roleNames the role names of the security-role.
Throws:
org.ow2.jonas.service.ServiceException - if an error occurs during the deployment.

unDeployJars

public void unDeployJars(URL[] urls)
Undeploy the given ejb-jars of an ear file. (This method is only used for the ear applications, not for the ejb-jar applications).

Specified by:
unDeployJars in interface org.ow2.jonas.ejb2.EJBService
Parameters:
urls - the list of the urls of the ejb-jars to undeploy.

removeContainer

public void removeContainer(org.ow2.jonas.lib.ejb21.Container cont,
                            boolean isEarCase)
Remove the specified container.

Parameters:
cont - the container to remove.
isEarCase - true if only if the removeContainer method is called in the ear case, false otherwise.

removeCache

public void removeCache(ClassLoader earClassLoader)
Make a cleanup of the cache of deployment descriptor. This method must be invoked after the ear deployment by the EAR service. the deployment of an ear by .

Specified by:
removeCache in interface org.ow2.jonas.ejb2.EJBService
Parameters:
earClassLoader - the ClassLoader of the ear application to remove from the cache.

isJarLoaded

public boolean isJarLoaded(String fileName)
Test if the specified filename is already deployed or not

Specified by:
isJarLoaded in interface JOnASEJBServiceMBean
Parameters:
fileName - the name of the jar file.
Returns:
true if the jar is deployed, else false.

checkGenIC

public void checkGenIC(String fileName,
                       URL[] urls)
Check that GenIC have been applied on the given ejb-jar file If it was not done, it run GenIC against the file.

Specified by:
checkGenIC in interface org.ow2.jonas.ejb2.EJBService
Parameters:
fileName - given EJB-JAR file.
urls - Array of URLs used as CLASSPATH during EJB compilation

getContainerContextID

public String getContainerContextID(String containerFileName)

Specified by:
getContainerContextID in interface org.ow2.jonas.ejb2.EJBService

getTimer

public Timer getTimer(org.ow2.jonas.ejb2.JTimerHandleInfo info)

Specified by:
getTimer in interface org.ow2.jonas.ejb2.EJBService

restartTimer

public Timer restartTimer(org.ow2.jonas.ejb2.JTimerHandleInfo info)

Specified by:
restartTimer in interface org.ow2.jonas.ejb2.EJBService

setJmxService

public void setJmxService(org.ow2.jonas.jmx.JmxService jmxService)
Parameters:
jmxService - the jmxService to set

setSecurityService

public void setSecurityService(org.ow2.jonas.security.SecurityService securityService)
Parameters:
securityService - the securityService to set

setTransactionService

public void setTransactionService(org.ow2.jonas.tm.TransactionService transactionService)
Parameters:
transactionService - the transactionService to set

setWorkManagerService

public void setWorkManagerService(org.ow2.jonas.workmanager.WorkManagerService workManagerService)
Parameters:
workManagerService - the workManagerService to set

setWebServicesService

public void setWebServicesService(org.ow2.jonas.ws.WebServicesService webServicesService)
Parameters:
webServicesService - the webServicesService to set

setNaming

public void setNaming(org.ow2.jonas.naming.JNamingManager naming)
Parameters:
naming - the naming to set

setComponentContextFactory

public void setComponentContextFactory(org.ow2.jonas.naming.JComponentContextFactory componentContextFactory)
Parameters:
componentContextFactory - the componentContextFactory to set

setRegistry

public void setRegistry(org.ow2.jonas.registry.RegistryService registry)
Parameters:
registry - the registry to set

setHaService

public void setHaService(org.ow2.jonas.ha.HaService haService)
Set the reference on HA service.

Parameters:
haService - the reference on HA service

setResourceService

public void setResourceService(org.ow2.jonas.resource.ResourceService resService)
Set the reference on resource service.

Parameters:
resService - the reference on Resource service

getCmiService

public org.ow2.jonas.cmi.CmiService getCmiService()
Returns:
the reference on CMI service

setCmiService

public void setCmiService(org.ow2.jonas.cmi.CmiService cmiService)
Set the reference on CMI service.

Parameters:
cmiService - the reference on CMI service

setDeployerManager

public void setDeployerManager(org.ow2.util.ee.deploy.api.deployer.IDeployerManager deployerManager)
Parameters:
deployerManagerService - the deployerManagerService to set


Copyright © 2008 OW2 Consortium. All Rights Reserved.