[cdi-dev] [JBoss JIRA] (CDI-485) Provide literals for built-in annotations
Martin Kouba (JIRA)
issues at jboss.org
Fri Feb 12 10:29:00 EST 2016
[ https://issues.jboss.org/browse/CDI-485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162322#comment-13162322 ]
Martin Kouba commented on CDI-485:
----------------------------------
I'm going to add literals for:
* {{javax.enterprise.inject.Any}}
* {{javax.enterprise.inject.Default}}
* {{javax.enterprise.inject.New}}
* {{javax.enterprise.util.Nonbinding}}
* {{javax.enterprise.context.Initialized}}
* {{javax.enterprise.context.Destroyed}}
* {{javax.enterprise.context.RequestScoped}}
* {{javax.enterprise.context.SessionScoped}}
* {{javax.enterprise.context.ApplicationScoped}}
* {{javax.enterprise.context.Dependent}}
* {{javax.enterprise.context.ConversationScoped}}
* {{javax.enterprise.inject.Alternative}}
* {{javax.enterprise.inject.Typed}}
* {{javax.inject.Named}}
* {{javax.inject.Qualifier}}
* {{javax.inject.Singleton}}
Any other tips?
If possible I will place the literal as a static nested class inside the annotation definition (as Jozef suggested), so that one could use {{Any.Literal.INSTANCE}} or {{Initialized.Literal.of(RequestScoped.class)}}.
> Provide literals for built-in annotations
> -----------------------------------------
>
> Key: CDI-485
> URL: https://issues.jboss.org/browse/CDI-485
> Project: CDI Specification Issues
> Issue Type: Feature Request
> Affects Versions: 1.2.Final
> Reporter: Jozef Hartinger
> Assignee: Martin Kouba
>
> Annotation literals are often useful and therefore many projects implement them themselves. For example:
> https://github.com/apache/deltaspike/blob/master/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/literal/DefaultLiteral.java
> https://github.com/weld/core/blob/master/impl/src/main/java/org/jboss/weld/literal/DefaultLiteral.java
> https://github.com/forge/furnace-cdi/blob/master/impl/src/main/java/org/jboss/forge/furnace/container/cdi/util/DefaultLiteral.java
> https://github.com/astefanutti/metrics-cdi/blob/master/impl/src/main/java/io/astefanutti/metrics/cdi/DefaultLiteral.java
> to name a few.
> It would be nice to provide these within the CDI API, e.g:
> {code:JAVA}
> @Target( { TYPE, METHOD, PARAMETER, FIELD })
> @Retention(RUNTIME)
> @Documented
> @Qualifier
> public @interface Default {
> @SuppressWarnings("all")
> final class Literal extends AnnotationLiteral<Default> implements Default {
> private Literal() {
> }
> }
> final Default INSTANCE = new Literal();
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the cdi-dev
mailing list