Ressourcenreferenzen und der Blueprint-Container
Blueprint-Komponenten können über Ressourcenreferenzdeklarationen auf WebSphere® Application Server -Ressourcenreferenzen zugreifen.
Sie deklarieren jede Ressourcenreferenz in einer Blueprint-XML-Datei. Jedes Bundle in einer OSGi-Anwendung kann eine beliebige Anzahl an Ressourcenreferenzdeklarationen in ihren verschiedenen Blueprint-XML-Dateien enthalten. Sie können jede Ressourcenreferenz mit einem JCA-Authentifizierungsalias ( Java™ Platform, Enterprise Edition ) (Java EE) sichern.
Blueprint-Ressourcenreferenzbindungen werden konfiguriert, wenn Sie das EBA-Asset (Enterprise Bundle Archive, Unternehmensbundlearchiv) einer Geschäftsanwendung hinzufügen.
Zur Verwendung von Ressourcenreferenzen verwenden Sie den folgenden Blueprint-Namespace, der die Elemente "resource-reference", "res-auth" und "res-sharing-scope" enthält:
http://www.ibm.com/appserver/schemas/8.0/blueprint/resourcereference
Im folgenden Beispielcode wird eine Blueprint-Komponente mit der Komponenten-ID "resourceRef" definiert. Die Komponente gleicht einer Servicereferenz. Diese Komponente wird an eine JNDI-Ressource (Java Naming and Directory Interface) gebunden, die den JNDI-Namen jdbc/Account und den Typ javax.resource.cci.ConnectionFactoryhat.
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:rr=
"http://www.ibm.com/appserver/schemas/8.0/blueprint/resourcereference">
<rr:resource-reference id="resourceRef"
interface="javax.resource.cci.ConnectionFactory"
filter="(osgi.jndi.service.name=jdbc/Account)">
<rr:res-auth>Application</rr:res-auth>
<rr:res-sharing-scope>Shareable</rr:res-sharing-scope>
</rr:resource-reference>
</blueprint>
Zum Deklarieren einer Ressourcenreferenz müssen Sie die Attribute "interface" und "filter" angeben. Der Filter muss eine JNDI-Ressource im Format "osgi.jndi.service.name=Name" enthalten, wobei Name für den JNDI-Namen der Ressource steht.
- Anwendung
- Die Berechtigung ist anwendungsgesteuert.
- Container
- Die Berechtigung ist containergesteuert. Dies ist der Standardwert.
- Shareable
- Eine Ressourcenreferenz kann gemeinsam genutzt werden.
- Unshareable
- Eine Ressourcenreferenz kann nicht gemeinsam genutzt werden. Dies ist der Standardwert.
Sie können eine Ressourcenreferenz auch verwenden, um eine Datenquelle für ein Persistenzbundle zu konfigurieren, indem Sie einen JNDI-Namen des Typs "blueprint:comp/ID_der_Ressourcenreferenz verwenden. Weitere Informationen finden Sie unter JPA und OSGi Applications.
Wenn Sie Ressourcenreferenzen sichern, können diese Ressourcenreferenzen nur an JCA-Authentifizierungsaliase gebunden werden, die in jedem Server bzw. Cluster existieren, in dem die OSGi-Anwendung implementiert ist. Eine OSGi-Anwendung kann in mehreren Servern und Clustern implementiert werden, die sich in derselben Sicherheitsdomäne befinden. Deshalb muss jeder JCA-Authentifizierungsalias entweder in der Sicherheitsdomäne der Zielserver und Zielcluster oder in der globalen Sicherheitsdomäne vorhanden sein.