protected void handleDeploymentDescriptor(final DeploymentUnit deploymentUnit, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final SessionBeanComponentDescription componentConfiguration) throws DeploymentUnitProcessingException { if (componentConfiguration.getDescriptorData() == null) { return; } SessionBeanMetaData sessionBeanMetaData = componentConfiguration.getDescriptorData(); if (sessionBeanMetaData instanceof SessionBean31MetaData) { SessionBean31MetaData descriptor = (SessionBean31MetaData) sessionBeanMetaData; //handle lock if (descriptor.getLockType() != null) { componentConfiguration.setBeanLevelLockType(componentConfiguration.getEJBClassName(), descriptor.getLockType()); } //handle access timeout if (descriptor.getAccessTimeout() != null) { componentConfiguration.setBeanLevelAccessTimeout(componentConfiguration.getEJBClassName(), new AccessTimeoutDetails(descriptor.getAccessTimeout().getTimeout(), descriptor.getAccessTimeout().getUnit())); } final ConcurrentMethodsMetaData methods = descriptor.getConcurrentMethods(); if (methods != null) { for (final ConcurrentMethodMetaData method : methods) { final Method realMethod = resolveMethod(deploymentReflectionIndex, componentClass, componentClass, method.getMethod()); final MethodIdentifier methodIdentifier = MethodIdentifier.getIdentifierForMethod(realMethod); if (method.getLockType() != null) { componentConfiguration.setLockType(method.getLockType(), methodIdentifier); } if (method.getAccessTimeout() != null) { componentConfiguration.setAccessTimeout(new AccessTimeoutDetails(method.getAccessTimeout().getTimeout(), method.getAccessTimeout().getUnit()), methodIdentifier); } } } } }
/** * @see org.jboss.ejb3.metadata.MetaDataBridge#retrieveAnnotation(java.lang.Class, java.lang.Object, java.lang.ClassLoader) */ @Override public <A extends Annotation> A retrieveAnnotation(Class<A> annotationClass, JBossEnterpriseBeanMetaData metaData, ClassLoader classLoader) { if (annotationClass == null || annotationClass.equals(AccessTimeout.class) == false) { return null; } // only session beans and that too of type JBossSessionBean31MetaData if (metaData.isSession() == false || (metaData instanceof JBossSessionBean31MetaData) == false) { return null; } JBossSessionBean31MetaData sessionBean = (JBossSessionBean31MetaData) metaData; AccessTimeoutMetaData accessTimeoutMetaData = sessionBean.getAccessTimeout(); if (accessTimeoutMetaData == null) { return null; } AccessTimeout accessTimeout = new AccessTimeoutImpl(accessTimeoutMetaData.getTimeout(), accessTimeoutMetaData .getUnit()); return annotationClass.cast(accessTimeout); }
AccessTimeout accessTimeout = new AccessTimeoutImpl(accessTimeoutMetaData.getTimeout(), accessTimeoutMetaData .getUnit()); return annotationClass.cast(accessTimeout);
protected void handleDeploymentDescriptor(final DeploymentUnit deploymentUnit, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final SessionBeanComponentDescription componentConfiguration) throws DeploymentUnitProcessingException { if (componentConfiguration.getDescriptorData() == null) { return; } SessionBeanMetaData sessionBeanMetaData = componentConfiguration.getDescriptorData(); if (sessionBeanMetaData instanceof SessionBean31MetaData) { SessionBean31MetaData descriptor = (SessionBean31MetaData) sessionBeanMetaData; //handle lock if (descriptor.getLockType() != null) { componentConfiguration.setBeanLevelLockType(componentConfiguration.getEJBClassName(), descriptor.getLockType()); } //handle access timeout if (descriptor.getAccessTimeout() != null) { componentConfiguration.setBeanLevelAccessTimeout(componentConfiguration.getEJBClassName(), new AccessTimeoutDetails(descriptor.getAccessTimeout().getTimeout(), descriptor.getAccessTimeout().getUnit())); } final ConcurrentMethodsMetaData methods = descriptor.getConcurrentMethods(); if (methods != null) { for (final ConcurrentMethodMetaData method : methods) { final Method realMethod = resolveMethod(deploymentReflectionIndex, componentClass, componentClass, method.getMethod()); final MethodIdentifier methodIdentifier = MethodIdentifier.getIdentifierForMethod(realMethod); if (method.getLockType() != null) { componentConfiguration.setLockType(method.getLockType(), methodIdentifier); } if (method.getAccessTimeout() != null) { componentConfiguration.setAccessTimeout(new AccessTimeoutDetails(method.getAccessTimeout().getTimeout(), method.getAccessTimeout().getUnit()), methodIdentifier); } } } } }