[jboss-cvs] JBossAS SVN: r70065 - in projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3: stateful and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 25 12:40:19 EST 2008
Author: bdecoste
Date: 2008-02-25 12:40:19 -0500 (Mon, 25 Feb 2008)
New Revision: 70065
Modified:
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/AnnotationRepositoryToMetaData.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulInstanceInterceptor.java
Log:
implemented disableAnnotation(..)
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/AnnotationRepositoryToMetaData.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/AnnotationRepositoryToMetaData.java 2008-02-25 15:56:13 UTC (rev 70064)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/AnnotationRepositoryToMetaData.java 2008-02-25 17:40:19 UTC (rev 70065)
@@ -25,7 +25,9 @@
import java.lang.reflect.Member;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javassist.CtClass;
import javassist.CtConstructor;
@@ -63,9 +65,13 @@
/** The log */
private static final Logger log = Logger.getLogger(AnnotationRepositoryToMetaData.class);
+ private static final String CLASS_ANNOTATION = "CLASS";
+
/** The metadata */
private MetaData metaData;
+ protected ConcurrentHashMap<Object, Object> disabledAnnotations = new ConcurrentHashMap<Object, Object>();;
+
/** The mutable metadata */
private MemoryMetaDataLoader mutableMetaData;
@@ -219,12 +225,26 @@
public void disableAnnotation(Member m, String annotation)
{
- log.warn("Not implemented: disableAnnotation(" + m + ", " + annotation + ")");
+ ConcurrentHashMap<String, String> disabledClassAnnotations = (ConcurrentHashMap<String, String>)disabledAnnotations.get(m);
+ if (disabledClassAnnotations == null)
+ {
+ disabledClassAnnotations = new ConcurrentHashMap<String, String>();
+ disabledAnnotations.put(m, disabledClassAnnotations);
+ }
+
+ disabledClassAnnotations.put(annotation, annotation);
}
public void disableAnnotation(String annotation)
{
- log.warn("Not implemented: disableAnnotation(" + annotation + ")");
+ ConcurrentHashMap<String, String> disabledClassAnnotations = (ConcurrentHashMap<String, String>)disabledAnnotations.get(CLASS_ANNOTATION);
+ if (disabledClassAnnotations == null)
+ {
+ disabledClassAnnotations = new ConcurrentHashMap<String, String>();
+ disabledAnnotations.put(CLASS_ANNOTATION, disabledClassAnnotations);
+ }
+
+ disabledClassAnnotations.put(annotation, annotation);
}
public void enableAnnotation(String annotation)
@@ -290,16 +310,34 @@
public boolean isDisabled(Class annotation)
{
+ ConcurrentHashMap<String, String> disabledClassAnnotations = (ConcurrentHashMap<String, String>)disabledAnnotations.get(CLASS_ANNOTATION);
+ if (disabledClassAnnotations != null)
+ {
+ return disabledClassAnnotations.get(annotation.getName()) != null;
+ }
+
return false;
}
public boolean isDisabled(Member m, Class annotation)
{
+ ConcurrentHashMap<String, String> disabledClassAnnotations = (ConcurrentHashMap<String, String>)disabledAnnotations.get(CLASS_ANNOTATION);
+ if (disabledClassAnnotations != null)
+ {
+ return disabledClassAnnotations.get(annotation.getName()) != null;
+ }
+
return false;
}
public boolean isDisabled(Member m, String annotation)
{
+ ConcurrentHashMap<String, String> disabledClassAnnotations = (ConcurrentHashMap<String, String>)disabledAnnotations.get(CLASS_ANNOTATION);
+ if (disabledClassAnnotations != null)
+ {
+ return disabledClassAnnotations.get(annotation) != null;
+ }
+
return false;
}
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java 2008-02-25 15:56:13 UTC (rev 70064)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java 2008-02-25 17:40:19 UTC (rev 70065)
@@ -1128,6 +1128,9 @@
@SuppressWarnings("unchecked")
public <T extends Annotation> T getAnnotation(Class<T> annotationType)
{
+ if (this.getAnnotations().isDisabled(annotationType))
+ return null;
+
return (T) resolveAnnotation(annotationType);
}
@@ -1151,6 +1154,9 @@
public <T extends Annotation> T getAnnotation(Class<T> annotationType, Method method)
{
+ if (this.getAnnotations().isDisabled(method, annotationType))
+ return null;
+
return (T) resolveAnnotation(method, annotationType);
}
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulInstanceInterceptor.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulInstanceInterceptor.java 2008-02-25 15:56:13 UTC (rev 70064)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulInstanceInterceptor.java 2008-02-25 17:40:19 UTC (rev 70065)
@@ -62,8 +62,8 @@
StatefulContainer container = (StatefulContainer) ejb.getAdvisor();
StatefulBeanContext target = container.getCache().get(id);
- boolean block = container.resolveAnnotation(SerializedConcurrentAccess.class) != null;
-
+ boolean block = container.getAnnotation(SerializedConcurrentAccess.class) != null;
+
if (block)
{
target.getLock().lockInterruptibly();
More information about the jboss-cvs-commits
mailing list