Assemblage et compilation d'un connecteur personnalisé

Vous conditionnez un certain nombre de fichiers de composant pour créer un connecteur personnalisé.

IBM Cloud Pak for Data IBM Software Hub

Ces informations s'appliquent uniquement aux déploiements installés.

Composants de connecteur personnalisé

Un package de connecteurs personnalisés est un fichier compressé qui contient les composants suivants :

Composants du connecteur
Voie Descriptif
config/template.xml Modèle de configuration
config/messages.properties Fichier de propriétés pour les messages d'interface utilisateur
lib/*.jar Fichiers JAR requis par le connecteur personnalisé, ne comprenant pas le code de connecteur que vous écrivez

Modèle de configuration

Le modèle de configuration est un fichier XML divisé en sections. Chaque section contient des paramètres associés. Les fragments XML sont extraits de l'exemple de fichier template.xml dont l'emplacement est indiqué dans Compréhension du fichier custom-crawler-docs.zip.

Paramètres de déclaration

Les paramètres déclarés sont représentés par l'élément « <declare /> ». Cet élément comporte les attributs suivants :

Déclarer des attributs d'élément
Nom d'attribut Descriptif
type Type de données ; string, long, boolean, list de chaînes ou enum
name Nom du paramètre
initial-value Valeur initiale du paramètre
enum-value Une liste de valeurs d' enum s séparées par des barres verticales ( | )
required Indique que le paramètre est obligatoire
hidden Indique si le paramètre doit être masqué dans l'interface utilisateur. Spécifiez la valeur true pour masquer le paramètre.

Dans la version actuelle, les attributs required et hidden ne sont pas appliqués dans l'interface utilisateur du produit Discovery.

Exemples de paramètres de déclaration

Pour déclarer un type d' enum, utilisez un code similaire à l'extrait suivant :

<declare type="enum" name="type" enum-values="PROXY|BASIC|NTLM" initial-value="BASIC"/>

Pour déclarer une variable cachée ( string ) avec une valeur initiale, utilisez un code similaire à l'extrait suivant :

<declare type="string" name="custom_config_class" hidden="true" initial-value="com.example.ExampleCrawlerConfig" />

Pour déclarer un attribut obligatoire ( long ), utilisez un code similaire à l'extrait suivant :

<declare type="long" name="port" required="required" initial-value="22"/>

Paramètres conditionnels

Les paramètres conditionnels sont représentés par l'élément « <condition /> ». Un paramètre conditionnel est affiché uniquement si la condition est remplie. Cet élément comporte les attributs suivants :

Attributs d'élément Condition
Nom d'attribut Descriptif
name Nom du paramètre
enable Activez le paramètre si la valeur de l'attribut name est égale à la valeur de l'attribut enable
in Activez le paramètre si la valeur de l'attribut name est incluse dans une liste de valeurs spécifiée

Dans l'édition actuelle, les paramètres conditionnels ne sont pas appliqués dans l'interface utilisateur du produit Discovery.

Exemples de paramètres conditionnels

Pour activer une section à l'aide d'une condition d' boolean, utilisez un code similaire à l'extrait suivant :

<declare type="boolean" name="use_key" initial-value="true" />

<condition name="use_key" enabled="true">
  <declare type="string" name="key" hidden="false" />
</condition>

Pour activer une section à l'aide d'une condition d' enum, utilisez un code similaire à l'extrait suivant :

<declare type="enum" name="type" enum-values="PROXY|BASIC|NTLM" initial-value="BASIC"/>

<condition name="type" in="BASIC|NTLM|PROXY">
</condition>

<condition name="type" in="PROXY">

Sections de modèle

Chaque section comprend un élément d' <declare /> s pour chacun de ses paramètres.

Sections de modèle
expression XPath Descriptif
/function/@name Nom (type) du moteur d'exploration. N'est pas un nom d'affichage pour l'interface utilisateur. Ne doit pas contenir d'espaces.
/function/prototype/proto-section Section de la configuration.

Section : general_settings

L'expression XPath est /function/prototype/proto-section[@section="general_settings"]. Il inclut des paramètres communs à tous les robots d'indexation, y compris les paramètres suivants :

<declare type="string" name="crawler_name" />
<declare type="string" name="description" />
<declare type="long" name="fetch_interval" initial-value="0" />
<declare type="long" name="number_of_max_threads" initial-value="10" />
<declare type="long" name="number_of_max_documents" initial-value="2000000000" />
<declare type="long" name="max_page_length" initial-value="32768" />

Le moteur d'exploration personnalisé est initialisé avec les paramètres suivants dans la section general_settings. Pour plus d'informations sur les interfaces, voir Développement de code de connecteur personnalisé.

Valeurs par défaut de la section des paramètres généraux
Nom Valeur
custom_config_class Nom d'une classe qui implémente l'interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration
custom_crawler_class Nom d'une classe qui implémente l'interface com.ibm.es.ama.custom.crawler.CustomCrawler
custom_security_class Nom d'une classe qui implémente l'interface com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler
document_level_security_supported Indique si la sécurité de niveau document est activée (true) ou désactivée (false)

Pour spécifier les interfaces, utilisez un code similaire à l'extrait suivant :


  <declare type="string" name="custom_config_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="string" name="custom_crawler_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="string" name="custom_security_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="boolean" name="document_level_security_supported" initial-value="true" hidden="true"/>

Si vous avez généré un connecteur personnalisé avec un package SDK fourni avec la version 2.2.1 ou une version antérieure, document_level_security_supported doit être désactivé (défini sur false). La sécurité de niveau document n'est pas prise en charge dans 2.2.1 et les versions antérieures. Toutefois, l'option Activer la sécurité au niveau du document est affichée dans Discovery même lorsque la sécurité au niveau du document n'est pas prise en charge. Ne sélectionnez pas cette option lorsque vous créez une nouvelle collection.

Pour masquer l'option Activer la sécurité au niveau du document dans Discovery si le connecteur personnalisé a été généré avec un package SDK fourni avec la version 2.2.1 ou une version antérieure, procédez comme suit:

  1. Modifiez le paramètre document_level_security_supported dans le fichier config/template.xml comme suit:

    <declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/>
    
  2. Régénérez le package de connecteur, puis téléchargez-le à nouveau.

Section : datasource_settings

L'expression XPath est /function/prototype/proto-section[@section="datasource_settings"]. Elle inclut des paramètres spécifiques à la source de données.


  <proto-section section="datasource_settings">

      <declare type="string" name="host" required="required" initial-value="localhost"/>
      <declare type="long" name="port" required="required" initial-value="22"/>
      <declare type="string" name="user" required="required" />

      <declare type="boolean" name="use_key" initial-value="true" />

      <condition name="use_key" enabled="true">
        <declare type="string" name="key" hidden="false" />
        <declare type="password" name="passphrase" hidden="false" />
      </condition>

      <condition name="use_key" enabled="false">
        <declare type="password" name="secret_key" hidden="false" />
      </condition>
  </proto-section>

Section : crawlspace_settings

L'expression XPath est /function/prototype/proto-section[@section="crawlspace_settings"]. La section ne contient qu'un seul élément d' <declare />, qui permet de spécifier le chemin d'accès. La valeur du chemin est fournie par le code du connecteur.


  <proto-section section="crawlspace_settings" cardinality="multiple">
    <declare type="string" name="path" hidden="true" />
  </proto-section>

Fichier Propriétés

Pour obtenir un exemple de fichier de propriétés, consultez le fichier exemple messages.properties dont l'emplacement est indiqué dans Compréhension du fichier custom-crawler-docs.zip.

Fichiers JAR

Les fichiers JAR contiennent les interfaces utilisées par votre code de connecteur personnalisé, y compris le fichier ama-zing-custom-crawler-{version_numbers}.jar dont l'emplacement est indiqué dans Compréhension du fichier custom-crawler-docs.zip. Le fichier ama-zing-custom-crawler-{version_numbers}.jar inclut le package Java com.ibm.es.ama.custom.crawler décrit dans Développement de code de connecteur personnalisé.

Compilation et conditionnement du connecteur personnalisé

Après avoir écrit le code source et les fichiers de configuration de votre connecteur personnalisé, vous devez les compiler et les conditionnez.

Prérequis

Pour compiler un connecteur personnalisé, vous devez disposer des éléments suivants sur votre système local. Voir Exemple de connecteur personnalisé pour plus de détails.

  • Java SDK 1.8 ou version ultérieure

  • Gradle

  • Fichier custom-crawler-docs.zip issu d'une instance Discovery installée

  • Package JSch

  • Fichiers suivants pour l'exemple de connecteur personnalisé :

    • Code source Java (SftpCrawler.java et SftpSecurityHandler.java)
    • Fichier de définition XML (template.xml)
    • Fichier de propriétés (messages.properties)

    Ne modifiez pas les noms ou les chemins des exemples de fichiers de connecteur personnalisé. Cela peut entraîner des problèmes, notamment des échecs de construction.

Compilation et conditionnement du code source

  1. Assurez-vous que vous vous trouvez dans le répertoire de développement du connecteur personnalisé sur votre système local :

    cd {local_directory}
    
  2. Utilisez Gradle pour compiler votre code source d' Java, et créer un fichier compressé qui inclut tous les composants requis pour le connecteur personnalisé :

    gradle build packageCustomCrawler
    

Gradle crée un fichier dans {local_directory}/build/distributions/{built_connector_zip_file}, où le nom de {built_connector_zip_file} est basé sur la valeur rootProject.name de settings.gradle. Par exemple, si la ligne se lit comme suit, Gradle génère un fichier nommé {local_directory}/build/distributions/my-sftp-connector.zip.

rootProject.name = 'my-sftp-connector'

Etape suivante

Passez à l'étape Installation et désinstallation d'un connecteur personnalisé pour installer le connecteur personnalisé sur votre instance Discovery.