1. Binding Annotations - annotation type with @PartialBeanBinding.
2. Partial Beans - abstract classes and interfaces annotated with a binding annotation.
3. Invocation Handlers - classes inplementing InvocationHandler and annotated with a binding annotation.
1. Class annotated with a binding annotation should be either abstract, or interface, or implement InvocationHandler.
Error text: "Binding annotation %annotationName% can be applied only to abstract classes, interfaces, and classes implementing InvocationHandler."
2. There should be no more than one invocation handler for each binding annotation.
Error text: "Multiple handlers are found for binding annotation %annotationName%."
3. Invocation handler class should be normal-scoped.
Error text: "Invocation handler class should be a normal-scoped bean."
4. Each partial bean should be bound to an invocation handler.
Error text: "Partial bean %className% should have an invocation handler for binding annotation %annotationName%."
5. Deltaspike implementation of the extension reads the first binding annotation on a class and ignores the next ones. Hence, they should be marked with a warning:
"Binding annotation %annotationName% is ignored because class is already annotated with binding annotation %firstAnnotationName%."