[cdi-dev] [JBoss JIRA] Commented: (CDI-110) Provide support for binding an invocation handler to an interface or abstract class

Richard Hightower (JIRA) jira-events at lists.jboss.org
Wed Apr 27 14:53:18 EDT 2011


    [ https://issues.jboss.org/browse/CDI-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598517#comment-12598517 ] 

Richard Hightower commented on CDI-110:
---------------------------------------

When I wrote Crank, I wrote a finder method mixin capability similar to the one in this article.

http://www.ibm.com/developerworks/java/library/j-genericdao/index.html

You should be able to do something like this with this feature.

http://code.google.com/p/krank/wiki/UsingDAO

See the section http://code.google.com/p/krank/wiki/UsingDAO.

One of the first things I am going to do when this feature is implemented is write an example extension (and article) that uses it to mixin JPA 2 named queries with a DAO by convention.

This is what I would want to use a feature like this for.


> Provide support for binding an invocation handler to an interface or abstract class
> -----------------------------------------------------------------------------------
>
>                 Key: CDI-110
>                 URL: https://issues.jboss.org/browse/CDI-110
>             Project: CDI Specification Issues
>          Issue Type: Feature Request
>          Components: Inheritance and Specialization
>    Affects Versions: 1.0
>            Reporter: George Gastaldi
>            Assignee: George Gastaldi
>              Labels: cdi
>             Fix For: 1.1 (Proposed)
>
>
> The purpose of this feature is to allow interfaces and abstract classes to be automatically implemented by an invocation handler to which all abstract method invocations are delegated. The invocation handler would get "bound" to the type using the same strategy as is used for interceptor binding.
> Binding type:
> {code:java}
> @Target({ METHOD, TYPE })
> @Retention(RetentionPolicy.RUNTIME)
> @ServiceHandlerBindingType
> public @interface EchoService {}
> {code}
> Invocation handler:
> {code:java}
> @ServiceHandlerBindingType
> @EchoService
> public class EchoServiceHandler {
>     @AroundInvoke
>     public Object invoke(InvocationContext ctx) {
>         return ctx.getMethod().getName().toString();
>     }
> }
> {code}
> Usage:
> {code:java}
> @EchoService
> public interface HelloWorld {
>    String helloWorld();
> }
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the cdi-dev mailing list