Mit einem benutzerdefinierten hk2 InjectionResolver die Anwendungskonfiguration injizieren

Art eines Follow-up zu meine vorherige Frage. Ich versuche, Anwendungskonfigurationsdaten mithilfe von JSR-330-Standardanmerkungen und dem mit Jersey gebündelten HK2-Framework einzuspeisen.

Ideally Ich möchte ein benutzerdefiniertes @ erstellInjectionResolver für dasNamed Annotation, die die gewünschten Werte in einem @ sucMap oderProperties -Objekt, das ich mit Daten füllen werde, die an anderer Stelle gelesen wurden. In meinem ersten Versuch habe ich ein @ erstelApplication Instanz wie

public class MyApplication extends ResourceConfig {
    ...
    packages(MY_PACKAGES);
    property(MY_CONFIG_PROPERTY, someValue);
    register(new AbstractBinder() {
        @Override
        protected void configure() {
            bind(ConfigurationInjectionResolver.class)
            .to(new TypeLiteral<InjectionResolver<Named>>(){})
            .in(Singleton.class)
        }
    });
}

und dann meinInjectionResolver sieht aus wi

public class ConfigurationInjectionResolver implements InjectionResolver<Named> {
    @Context Application application;

    @Override
    public Object resolve(Injectee injectee, ServiceHandle<?> serviceHandle) {
        // lookup data in application.getProperties();
    }
}

Mein Problem ist, dassapplication.getProperties() ist leer. Irgendeine Idee, was los ist? Kann ich auch eine Instanz meines Injectors binden, anstatt die Klasse zu binden? Auf diese Weise konnte ich die Instanz konstruieren, die mein @ übergibMap data als Parameter.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage