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 :
| 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 :
| 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 :
| 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.
| 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é.
| 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:
-
Modifiez le paramètre
document_level_security_supporteddans le fichierconfig/template.xmlcomme suit:<declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/> -
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
-
Fichier
custom-crawler-docs.zipissu d'une instance Discovery installée -
Package JSch
-
Fichiers suivants pour l'exemple de connecteur personnalisé :
- Code source Java (
SftpCrawler.javaetSftpSecurityHandler.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.
- Code source Java (
Compilation et conditionnement du code source
-
Assurez-vous que vous vous trouvez dans le répertoire de développement du connecteur personnalisé sur votre système local :
cd {local_directory} -
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.