Création d'un plug-in de fonction sans Eclipse

Vous pouvez utiliser Eclipse IDE pour créer facilement les plug-ins. Alternativement, vous pouvez créer une fonction en utilisant SunJava™ 6 SDK.

Pour plus d'informations sur la création d'un plug-in avec Eclipse, consultez Créer les plug-ins dans Eclipse.

Note:
Les étapes suivantes supposent que IBM DevOps Test Integrations and APIs (Test Integrations and APIs) est installé dansC:\Program Files\IBM\DevOpsTestAPI, that the Installation Manager shared resources directory is installed in C:\Program Files\IBM\IBMIMShared\, et que vous utilisez unles fenêtres™ Invite de commande. Cependant, exécuter les commandes depuis un Linux™ Le terminal est également pris en charge et le répertoire des ressources partagées d'Installation Manager est installé sous Linux. systèmes dans /opt/IBM/IBMIMShared/.

Pour créer une fonction sans Eclipse, procédez comme suit:

  1. Créez un dossier pour développer la fonction personnalisée. Par exemple:C:\customFunction.
  2. Créez des dossiers pour la source et la sortie de build. Par exemple:C:\customFunction\src etC:\customFunction\build.
  3. Copiez leplugin.xml fichier et leMETA-INF répertoire deC:\Program Files\IBM\DevOpsTestAPI\examples\FunctionsSamplePlugin dans lebuild annuaire. Les deuxplugin.xml fichier et leMETA-INF répertoire doit être copié dans le même répertoire cible (C:\customFunction\build ).
  4. Créez la structure de répertoires requise soussrc pour contenir votre code de fonction personnalisé. Pour plus d’informations sur la façon d’écrire votre code de fonction personnalisé, consultez Implémentation de la classe de fonctions. Si vous avez du code existant, copiez le package racine et tous les sous-packages sous lesrc dossier. Par exemple:C:\customFunction\src\com\samples\functions\FormatDate.java.
    Voici un exemple de structure de répertoire:

    Exemple de structure de répertoires

    Sauf dans lesrc dossier, si vous compilez votre propre fonction, vous avez la vôtreJava classes dans une hiérarchie de dossiers similaire. Par exemple:

    Exemple de structure de répertoire src

  5. Dans votre invite de commande ou votre terminal, à partir duC:\customFunction\src dossier compiler la fonction personnalisée dans lebuild répertoire, par exemple en exécutant la commande suivante:
    Note:
    Exécutez le javac exécutable à partir du Java Development Kit (JDK). Si les commandes affichées ne trouvent pas cet exécutable, ajoutez le chemin complet de l'emplacement de l'exécutable au début de chaque commande.

    javac -d../build -classpath.;"C:/Program Files/IBM/IBMIMShared/plugins/*" com/samples/functions/FormatDate.java

    Note:
    Si la source contient plusieurs fichiers Java, vous devez spécifier chaque fichier dans la commande. Par exemple, si vous utilisez la deuxième structure de répertoires ci-dessus, la commande est:
    javac -d../build -classpath.;"C:/Program Files/IBM/IBMIMShared/plugins/*" com/mycompany/myfunction/MyFunction.java com/mycompany/myfunction/MyUtilities.java

    ou

    javac -d../build -classpath.;"C:/Program Files/IBM/IBMIMShared/plugins/*" com/mycompany/myfunction/*.java
    Sur unLinux systèmes, la commande est:
    javac -d../build -classpath.:"/opt/IBM/IBMIMShared/plugins/*" **/*.java
  6. ModifierMANIFEST.MF, qui est dans leMETA-INF répertoire sous lebuild répertoire, par exemple,META-INF/MANIFEST.MF et modifiez les valeurs suivantes:
    ValeurChanger pour
    Nom du paquetEntrez un nom descriptif pour le plug-in (par exemple, Format Date Function).
    Nom symbolique du bundleSaisissez un identifiant unique qui décrit votre plug-in. Cet ID doit être différent de tout autre plug-in, car deux plug-ins portant le même ID ne peuvent pas être chargés en même temps. Laissez la partie "singleton:=true" intacte.
    Fournisseur de bundlesEntrez le nom de votre entreprise ou une autre description du fournisseur.
    Voici un exemple de fichier manifeste:
    Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.0 Created-By: 10.0-b19 (Sun Microsystems Inc.) Bundle-ManifestVersion: 2 Bundle-Name: The Function That Does Exactly What I Need Bundle-SymbolicName: com.mycompany.myfunction;singleton:=true Bundle-Version: 1.0.0 Bundle-Vendor: My Company Import-Package: com.ghc.ghTester.expressions

    Remplacez les valeurs de Bundle_Name, le Bundle-SymbolicName, et le Bundle-Vendor avec le vôtre. Le Bundle-SymbolicName la valeur correspond généralement, mais ce n'est pas obligatoire, à laJava nom du package dans lequel la fonctionJava les classes sont localisées.

  7. Ouvrirplugin.xml disponible dans le répertoire build à l'aide de n'importe quel éditeur de texte et mettez à jour les valeurs comme décrit dans Configuration d'un élément d'extension.
  8. Dans votre invite de commande ou votre terminal, à partir duc:\customFunction\build répertoire créez un fichier JAR contenant vos classes de fonctions personnalisées,MANIFEST.MF, etplug-in.xml. Par exemple, vous pouvez utiliser la commande suivante:
    Note:
    Exécutez le jar exécutable à partir du Java Development Kit (JDK). Si les commandes affichées ne trouvent pas cet exécutable, ajoutez le chemin complet de l'emplacement de l'exécutable au début de chaque commande.

    jar cvfm custom-function-plug-in_1.0.0.jar META-INF\MANIFEST.MF com plugin.xml

    Note:
    Vous pouvez choisir n'importe quel nom pour votre fichier JAR, mais vous devez suivre une convention qui évite les noms conflictuels.
  9. Une fois votre fonction implémentée (comme décrit dans Implémentation de la classe de fonctions ) et qu'un plug-in est généré pour votre fonction (comme décrit dans cette rubrique), vous devez l'indiquer Test Integrations and APIs à ce sujet. Copiez le nouveau fichier JAR dans le Functions dossier de votre Test Integrations and APIs projet.

    Une fois terminé, suivez les instructions pour charger la fonction dans Test Integrations and APIs comme décrit dans Configuration de la fonction dans DevOps Test Integrations and APIs.

    Note:
    Un exemple de l'apparence du plug-in peut être trouvé sousC:\Program Files\IBM\DevOpsTestAPI\examples\FunctionsSamplePlugin.