Deep inside of @JaxrsResource and @JaxrsExtension

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.