I am very interested in how and where the @JaxrsResource and @JaxrsExtension annotations are evaluated and processed.
How and where are the extensions added to the application and to the request?
Is there documentation for this and where can I find the source code for it?
These are not bnd annotations.
However, in OSGi, you can define meta annotations. These meta annotations instruct bnd to create manifest headers. See @RequireCapability, @ProvideCapability, or . I assume these annotations you mention use these mechanisms.
Thanks for the reply.
I think that takes me one step further.
The Annotations you mentioned, are so called Component Property Types. If you look in the source code, you will see that they are a simple Annotation that is annotated itself. They are brocessed by bnd at build time, and will be translated into component properties.
Example:
@ComponentPropertyType
public @interface MyProp {
}
@Component
@MyProp
public class TestComponent {}
would be the same as
@Component(property = "myProp=true")
public class TestComponent {}
You can do more with them and avoid Configurations via magic Strings.