Extension de l'infrastructure d'importation de serveurs d'applications

AppScan® Source vous permet d'importer des applications Java™ depuis Apache Tomcat et le profil Liberty WebSphere® Serveur d'applications. Vous pouvez importer des applications Java à partir d'autres serveurs d'applications en étendant l'infrastructure d'importation de serveurs d'applications, comme expliqué dans cette rubrique.

Pourquoi et quand exécuter cette tâche

L'infrastructure d'importation de serveurs d'applications est accompagnée par une documentation d'API qui n'est pas disponible au format PDF. Si vous avez accès à cette rubrique d'aide via Adobe™ PDF, vous ne pouvez accéder à la documentation d'API qu'en lançant l'aide en ligne d'AppScan Source for Analysis et en navigant jusqu'à Extension des fonctions du produit > Extension de l'infrastructure d'importation de serveurs d'applications > Classes et méthodes d'API d'extension d'infrastructure d'importation de serveurs d'applications, ou en recherchant cette section de l'aide dans http://help.hcltechsw.com/appscan/Source/10.0.0/index.html.

Pour étendre l'infrastructure d'importation de serveurs d'applications, exécutez la procédure ci-dessous. Ces étapes vous feront exécuter les opérations suivantes :

Procédure

  1. Configurez un environnement de développement intégré Eclipse pour les dépendances requises par l'infrastructure d'importation de serveurs d'applications AppScan Source :
    1. Dans Eclipse, sélectionnez Fenêtre > Préférences dans le menu principal.
    2. Dans la boîte de dialogue Préférences, développez Développement de plug-in, puis sélectionnez Plateforme cible.
    3. Dans la page des préférences de plateforme cible, cliquez sur Ajouter pour créer une définition de cible.
    4. Dans la page d'assistant de définition de cible, sélectionnez Rien : démarrer avec une définition de cible vide, puis cliquez sur Suivant.
    5. Dans la page de l'assistant de contenu cible, entrez un nom pour la cible dans la zone Nom et cliquez sur Ajouter pour ajouter votre répertoire d'installation AppScan Source (voir Emplacements des fichiers de données utilisateur et des fichiers d'installation).
    6. Facultatif : Sélectionnez Afficher le contenu de l'emplacement pour vérifier que des plug-ins sont disponibles.
    7. Cliquez sur Terminer.
    8. Dans la page des préférences de plateforme cible, sélectionnez la plateforme cible que vous venez de créer et cliquez sur Appliquer. Ensuite, appuyez sur OK.
  2. Créez un nouveau plug-in dans Eclipse :
    1. Sélectionnez Fichier > Nouveau projet dans le menu principal pour ouvrir l'assistant Nouveau projet.
    2. Dans la page de sélection d'un assistant, sélectionnez Projet de plug-in et cliquez sur Suivant.
    3. Dans la page Projet de plug-in, entrez un nom pour le plug-in dans la zone Nom du projet (cette rubrique d'aide utilisera com.example.appserverimporter comme exemple) et cliquez sur Suivant.
    4. Dans la page de contenu, désélectionnez Générer un activateur, une classe Java qui contrôle le cycle de vie du plug-in et cliquez sur Terminer.
  3. Dans le plug-in que vous venez de créer, définissez les dépendances nécessaires :
    1. Ouvrez META-INF\MANIFEST.MF et sélectionnez l'onglet Dépendances.
    2. Dans la section Plug-ins requis de l'éditeur :
      • Cliquez sur Ajouter, puis ajoutez com.ouncelabs.core.appserverimporter et org.eclipse.core.runtime.
      • Sélectionnez le plug-in com.ouncelabs.core.appserverimporter que vous venez d'ajouter et cliquez sur Propriétés. Dans les propriétés du plug-in, supprimez les entrées des zones Version minimale et Version maximale, puis cliquez sur OK.
      • Répétez l'étape ci-dessus pour le plug-in org.eclipse.core.runtime.
    3. Sélectionnez Fichier > Sauvegarder dans le menu principal pour sauvegarder les modifications apportées à l'éditeur.
    4. L'étape suivante vous permettra de définir une extension pour votre serveur d'applications. Pour cette étape, vous continuez à travailler dans l'éditeur META-INF\MANIFEST.MF.
  4. Définissez une extension d'importateur pour votre serveur d'applications en procédant comme suit :
    1. Sélectionnez l'onglet Extensions, cliquez sur Ajouter pour ajouter com.ouncelabs.appserver, puis sélectionnez Fichier > Sauvegarder dans le menu principal.
    2. Sélectionnez l'onglet plugin.xml. Son contenu doit ressembler à ceci :
      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
        </extension>
      </plugin>

      Effectuez la définition d'extension en éditant le contenu. Par exemple :

      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
          <importer
           class="com.example.appserverimporter.MyAppServerImporter"
           id="com.example.appserverimporter.myappserver"
           name="My App Server">
         </importer>
       </extension>
      </plugin>
    3. Sélectionnez Fichier > Sauvegarder dans le menu principal pour sauvegarder les modifications apportées à plugin.xml.
  5. Créer la classe d'importateur (dans cet exemple, com.example.appserverimporter.MyAppServerImporter) pour définir le comportement du nouvel importateur de serveur d'applications. Cette classe doit étendre BaseAppServerImporterBaseAppServerImporter, l'implémentation de base de l'infrastructure pour l'interface AppServerImporterAppServerImporter. Dans cette classe :
    1. Mettre en œuvre AppServerImporter.importAppServer(String). Cette méthode est utilisée par l'infrastructure pour déterminer les projets Java EE à importer et leur emplacement. En règle générale, seuls le nom et le chemin du projet Java EE sont nécessaires pour chaque projet. Si des projets d'application d'entreprise (EAR) sont créés, les projets Java EE qu'ils contiennent sont masqués lorsque vous sélectionnez des projets dans l'interface utilisateur AppScan Source. Dans notre cas, la totalité du fichier d'archive d'entreprise sera importée. Sinon, tous les projets sont répertoriés pour être sélectionnés individuellement.

      L'utilisation de ces méthodes est fortement recommandée, le cas échéant :

      • BaseAppServerImporter.processDropInsFolder(AppServerProfile, File)
      • BaseAppServerImporter.processEARFile(AppServerProfile, File)
    2. Mettre en œuvre AppServerImporter.isValidLocation(String). Cette méthode permet de détecter le type de serveur, en fonction du répertoire d'installation.
    3. Facultatif : Remplacez BaseAppServerImporter.getJSPCompilerType(). Cette méthode renvoie le compilateur JSP à utiliser pour le projet AppScan Source. Si vous n'effectuez pas cette opération, l'implémentation de base renvoie la valeur NULL, et le compilateur JSP par défaut du produit sera utilisé.
  6. Facultatif : En tant qu'option avancée, vous pouvez personnaliser la compilation JSP pour utiliser un compilateur de JSP précompilé (la compilation JSP a lieu avant ou pendant l'importation) :
    1. Remplacez BaseAppServerImporter.getJSPCompilerType() pour renvoyer JSPCompilerType.PRECOMPILED.
    2. Redéfinissez BaseAppServerImporter.getJSPCompilerType() pour appeler JMX, l'API Java et des scripts externes pour compiler les fichiers JSP, ou copiez simplement des fichiers de classe dans le répertoire de transfert du projet AppScan Source. Utilisez Application.getStagingDirectory(Project)Application.getStagingDirectory(Project) pour obtenir le répertoire de transfert.
    3. Remplacez BaseAppServerImporter.createJSPCompilerSupport() pour renvoyer une extension personnalisée de JSPCompilerSupportJSPCompilerSupport. Cette méthode est utilisée pour conserver le mappage entre les fichiers JSP et les fichiers de classe générés, ainsi que pour la validation après la compilation JSP.
    4. Remplacez BaseAppServerImporter.createClasspathProvider() pour renvoyer une implémentation personnalisée d'AppServerClasspathProviderAppServerClasspathProvider. Cette classe est requise pour compiler tout fichier Java ou JSP comportant des dépendances sur des bibliothèques de serveur. La classe doit étendre BaseAppServerClasspathProviderBaseAppServerClasspathProvider. Notez que BaseAppServerClasspathProvider.installDirectory sera déjà défini sur le répertoire d'installation pour le serveur d'applications lorsque getClasspathEntries() est appelé.
  7. Testez le plug-in en procédant comme suit :
    1. Sélectionnez Exécuter > Exécuter les configurations dans le menu principal (ou Exécuter > Déboguer si vous souhaitez effectuer le test en mode débogage).
    2. Créez une nouvelle configuration Application Eclipse.
      • Accédez à Onglet Principal de la nouvelle configuration. Dans la section Programme à exécuter, sélectionnez Exécuter un produit et définissez la zone pour exécuter com.ouncelabs.osa.rcp.product.
      • Accédez à l'onglet Arguments. Dans la section Répertoire de travail, sélectionnez Autre et entrez votre répertoire de données AppScan Source dans la zone (voir Emplacements des fichiers de données utilisateur et des fichiers d'installation).
      • Dans l'onglet Plug-ins, définissez la sélection Lancer avec sur plug-ins sélectionnés au-dessous uniquement. Développez Espace de travail et vérifiez que le plug-in que vous avez créé est sélectionné, puis désélectionnez les plug-ins suivants sous Plateforme cible:
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced.nl
        • com.ouncelabs.plugin.enhanced.nl
    3. Avant de cliquer sur Exécuter dans la boîte de dialogue Exécuter les configurations, accédez à votre répertoire d'installation AppScan Source et exécutez bin\OunceScanner.exe.
    4. Revenez à la boîte de dialogue Exécuter les configurations, puis cliquez sur Exécuter pour lancer AppScan Source for Analysis et tester le plug-in.
  8. Activez le plug-in pour AppScan Source for Analysis en procédant comme suit :
    1. Cliquez avec le bouton droit de la souris sur le projet et sélectionnez Exporter.
    2. Dans la page de sélection de l'assistant d'exportation, développez Développement de plug-in, sélectionnez Plug-ins et fragments déployables, puis cliquez sur Suivant.
    3. Dans la page Plug-ins et fragments déployables :
      • Accédez à l'onglet Destination et définissez le Répertoire en naviguant jusqu'à un répertoire temporaire de votre machine.
      • Accédez à l'onglet Options, puis sélectionnez Mettre en forme les plug-ins sous forme d'archives JAR distinctes et Remplacement de qualifiant.
      • Cliquez sur Terminer.
    4. Recherchez le répertoire temporaire utilisé comme destination pour exporter le plug-in et ouvrez son dossier plugins\. Dans ce dossier, recherchez le fichier .jar qui a été créé et copiez-le dans <install_dir>\dropins (où <install_dir> est l'emplacement de votre installation AppScan Source.).
      Remarque :
      • Si le répertoire \dropins n'existe pas, vous devez le créer manuellement.
      • Vous pouvez avoir besoin des privilèges d'administration pour modifier le répertoire d'installation AppScan Source.
    5. Localisez :<install_dir>\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info Effectuez une copie de sauvegarde du fichier, puis éditez le fichier et ajoutez ceci à la fin de celui-ci :
      <my_plugin>,<my_plugin_version>,
      dropins/<my_plugin>_<my_plugin_version>.jar,4,false
      <my_plugin>,<my_plugin_version>,dropins/<my_plugin>_<my_plugin_version>.jar,4,false

      Où :

      • <my_plugin> est le nom du plug-in que vous avez créé.
      • <my_plugin_version> est le numéro de version du plug-in que vous avez créé.
      Remarque : Au début de cette entrée, <my_plugin>, <my_plugin_version>, et l'emplacement dropins/ sont séparés par des virgules (,).
    6. Démarrez AppScan Source for Analysis.
    7. Sélectionnez Aide > A propos de AppScan Source for Analysis dans le menu principal et cliquez sur Détails de l'installation. Sélectionnez l'onglet Plug-ins et vérifiez que votre plug-in y figure.
    8. Fermez la boîte de dialogue Détails de l'installation et commencez à utiliser votre infrastructure d'importation de serveurs d'applications.