protected EJBHomeInvocationHandler(EjbDescriptor ejbDescriptor, Class homeIntfClass) throws Exception { if( ejbDescriptor instanceof EjbSessionDescriptor ) { isStatelessSession_ = ((EjbSessionDescriptor)ejbDescriptor).isStateless(); } else { isStatelessSession_ = false; } homeIntfClass_ = homeIntfClass; // NOTE : Container is not set on super-class until after // constructor is called. }
protected EJBLocalHomeInvocationHandler(EjbDescriptor ejbDescriptor, Class localHomeIntf) throws Exception { if( ejbDescriptor instanceof EjbSessionDescriptor ) { isStatelessSession_ = ((EjbSessionDescriptor)ejbDescriptor).isStateless(); } else { isStatelessSession_ = false; } localHomeIntfClass_ = localHomeIntf; // NOTE : Container is not set on super-class until after // constructor is called. }
EJBHomeInvocationHandler(EjbDescriptor ejbDescriptor, Class homeIntfClass, MethodMap invocationInfoMap) throws Exception { if( ejbDescriptor instanceof EjbSessionDescriptor ) { isEntity_ = false; isStatelessSession_ = ((EjbSessionDescriptor)ejbDescriptor).isStateless(); } else { isStatelessSession_ = false; isEntity_ = true; } invocationInfoMap_ = invocationInfoMap; homeIntfClass_ = homeIntfClass; // NOTE : Container is not set on super-class until after // constructor is called. }
EJBLocalHomeInvocationHandler(EjbDescriptor ejbDescriptor, Class localHomeIntf, MethodMap invocationInfoMap) throws Exception { if( ejbDescriptor instanceof EjbSessionDescriptor ) { isEntity_ = false; isStatelessSession_ = ((EjbSessionDescriptor)ejbDescriptor).isStateless(); } else { isStatelessSession_ = false; isEntity_ = true; } invocationInfoMap_ = invocationInfoMap; localHomeIntfClass_ = localHomeIntf; // NOTE : Container is not set on super-class until after // constructor is called. }
/** * Indicates if the bean is stateless * * @return True if stateless, false otherwise */ public boolean isStateless() { return (ejbDesc.getType().equals(EjbSessionDescriptor.TYPE) && ((EjbSessionDescriptor) ejbDesc).isStateless()); }
/** * Returns the string STATELESS or STATEFUL according as to whether * the bean is stateless or stateful. **/ public String getSessionType() { if (this.isStateless()) { return STATELESS; } else if( isStateful() ){ return STATEFUL; } else { return SINGLETON; } }
/** * Check if the given EjbDescriptor matches the given Annotation. * @param ejbDesc * @param annotation * @return boolean check for validity of EjbDescriptor */ protected boolean isValidEjbDescriptor(EjbDescriptor ejbDesc, Annotation annotation) { boolean isValid = EjbSessionDescriptor.TYPE.equals(ejbDesc.getType()); if( isValid ) { EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) ejbDesc; // Only check specific session-bean type if it's set in the descriptor. // Otherwise it was probably populated with a sparse ejb-jar.xml and // we'll set the type later. if( sessionDesc.isSessionTypeSet() && !sessionDesc.isStateless() ) { isValid = false; } } return isValid; }
SessionContextImpl(Object ejb, BaseContainer container) { super(ejb, container); EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) getContainer().getEjbDescriptor(); isStateless = sessionDesc.isStateless(); isStateful = sessionDesc.isStateful(); if( isStateful ) { initializeStatefulWriteLock(); } }
SessionContextImpl(Object ejb, BaseContainer container) { super(ejb, container); EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) getContainer().getEjbDescriptor(); isStateless = sessionDesc.isStateless(); isStateful = sessionDesc.isStateful(); if( isStateful ) { initializeStatefulWriteLock(); } }
isSingleton = true; } else { isStatelessSession = sd.isStateless(); isStatefulSession = !isStatelessSession;
if ( sd.isStateless() ) { if ((ejbDescriptor.getLocalClassName() != null) && (ejbDescriptor.getLocalBusinessClassNames()
boolean isReadOnlyBean = false; if ( dd instanceof EjbSessionDescriptor ) { if ( ((EjbSessionDescriptor)dd).isStateless() ) isStatelessSession = true; } else if( dd instanceof EjbEntityDescriptor) {
protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, EjbContext[] ejbContexts) throws AnnotationProcessorException { AccessTimeout timeout = (AccessTimeout) ainfo.getAnnotation(); for (EjbContext ejbContext : ejbContexts) { if (ejbContext.getDescriptor() instanceof EjbSessionDescriptor) { EjbSessionDescriptor sessionDesc = (EjbSessionDescriptor) ejbContext.getDescriptor(); if( sessionDesc.isStateless() ) { continue; } if (ElementType.TYPE.equals(ainfo.getElementType())) { // Delay processing Class-level default until after methods are processed ejbContext.addPostProcessInfo(ainfo, this); } else { Method annMethod = (Method) ainfo.getAnnotatedElement(); // Only assign access timeout info if the method hasn't already // been processed. This correctly ignores superclass methods that // are overridden and applies the correct .xml overriding semantics. if(!matchesExistingAccessTimeoutMethod(annMethod, sessionDesc)) { MethodDescriptor newMethodDesc = new MethodDescriptor(annMethod); sessionDesc.addAccessTimeoutMethod(newMethodDesc, timeout.value(), timeout.unit()); } } } } return getDefaultProcessedResult(); }
if( !ejbDesc.isStateless() ) { appendTextChild(ejbNode, EjbTagNames.CONCURRENCY_MANAGEMENT_TYPE, ejbDesc.getConcurrencyManagementType().toString());