Kısa bir süre önce OSGi'deki Deklarasyon Hizmetlerinin, bir bileşenin yapılandırmasını, bileşen aktivasyonu ve yapılandırması arasındaki boşluğu kaldırarak etkinleştirilmesi üzerine etkinleşmesi için gereken yapılandırmayı ayarlayabileceği gerçeğine rastladım. Ayrıca, konfigürasyon güncellemelerini modified
-method aracılığıyla alabileceğinizi de farkettim.OSGi Declarative Services vs ManagedService hizmeti yapılandırmak için?
Bu işlev, ManagedService
arabirimini uygulayıp sağladığınız hizmetlerden biri olarak yayınlamakla sağlanan işlevsellikle oldukça benzer gözüküyor.
Tam olarak DS yapılandırma enjeksiyonunu kullanıyorum ManagedService
& görmezden gelebilirim gibi görünüyor.
Bu tekniklerden biri diğerinden daha mı tercih edilir, yoksa görmediğim başka satış noktaları var mı?
Tamam, yaptığım şey budur, ancak bir DS bileşeninin ne zaman yapılandırması geçersiz olduğundan ve bir istisna attığından biraz endişe duydum/bir istisna atar çünkü Equinox bunu başlatmayı dener ve çok fazla istisnalar atılır ve günlüğe kaydedilir. Temiz görünmüyordu. – oconnor0
Equinox, etkinleştirme yöntemi bir istisna atarsa bileşeni başlatmaya çalışmaya devam etmemelidir. Yapılandırma değişirse, bileşeni yeniden oluşturmak için tekrar denemelisiniz. Kayıt için gelince - elbette, bileşen tarafından atılan istisna kaydedilmelidir! –
DS bileşenini bir "ManagedService" olarak değil, bir "ManagedServiceFactory" olarak ele almak için doğru yolu nedir? Diğer bir deyişle, DS'nin her * uygulanabilir yapılandırma örneği için bir bileşenin yeni bir örneğini oluşturmasını istiyorsa, hile nedir? Metatype tanımının yazılmasını gerektiriyor mu? – seh