[
https://issues.jboss.org/browse/CDI-631?page=com.atlassian.jira.plugin.sy...
]
Mark Struberg commented on CDI-631:
-----------------------------------
The other question is whether we can cache the hashCode and toString as it should not be
subject to changes, right?
I mean do we allow AnnotationLiteral subclasses to modify their values during runtime?
That would conflict with the Annotation definition imo.
Improve AnnotationLiteral for empty annotations
-----------------------------------------------
Key: CDI-631
URL:
https://issues.jboss.org/browse/CDI-631
Project: CDI Specification Issues
Issue Type: Feature Request
Reporter: Mark Struberg
Annotation hashCode() and equals() operations are fairly expensive as they always invoke
getDeclaredMethods() even if there are no such. And getDeclaredMethods involves the
SecurityManager + wrapper classes + Exception handling + + +
That's horrible expensive.
In OWB I improved this by introducing an own base class for dynamic annotations which do
not have any members:
https://github.com/apache/openwebbeans/blob/trunk/webbeans-impl/src/main/...
The method returns a hardcoded String for toString(), returns hardcoded 0 as hashCode and
the equals() method invokes the equals on the annotation type.
We might support this improvements directly in the AnnotationLiteral class or introduce a
similar 2nd class especially for empty annotations?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)