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.

Verwenden Sie das Element "res-auth", um festzulegen, ob die Berechtigung anwendungsgesteuert oder containergesteuert ist. Die gültigen Werte für das Element "res-auth" sind im folgenden aufgelistet:
Anwendung
Die Berechtigung ist anwendungsgesteuert.
Container
Die Berechtigung ist containergesteuert. Dies ist der Standardwert.
Verwenden Sie das Element "res-sharing-scope", um festzulegen, ob eine Ressourcenreferenz gemeinsam genutzt werden kann. Die gültigen Werte für das Element "res-sharing-scope" sind im folgenden aufgelistet:
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.