Uploaded image for project: 'CDI Specification Issues'
  1. CDI Specification Issues
  2. CDI-195

Clarify serializability requirements for extension-provided metadata

    • Icon: Feature Request Feature Request
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 1.0
    • Portable Extensions
    • None
    • Release Notes

      The spec never requires an extension-provided implementation of the Bean, Interceptor, Decorator or InjectionPoint to be serializable. The implementation indicates, whether the underlying bean is passivation capable by implementing PassivationCapable, but the implementation itself does not have to be serializable.

      For both the InjectionPoint bean and Bean metadata bean the spec says: "The built-in implementation must be a passivation capable dependency". However, this is hard to guarantee if an extension provides a non-serializable implementation of a Bean/InjectionPoint interface, e.g. the following code would cause problems at passivation:

      public class Bar implements Serializable {
         @Inject
         private InjectionPoint ip;
      }
      

      If the metadata of the Bar bean (Bean<Bar>) is not serializable, Bar cannot be passivated.

              pmuiratbleepbleep Pete Muir (Inactive)
              rhn-engineering-jharting Jozef Hartinger
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: