[jboss-cvs] JBossAS SVN: r93528 - in projects/ejb3/trunk/core/src: test/java/org/jboss/ejb3/core/test/ejbthree1914/unit and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 15 08:07:28 EDT 2009
Author: wolfc
Date: 2009-09-15 08:07:28 -0400 (Tue, 15 Sep 2009)
New Revision: 93528
Modified:
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/annotation/CachingAnnotationRepository.java
projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java
Log:
EJBTHREE-1920: allow disabling and enabling of annotations
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/annotation/CachingAnnotationRepository.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/annotation/CachingAnnotationRepository.java 2009-09-15 11:50:41 UTC (rev 93527)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/annotation/CachingAnnotationRepository.java 2009-09-15 12:07:28 UTC (rev 93528)
@@ -42,7 +42,6 @@
*
* The following operation are not supported:
* - anything using javassist
- * - disabling and enabling annotations
* - querying for complete annotation maps
*
* @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
@@ -109,22 +108,19 @@
@Override
public void disableAnnotation(Member m, String annotation)
{
- log.error("EJBTHREE-1914: Unsupported");
- throw new UnsupportedOperationException("EJBTHREE-1914: Unsupported");
+ delegate.disableAnnotation(m, annotation);
}
@Override
public void disableAnnotation(String annotation)
{
- log.error("EJBTHREE-1914: Unsupported");
- throw new UnsupportedOperationException("EJBTHREE-1914: Unsupported");
+ delegate.disableAnnotation(annotation);
}
@Override
public void enableAnnotation(String annotation)
{
- log.error("EJBTHREE-1914: Unsupported");
- throw new UnsupportedOperationException("EJBTHREE-1914: Unsupported");
+ delegate.enableAnnotation(annotation);
}
protected Map<Class<?>, Object> getAnnotationCache(Member m)
Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java 2009-09-15 11:50:41 UTC (rev 93527)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java 2009-09-15 12:07:28 UTC (rev 93528)
@@ -21,6 +21,7 @@
*/
package org.jboss.ejb3.core.test.ejbthree1914.unit;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.util.HashMap;
@@ -32,6 +33,7 @@
import org.jboss.ejb3.Container;
import org.jboss.ejb3.EJBContainer;
import org.jboss.ejb3.Ejb3DescriptorHandler;
+import org.jboss.ejb3.annotation.SerializedConcurrentAccess;
import org.jboss.ejb3.core.test.common.AbstractEJB3TestCase;
import org.jboss.ejb3.core.test.common.MockEjb3Deployment;
import org.jboss.ejb3.core.test.ejbthree1506.TestBean;
@@ -85,4 +87,32 @@
ApplicationException ex = ExtendedAdvisorHelper.getExtendedAdvisor(container.getAdvisor()).resolveAnnotation(DummyException.class, ApplicationException.class);
assertNotNull("Can't find annotation @ApplicationException in the meta data", ex);
}
+
+ @Test
+ public void testDisableAnnotation() throws Exception
+ {
+ JBossMetaData metaData = new JBossMetaData();
+ JBossEnterpriseBeansMetaData enterpriseBeans = new JBossEnterpriseBeansMetaData();
+ metaData.setEnterpriseBeans(enterpriseBeans);
+ JBossAssemblyDescriptorMetaData assemblyDescriptor = new JBossAssemblyDescriptorMetaData();
+ metaData.setAssemblyDescriptor(assemblyDescriptor);
+ JBossSessionBeanMetaData sessionBeanMetaData = new JBossSessionBeanMetaData();
+ sessionBeanMetaData.setEnterpriseBeansMetaData(enterpriseBeans);
+ sessionBeanMetaData.setEjbClass(TestBean.class.getName());
+ sessionBeanMetaData.setEjbName("TestBean");
+ sessionBeanMetaData.setSessionType(SessionType.Stateful);
+ sessionBeanMetaData.setConcurrent(false);
+ enterpriseBeans.add(sessionBeanMetaData);
+
+ MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
+ List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());
+
+ EJBContainer container = (EJBContainer) containers.get(0);
+ Stateful annotation = ((EJBContainer) containers.get(0)).getAnnotation(Stateful.class);
+ assertNotNull("Can't find annotation @Stateful on the container", annotation);
+
+ assertFalse("Stateful bean incorrectly has been marked with " + SerializedConcurrentAccess.class.getName()
+ + " annotation", container.getAdvisor().hasAnnotation(SerializedConcurrentAccess.class.getName()));
+ }
}
More information about the jboss-cvs-commits
mailing list