Package com.sun.ejb.containers
Class AbstractSingletonContainer
- java.lang.Object
-
- com.sun.ejb.containers.BaseContainer
-
- com.sun.ejb.containers.AbstractSingletonContainer
-
- All Implemented Interfaces:
Container
,JavaEEContainer
,EjbContainerFacade
- Direct Known Subclasses:
BMCSingletonContainer
,CMCSingletonContainer
public abstract class AbstractSingletonContainer extends BaseContainer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
AbstractSingletonContainer.SingletonContextFactory
-
Nested classes/interfaces inherited from class com.sun.ejb.containers.BaseContainer
BaseContainer.ContainerInfo, BaseContainer.ContainerType, BaseContainer.PreInvokeException
-
-
Field Summary
Fields Modifier and Type Field Description protected ClusteredSingletonLookup
clusteredLookup
protected ComponentContext
singletonCtx
protected ObjectFactory
singletonCtxFactory
protected boolean
singletonInitializationFailed
protected AtomicBoolean
singletonInitialized
-
Fields inherited from class com.sun.ejb.containers.BaseContainer
_logger, cacheProbeListener, cacheProbeNotifier, callFlowInfo, componentId, CONTAINER_INITIALIZING, CONTAINER_ON_HOLD, CONTAINER_STARTED, CONTAINER_STOPPED, CONTAINER_UNDEPLOYED, containerInfo, containerState, containerStateManager, containerTransactionManager, containerType, debugMonitorFlag, ejbActivateMethod, ejbClass, ejbContainerUtilImpl, ejbDescriptor, ejbGeneratedOptionalLocalBusinessIntfClass, ejbHome, ejbHomeImpl, ejbHomeStub, ejbIntfMethodInfo, ejbIntfMethods, ejbLocalBusinessHome, ejbLocalBusinessHomeImpl, ejbLocalHome, ejbLocalHomeImpl, EJBLocalObject_getPrimaryKey, EJBObject_getPrimaryKey, ejbOptionalLocalBusinessHome, ejbOptionalLocalBusinessHomeImpl, ejbOptionalLocalBusinessHomeIntf, ejbPassivateMethod, ejbProbeListener, ejbProbeNotifier, ejbRemoteBusinessHome, ejbRemoteBusinessHomeImpl, ejbRemoteBusinessHomeStub, ejbRemoveMethod, envProps, executorProbeListener, hasLocalBusinessView, hasLocalHomeView, hasOptionalLocalBusinessView, hasRemoteBusinessView, hasRemoteHomeView, homeIntf, injectionManager, interceptorManager, invocationInfoMap, invocationManager, isBeanManagedTran, isLocal, isMessageDriven, isRemote, isSession, isSingleton, isStatefulSession, isStatelessSession, isWebServiceEndpoint, jcdiService, loader, localBusinessHomeIntf, localBusinessIntfs, localHomeIntf, logParams, metadata, namingManager, NO_PARAMS, optIntfClassLoader, poolProbeListener, remoteBusinessHomeIntf, remoteBusinessIntfInfo, remoteHomeRefFactory, remoteIntf, scheduleIds, securityManager, sfsbSerializedClass, SINGLETON_BEAN_POOL_PROP, timerProbeListener, timerProbeNotifier, transactionManager, webServiceEndpointIntf, webServiceInvocationInfoMap
-
Fields inherited from interface com.sun.ejb.Container
SEC_CHECKED, SEC_EXCLUDED, SEC_NOT_INITIALIZED, SEC_UNCHECKED, secAttrStrings, TX_BEAN_MANAGED, TX_MANDATORY, TX_NEVER, TX_NOT_INITIALIZED, TX_NOT_SUPPORTED, TX_REQUIRED, TX_REQUIRES_NEW, TX_SUPPORTS, txAttrStrings
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractSingletonContainer(EjbDescriptor desc, ClassLoader loader, SecurityManager sm)
This constructor is called from the JarManager when a Jar is deployed.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected SingletonContextImpl
_constructEJBContextImpl(Object instance)
Must be overridden for any container that supports injectionprotected ComponentContext
_getContext(EjbInvocation invocation)
void
activateEJB(Object ctx, Object instanceKey)
Deprecated.not called and not used in Payara 5protected void
afterBegin(EJBContextImpl context)
protected void
afterCompletion(EJBContextImpl ctx, int status)
protected void
beforeCompletion(EJBContextImpl context)
protected void
checkExists(EJBLocalRemoteObject ejbObj)
Check if the given EJBObject/LocalObject has been removed.protected void
checkInit()
protected EjbInvocation
createEjbInvocation()
protected EjbInvocation
createEjbInvocation(Object ejb, ComponentContext ctx)
EJBLocalObjectImpl
createEJBLocalBusinessObjectImpl(boolean localBeanView)
Called during internal creation of session beanEJBLocalObjectImpl
createEJBLocalObjectImpl()
Called during client creation request through EJB LocalHome view.EJBObjectImpl
createEJBObjectImpl()
EJBObjectImpl
createRemoteBusinessObjectImpl()
protected void
doConcreteContainerShutdown(boolean appBeingUndeployed)
protected void
doTimerInvocationInit(EjbInvocation inv, Object primaryKey)
This is implemented by concrete containers that support TimedObjects.protected void
forceDestroyBean(EJBContextImpl sc)
Force destroy the EJB should be a no-op for singletons.protected EJBLocalObjectImpl
getEJBLocalObjectImpl(Object key)
Not applicable to Singletonsprotected EJBObjectImpl
getEJBObjectImpl(byte[] instanceKey)
Not applicable to Singletonsint
getMaxPoolSize()
long
getMethodReadyCount()
String
getMonitorAttributeValues()
protected EjbMonitoringStatsProvider
getMonitoringStatsProvider(String appName, String modName, String ejbName)
int
getSteadyPoolSize()
protected void
initializeHome()
Called from the ContainerFactory during initialization.ComponentContext
instantiateSingletonInstance()
void
onReady()
Called when server instance is Readyboolean
passivateEJB(ComponentContext context)
protected void
registerMonitorableComponents()
protected void
releaseContext(EjbInvocation inv)
protected void
removeBean(EJBLocalRemoteObject ejbo, Method removeMethod, boolean local)
Doesn't apply to Singletonsvoid
setSingletonLifeCycleManager(SingletonLifeCycleManager lcm)
boolean
userTransactionMethodsAllowed(ComponentInvocation inv)
EJB spec makes a distinction between access to the UserTransaction object itself and access to its methods.-
Methods inherited from class com.sun.ejb.containers.BaseContainer
_constructEJBInstance, _createJCDIInjectionContext, _createJCDIInjectionContext, addInvocationInfo, addLocalRemoteInvocationInfo, addProxyInterfacesSetClass, adjustHomeTargetMethodInfo, adjustInvocationInfo, assertValidLocalObject, assertValidRemoteObject, authorize, authorizeLocalGetPrimaryKey, authorizeLocalMethod, authorizeRemoteGetPrimaryKey, authorizeRemoteMethod, callEJBTimeout, cancelTimers, checkExceptionClientTx, checkUnfinishedTx, checkUserTransactionLookup, cleanupInstance, containerStateToString, createCallFlowAgent, createEjbInstanceAndContext, createEjbInstanceForInterceptors, createEmptyContextAndInterceptors, createMonitoringRegistry, createRemoteReferenceWithId, delistExtendedEntityManagers, doAfterBegin, doEJBHomeRemove, doFlush, enlistExtendedEntityManagers, externalPostInvoke, externalPreInvoke, findFlushEnabledAttr, getApplicationId, getClassLoader, getComponentId, getContainerClassLoader, getContainerId, getContainerType, getContext, getDebugMonitorFlag, getDescriptor, getEJBClass, getEjbDescriptor, getEJBHome, getEJBHomeInvocationHandler, getEJBHomeStub, getEJBLocalBusinessHome, getEJBLocalHome, getEJBLocalHomeInvocationHandler, getEJBLocalObjectForPrimaryKey, getEJBLocalObjectForPrimaryKey, getEJBMetaData, getEJBObjectForPrimaryKey, getInvocationKey, getJaccEjb, getJavaGlobalJndiNamePrefix, getMonitoringMethodsArray, getMonitoringMethodsArray, getPassByReference, getPre30LifecycleMethodNames, getProtocolManager, getSecurityManager, getTargetObject, getTimeoutMethod, getTxAttr, getTxAttr, getTxAttrForLifecycleCallback, getUserTransaction, getUseThreadPoolId, incrementCreatedTimedObject, incrementDeliveredTimedObject, incrementRemovedTimedObject, initialize, initializeProtocolManager, injectEjbInstance, instantiateEJBLocalBusinessObjectImpl, instantiateEJBLocalObjectImpl, instantiateEJBLocalObjectImpl, instantiateEJBObjectImpl, instantiateEJBObjectImpl, instantiateOptionalEJBLocalBusinessObjectImpl, instantiateRemoteBusinessObjectImpl, intercept, intercept, invokeBeanMethod, invokeFindByPrimaryKey, invokeTargetBeanMethod, isApplicationException, isCreateHomeFinder, isEjbTimeoutMethod, isHAEnabled, isIdentical, isJCDIEnabled, isLocalInterfaceSupported, isLocalObject, isRemoteInterfaceSupported, isRemoteObject, isStopped, isSystemUncheckedException, isTimedObject, isUndeployed, lookupExtendedEntityManager, onEnteringContainer, onLeavingContainer, onShutdown, onTermination, postCreate, postEjbTimeout, postFind, postInvoke, postInvoke, postInvokeNoTx, postInvokeTx, postProcessInvocationInfo, preInitialize, preInvoke, preInvokeNoTx, preInvokeTx, prepareEjbTimeoutParams, preSelect, registerTimerMonitorableComponent, releaseTargetObject, removeBeanUnchecked, removeBeanUnchecked, resumeTransaction, scanForEjbCreateMethod, setDebugMonitorFlag, setEJBMetaData, setStartedState, setStoppedState, setUndeployedState, startApplication, suspendTransaction, toString, undeploy, useClientTx, validateEMForClientTx, validateTxAttr, webServicePostInvoke
-
-
-
-
Field Detail
-
singletonCtxFactory
protected ObjectFactory singletonCtxFactory
-
singletonInitialized
protected AtomicBoolean singletonInitialized
-
singletonInitializationFailed
protected boolean singletonInitializationFailed
-
singletonCtx
protected volatile ComponentContext singletonCtx
-
clusteredLookup
protected final ClusteredSingletonLookup clusteredLookup
-
-
Constructor Detail
-
AbstractSingletonContainer
protected AbstractSingletonContainer(EjbDescriptor desc, ClassLoader loader, SecurityManager sm) throws Exception
This constructor is called from the JarManager when a Jar is deployed.- Throws:
Exception
- on error
-
-
Method Detail
-
getMonitorAttributeValues
public String getMonitorAttributeValues()
-
createEjbInvocation
protected EjbInvocation createEjbInvocation(Object ejb, ComponentContext ctx)
- Overrides:
createEjbInvocation
in classBaseContainer
-
createEjbInvocation
protected EjbInvocation createEjbInvocation()
- Overrides:
createEjbInvocation
in classBaseContainer
-
_getContext
protected ComponentContext _getContext(EjbInvocation invocation) throws jakarta.ejb.EJBException
- Specified by:
_getContext
in classBaseContainer
- Throws:
jakarta.ejb.EJBException
-
releaseContext
protected void releaseContext(EjbInvocation inv) throws jakarta.ejb.EJBException
- Specified by:
releaseContext
in classBaseContainer
- Throws:
jakarta.ejb.EJBException
-
initializeHome
protected void initializeHome() throws Exception
Description copied from class:BaseContainer
Called from the ContainerFactory during initialization.- Overrides:
initializeHome
in classBaseContainer
- Throws:
Exception
-
registerMonitorableComponents
protected void registerMonitorableComponents()
- Overrides:
registerMonitorableComponents
in classBaseContainer
-
getMonitoringStatsProvider
protected EjbMonitoringStatsProvider getMonitoringStatsProvider(String appName, String modName, String ejbName)
- Specified by:
getMonitoringStatsProvider
in classBaseContainer
-
onReady
public void onReady()
Description copied from class:BaseContainer
Called when server instance is Ready- Specified by:
onReady
in interfaceContainer
- Overrides:
onReady
in classBaseContainer
-
createRemoteBusinessObjectImpl
public EJBObjectImpl createRemoteBusinessObjectImpl() throws jakarta.ejb.CreateException, RemoteException
- Throws:
jakarta.ejb.CreateException
RemoteException
-
createEJBObjectImpl
public EJBObjectImpl createEJBObjectImpl() throws jakarta.ejb.CreateException, RemoteException
- Specified by:
createEJBObjectImpl
in classBaseContainer
- Throws:
jakarta.ejb.CreateException
RemoteException
-
createEJBLocalObjectImpl
public EJBLocalObjectImpl createEJBLocalObjectImpl() throws jakarta.ejb.CreateException
Called during client creation request through EJB LocalHome view.- Overrides:
createEJBLocalObjectImpl
in classBaseContainer
- Throws:
jakarta.ejb.CreateException
-
createEJBLocalBusinessObjectImpl
public EJBLocalObjectImpl createEJBLocalBusinessObjectImpl(boolean localBeanView) throws jakarta.ejb.CreateException
Called during internal creation of session bean- Throws:
jakarta.ejb.CreateException
-
removeBean
protected void removeBean(EJBLocalRemoteObject ejbo, Method removeMethod, boolean local) throws jakarta.ejb.RemoveException, jakarta.ejb.EJBException, RemoteException
Doesn't apply to Singletons- Specified by:
removeBean
in classBaseContainer
- Throws:
jakarta.ejb.RemoveException
jakarta.ejb.EJBException
RemoteException
-
forceDestroyBean
protected void forceDestroyBean(EJBContextImpl sc)
Force destroy the EJB should be a no-op for singletons. After Initialization completes successfully, runtime exceptions during invocations on the Singleton do not result in the instance being destroyed.- Specified by:
forceDestroyBean
in classBaseContainer
-
getEJBObjectImpl
protected EJBObjectImpl getEJBObjectImpl(byte[] instanceKey)
Not applicable to Singletons- Specified by:
getEJBObjectImpl
in classBaseContainer
-
getEJBLocalObjectImpl
protected EJBLocalObjectImpl getEJBLocalObjectImpl(Object key)
Not applicable to Singletons- Overrides:
getEJBLocalObjectImpl
in classBaseContainer
-
setSingletonLifeCycleManager
public void setSingletonLifeCycleManager(SingletonLifeCycleManager lcm)
-
checkInit
protected void checkInit()
-
instantiateSingletonInstance
public ComponentContext instantiateSingletonInstance()
-
_constructEJBContextImpl
protected SingletonContextImpl _constructEJBContextImpl(Object instance)
Description copied from class:BaseContainer
Must be overridden for any container that supports injection- Overrides:
_constructEJBContextImpl
in classBaseContainer
- Returns:
EJBContextImpl
-
doTimerInvocationInit
protected void doTimerInvocationInit(EjbInvocation inv, Object primaryKey) throws Exception
Description copied from class:BaseContainer
This is implemented by concrete containers that support TimedObjects.- Overrides:
doTimerInvocationInit
in classBaseContainer
- Throws:
Exception
-
userTransactionMethodsAllowed
public boolean userTransactionMethodsAllowed(ComponentInvocation inv)
Description copied from class:BaseContainer
EJB spec makes a distinction between access to the UserTransaction object itself and access to its methods. getUserTransaction covers the first check and this method covers the second. It is called by the UserTransaction implementation to verify access.- Specified by:
userTransactionMethodsAllowed
in interfaceContainer
- Overrides:
userTransactionMethodsAllowed
in classBaseContainer
-
checkExists
protected void checkExists(EJBLocalRemoteObject ejbObj)
Check if the given EJBObject/LocalObject has been removed.- Overrides:
checkExists
in classBaseContainer
- Throws:
jakarta.ejb.NoSuchObjectLocalException
- if the object has been removed.
-
afterBegin
protected void afterBegin(EJBContextImpl context)
- Specified by:
afterBegin
in classBaseContainer
-
beforeCompletion
protected void beforeCompletion(EJBContextImpl context)
- Specified by:
beforeCompletion
in classBaseContainer
-
afterCompletion
protected void afterCompletion(EJBContextImpl ctx, int status)
- Specified by:
afterCompletion
in classBaseContainer
-
passivateEJB
public boolean passivateEJB(ComponentContext context)
- Specified by:
passivateEJB
in classBaseContainer
-
activateEJB
@Deprecated public void activateEJB(Object ctx, Object instanceKey)
Deprecated.not called and not used in Payara 5
-
doConcreteContainerShutdown
protected void doConcreteContainerShutdown(boolean appBeingUndeployed)
- Specified by:
doConcreteContainerShutdown
in classBaseContainer
-
getMethodReadyCount
public long getMethodReadyCount()
-
getMaxPoolSize
public int getMaxPoolSize()
-
getSteadyPoolSize
public int getSteadyPoolSize()
-
-