Création d'un fragment de bundle OSGi pour les classes de fournisseur

Si votre application utilise IBM ou des classes de fournisseur fournies avec le JRE, vous devez créer un fragment de bundle OSGi pour rendre les classes disponibles dans l'infrastructure OSGi.

Pourquoi et quand exécuter cette tâche

Depuis CICS TS 5.1, l'infrastructure OSGi possède des règles plus strictes qui contrôlent les classes pouvant être chargées à partir de l'environnement d'exécution Java.

Tout package portant le préfixe java est chargé par l'infrastructure OSGi, comme requis par l'application. Si une application utilise un package IBM ou fournisseur fourni avec l'environnement d'exécution Java, tel que com.ibm.misc, vous devez créer un bundle OSGi de logiciel intermédiaire pour rendre ces classes disponibles pour l'infrastructure OSGi. Sinon, les transactions s'achèvent avec un code AJ05 et des erreurs java.lang.ClassNotFoundException sont consignées dans le journal des erreurs du serveur JVM et dans le journal du système CICS.

Ces étapes sont facultatives pour les classes Java CICS, car les classes JCICS sont automatiquement disponibles dans l'infrastructure OSGi.

Procédure

  1. Pour chaque package IBM ou fournisseur requis par l'application, créez un fragment de bundle OSGi pour exporter le package. L'exemple suivant montre les éléments que le manifeste du fragment de bundle OSGi peut contenir :
    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: Extension
    Bundle-SymbolicName: com.ibm.example.extension
    Bundle-Version: 1.0.0
    Bundle-Vendor: IBM
    Fragment-Host: system.bundle; extension:=framework
    Export-Package: com.ibm.misc
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6

    Fragment-Host indique que le fragment de bundle OSGi étend le bundle système dans l'infrastructure OSGi. Export-Package répertorie les packages exportés ; dans cet exemple, le package commençant par com.ibm.misc est exporté. Si vous utilisez Eclipse, ignorez l'erreur marquée.

  2. Modifiez l'application de façon à ajouter une importation pour le package exporté dans le manifeste de bundle OSGi approprié. Chaque bundle OSGi qui nécessite une classe d'un package IBM ou fournisseur doit déclarer le package dans le manifeste.
  3. Créez un projet de regroupement CICS pour les fragments de bundle OSGi. Vous pouvez inclure un ou plusieurs fragments de bundle OSGi dans le projet, si vous souhaitez gérer le cycle de vie des fragments ensemble. La meilleure pratique consiste à conserver le bundle de logiciel intermédiaire séparé de l'application, pour que les administrateurs puissent gérer le cycle de vie séparément dans CICS.

Résultats

Vous avez créé un projet de regroupement CICS qui contient un ou plusieurs fragments de bundle OSGi, qui exportent des packages à partir de l'environnement d'exécution Java. Lorsqu'il est déployé, ce logiciel intermédiaire permet de s'assurer que votre application peut s'exécuter sur un serveur JVM CICS TS 5.1.

Que faire ensuite

Déployez l'application et le bundle de logiciel intermédiaire. Vous devez vérifier que le profil de machine virtuelle Java du serveur de machine virtuelle Java cible indique le bundle de logiciel intermédiaire dans l'option OSGI_BUNDLES.