Partial-Bean


    Partial beans allow you to implement a generic handler to replace manual implementations of interfaces (or abstract classes).

    @PartialBeanBinding is the binding-annotation for creating a custom interface (/abstract class) to generic handler binding.

    @PartialBeanBinding
    
    @Retention(RUNTIME)
    @Target(TYPE)
    public @interface MyPartialBeanBinding {}
    
    @MyPartialBeanBinding
    //scope is optional
    public interface PartialBean
    {
        String getValue();
    }
    
    @MyPartialBeanBinding
    @Dependent
    public class MyPartialBeanHandler implements java.lang.reflect.InvocationHandler
    {
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
        {
            //generic handler logic
        }
    }
    

    Using an abstract class as partial-bean requires javassist as an additional dependency and allows to implement some methods manually.

    Attention: Currently CDI-Interceptors can't be used for partial-beans.