Pregunta

Estoy usando Apache Felix y sus servicios declarativos (SCR) para conectar las dependencias de servicio entre paquetes.

Por ejemplo, si necesito acceso a un java.util.Dictionary, puedo decir lo siguiente para que SCR proporcione uno:

/**
* @scr.reference name=properties interface=java.util.Dictionary
*/

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

Ahora, tengo más de un servicio de Diccionario disponible, y quiero filtrarlos usando el " nombre " propiedad del servicio (solo quiero " name = myDictionary "). Puedo hacerlo con código (usando un ServiceTracker), pero prefiero especificar el filtro en la anotación @scr.

¿Fue útil?

Solución

Creo

target="(name=myDictionary)"

debería hacer el truco en la anotación @ scr.reference . Ver http://felix.apache.org/site/apache -felix-maven-scr-plugin.html

Otros consejos

En DS estándar, puede usar el atributo de destino del elemento de referencia. En el mundo Felix, donde se pueden usar anotaciones, no sé cuál es el equivalente.

El atributo de destino es un filtro LDAP, que coincide con las propiedades del servicio. Por lo tanto, su filtro debe ser:

(nombre = myDictionary)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top