org.springframework.jee.spi
Class EjbProxyMetadata

java.lang.Object
  extended by org.springframework.jee.inject.Jsr250Metadata
      extended by org.springframework.jee.intercept.InterceptionMetadata
          extended by org.springframework.jee.spi.EjbProxyMetadata
All Implemented Interfaces:
EjbProxyMetadataI, Jsr250MetadataI, InterceptionMetadataI

public class EjbProxyMetadata
extends InterceptionMetadata
implements EjbProxyMetadataI

Metadata for an EJB managed inside a container such as WLS where the Spring proxy will be wrapped inside transactional, security and other EJB contract behaviour provided by the container.

Extends InterceptionMetadata to add additional EJB metadata such as bean type, and introduce the SessionBean or MessageDrivenBean interface. (That is, make the proxy implement the relevant interface.)

Author:
Rod Johnson

Nested Class Summary
protected  class EjbProxyMetadata.EnterpriseBeanProxyImpl
           
protected  class EjbProxyMetadata.EnterpriseBeanSupport
           
protected  class EjbProxyMetadata.MessageBeanImpl
           
protected  class EjbProxyMetadata.SessionBeanImpl
           
protected  class EjbProxyMetadata.TimedObjectImpl
           
 
Nested classes/interfaces inherited from class org.springframework.jee.intercept.InterceptionMetadata
InterceptionMetadata.InterceptorExclusion
 
Field Summary
 
Fields inherited from class org.springframework.jee.inject.Jsr250Metadata
KEY
 
Constructor Summary
EjbProxyMetadata(DeploymentUnitMetadataI dum, String name, Class<?> componentClass, EnvironmentInterceptorCallback environInterceptorCallback)
           
 
Method Summary
protected  void addComponentContractInterceptors(ProxyFactory pf, Object target, Map<Class,Object> interceptorInstancesForClass)
          Customize the ProxyFactory to add EnterpriseBean subinterface introductions, and the necessary support.
protected  void checkIsStatefulSession()
           
protected  Object currentProxy()
           
protected  Object currentTargetBeanInstance()
          Return the current target bean instance
 BeanType getBeanType()
           
 String getTimeoutMethodName()
           
 void setBeanType(BeanType beanType)
           
 void setTimeoutMethodName(String timeoutMethodName)
           
 
Methods inherited from class org.springframework.jee.intercept.InterceptionMetadata
addAspectJAdvisors, addBeanControlInterfaceMethod, addBusinessInterface, addJeeInterceptors, addJeeInterceptors, addSelfInterceptor, addSpringAopAdvisors, addSuperInterceptors, createProxyIfNecessary, createProxyIfNecessary, customizeProxyConfig, findBusinessInterfacesFromClassOrAnnotation, getBeanControlInterface, getBeanControlInterfaceMethods, getBusinessInterfaces, getExclusion, getInterceptorMetadata, getInterceptorOrder, invokeLifecycleMethods, invokePostConstructAndRegisterShutdownHook, isExcludedAsBusinessInterfaceOnAutodetect, registerInterceptorMetadata, registerInterceptorOrder, registerSelfInterceptorMethod, setBeanControlInterface, setBeanControlInterfaceMethods, setComponentContext, setExcludeClassInterceptors, setExcludeDefaultInterceptors
 
Methods inherited from class org.springframework.jee.inject.Jsr250Metadata
addInjection, applyInjections, getBeanDefinition, getBeanDefinitionRegistry, getComponentClass, getComponentContext, getComponentName, getDeploymentUnitMetadata, getInjections, getLifecycleEventCallbackMethod, getUniqueInstanceOfType, inject, injectAndPostConstruct, invokeLifecycleMethod, invokeLifecycleMethod, refresh, registerLifecycleEventCallbackMethod, resolve, resolveByType, setBeanDefinition, setComponentContext, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.jee.interfaces.intercept.InterceptionMetadataI
addBusinessInterface, createProxyIfNecessary, createProxyIfNecessary, findBusinessInterfacesFromClassOrAnnotation, getInterceptorMetadata, registerInterceptorMetadata, registerInterceptorOrder, registerSelfInterceptorMethod, setBeanControlInterface, setBeanControlInterfaceMethods, setExcludeClassInterceptors, setExcludeDefaultInterceptors
 
Methods inherited from interface org.springframework.jee.interfaces.inject.Jsr250MetadataI
addInjection, getComponentClass, getComponentName, getDeploymentUnitMetadata, getInjections, getLifecycleEventCallbackMethod, inject, invokeLifecycleMethods, refresh, registerLifecycleEventCallbackMethod
 

Constructor Detail

EjbProxyMetadata

public EjbProxyMetadata(DeploymentUnitMetadataI dum,
                        String name,
                        Class<?> componentClass,
                        EnvironmentInterceptorCallback environInterceptorCallback)
Parameters:
name -
componentClass -
Method Detail

setBeanType

public void setBeanType(BeanType beanType)
Specified by:
setBeanType in interface EjbProxyMetadataI

getBeanType

public BeanType getBeanType()
Specified by:
getBeanType in interface EjbProxyMetadataI
Returns:
the beanType

checkIsStatefulSession

protected void checkIsStatefulSession()

currentTargetBeanInstance

protected Object currentTargetBeanInstance()
Return the current target bean instance

Returns:
the current EJB instance (at the end of the interceptor chain)

currentProxy

protected Object currentProxy()

addComponentContractInterceptors

protected void addComponentContractInterceptors(ProxyFactory pf,
                                                Object target,
                                                Map<Class,Object> interceptorInstancesForClass)
Customize the ProxyFactory to add EnterpriseBean subinterface introductions, and the necessary support.

Overrides:
addComponentContractInterceptors in class InterceptionMetadata
Parameters:
pf - ProxyFactory used to create proxy

setTimeoutMethodName

public void setTimeoutMethodName(String timeoutMethodName)
Specified by:
setTimeoutMethodName in interface EjbProxyMetadataI

getTimeoutMethodName

public String getTimeoutMethodName()
Specified by:
getTimeoutMethodName in interface EjbProxyMetadataI


Copyright © 2006-2008 SpringSource (formerly Interface21). All Rights Reserved.