0 Replies Latest reply on Feb 6, 2005 11:17 AM by Adrian Brock

    Boston meeting notes: Annotations

    Adrian Brock Master

      Annotations will be used as the metadata model.

      We know how to do annotations in jdk1.4

      Some things that need changing/accounting for:
      * The annotations need to be processed *BEFORE* the class is loaded (hence ClassData Model)
      * The ClassData model needs to include annotation overrides from the jboss-aop.xml
      * The MicroContainer needs to override the annotations per instance

      We need to be able to easily determine that an annotation introduces a dependency.
      This can easily be achieved by an annotation on the annotation, e.g.

      @Security(domain="default")

      We need to know "default" is dependency on the security domain, so we annotate the
      annotation.

      @Depends (value="domain"}
      public @interface{String domain;}

      The @Depends annotation can be extended to introduce extra configuration
      where the configuration needs special processing, e.g. mapping the name
      jboss.security:service=SecurityDomain,name=default

      Other considerations:
      In the invocation metadata we need to differentiate real metadata like the
      security annotation and invocation attachments like the cluster view.
      Annotations: Used when we want typed access to policy
      Attachments: Used when an invocation has generic untyped data that is not policy

      Things TODO:
      We need to verify serialization of annotations between jdk1.4 and java5
      Bill needs to fix the problem where a class is compiled with our jdk1.4 style
      annotations which are not loaded properly running under java5

      Other possiblities:
      Add our annotation processing to RetroWeaver