Zusammenbau und Zusammenstellung eines kundenspezifischen Steckverbinders

Sie müssen ein Paket mit einer Reihe von Komponentendateien erstellen, wenn Sie einen angepassten Connector erstellen möchten.

IBM Cloud Pak for Data IBM Software Hub

Diese Informationen gelten nur für installierte Implementierungen.

Komponenten eines angepassten Connectors

Ein benutzerdefiniertes Connector-Paket ist eine komprimierte Datei, die folgende Komponenten enthält:

Connectorkomponenten
Pfad Beschreibung
config/template.xml Konfigurationsvorlage
config/messages.properties Eigenschaftendatei für Benutzerschnittstellennachrichten
lib/*.jar Für den angepassten Connector erforderliche JAR-Dateien, exklusive des von Ihnen geschriebenen Connector-Codes

Konfigurationsvorlage

Bei der Konfigurationsvorlage handelt es sich um eine XML-Datei, die in Abschnitte gegliedert ist. Jeder Abschnitt enthält zugehörige Einstellungen. Die XML-Snippets werden aus der Beispieldatei template.xml übernommen, deren Position unter Informationen zur Datei custom-crawler-docs.zip aufgeführt ist.

Deklarierte Einstellungen

Die deklarierten Einstellungen werden durch das Element <declare /> dargestellt. Das Element kann mit folgenden Attributen verwendet werden:

Elementattribute deklarieren
Attributname Beschreibung
type Datentyp string, long, boolean, list (Liste von Zeichenfolgen) oder enum
name Name der Einstellung
initial-value Anfangswert der Einstellung
enum-value Eine Liste der enum-Werte, getrennt durch vertikale Balken ( | )
required Gibt an, dass die Einstellung erforderlich ist
hidden Gibt an, ob die Einstellung auf der Benutzerschnittstelle ausgeblendet werden soll. Geben Sie den Wert true an, um die Einstellung auszublenden.

In der aktuellen Version werden die Attribute required und hidden nicht in der Benutzeroberfläche des Discovery-Produkts angewendet.

Beispiele für deklarierte Einstellungen

Um einen enum-Typ zu deklarieren, verwenden Sie einen Code, der dem folgenden Snippet ähnelt:

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

Um eine versteckte string mit einem Anfangswert zu deklarieren, verwenden Sie einen Code, der dem folgenden Snippet ähnelt:

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

Um eine erforderliche long zu deklarieren, verwenden Sie einen Code, der dem folgenden Ausschnitt ähnelt:

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

Bedingte Einstellungen

Bedingte Einstellungen werden durch das Element <condition /> dargestellt. Eine bedingte Einstellung wird nur angezeigt, wenn die Bedingung erfüllt ist. Das Element kann mit folgenden Attributen verwendet werden:

Bedingungselementattribute
Attributname Beschreibung
name Name der Einstellung
enable Die Einstellung wird aktiviert, wenn der Wert des Attributs name mit dem Wert des Attributs enable übereinstimmt.
in Die Einstellung wird aktiviert, wenn der Wert des Attributs name in einer angegebenen Werteliste enthalten ist.

Im aktuellen Release werden bedingte Einstellungen nicht in der Benutzerschnittstelle des Produkts Discovery angewendet.

Beispiele für bedingte Einstellungen

Um einen Abschnitt mithilfe einer boolean-Bedingung zu aktivieren, verwenden Sie einen Code, der dem folgenden Snippet ähnelt:

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

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

Um einen Abschnitt mithilfe einer enum-Bedingung zu aktivieren, verwenden Sie einen Code, der dem folgenden Snippet ähnelt:

<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">

Vorlagenabschnitte

Jeder Abschnitt enthält ein <declare />-Element für jede seiner Einstellungen.

Vorlagenabschnitte
XPath-Ausdruck Beschreibung
/function/@name Der Name (Typ) des Crawlers. Kein Anzeigename für die Benutzerschnittstelle. Darf keine Leerzeichen enthalten.
/function/prototype/proto-section Abschnitt der Konfiguration

Abschnitt general_settings

Der XPath-Ausdruck lautet /function/prototype/proto-section[@section="general_settings"]. Es enthält allgemeine Einstellungen für alle Crawler, einschließlich der folgenden Einstellungen:

<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" />

Der angepasste Crawler wird mit den folgenden Einstellungen im Abschnitt general_settings initialisiert. Informationen zu den Schnittstellen finden Sie in Code für angepassten Connector entwickeln.

Standardeinstellungen im Abschnitt Allgemeine
Name Wert
custom_config_class Der Name einer Klasse, die die Schnittstelle com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration implementiert.
custom_crawler_class Der Name einer Klasse, die die Schnittstelle com.ibm.es.ama.custom.crawler.CustomCrawler implementiert.
custom_security_class Der Name einer Klasse, die die Schnittstelle com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler implementiert.
document_level_security_supported Gibt an, ob die Sicherheit auf Dokumentebene aktiviert ist (true) oder inaktiviert (false).

Verwenden Sie zur Angabe der Schnittstellen einen Code, der dem folgenden Snippet ähnelt:


  <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"/>

Wenn Sie einen angepassten Connector mit einem SDK-Paket erstellt haben, das mit Version 2.2.1 oder früher gebündelt wurde, muss document_level_security_supported inaktiviert sein (auf false gesetzt). Sicherheit auf Dokumentebene wird in 2.2.1 und früheren Releases nicht unterstützt. Die Option Sicherheit auf Dokumentebene aktivieren wird jedoch in Discovery angezeigt, auch wenn die Sicherheit auf Dokumentebene nicht unterstützt wird. Wählen Sie diese Option nicht aus, wenn Sie eine neue Objektgruppe erstellen.

Führen Sie die folgenden Schritte aus, um die Option Sicherheit auf Dokumentebene aktivieren in Discovery auszublenden, wenn der angepasste Connector mit einem SDK-Paket erstellt wurde, das mit Version 2.2.1 oder früher gebündelt wurde:

  1. Ändern Sie den Parameter document_level_security_supported in der Datei config/template.xml wie folgt:

    <declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/>
    
  2. Erstellen Sie das Connectorpaket erneut und laden Sie es anschließend erneut hoch.

Abschnitt datasource_settings

Der XPath-Ausdruck lautet /function/prototype/proto-section[@section="datasource_settings"]. Er enthält spezifische Einstellungen für die Datenquelle.


  <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>

Abschnitt crawlspace_settings

Der XPath-Ausdruck lautet /function/prototype/proto-section[@section="crawlspace_settings"]. Der Abschnitt enthält nur ein <declare />-Element, um den Pfad anzugeben. Der Pfadwert wird vom Connector-Code angegeben.


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

Eigenschaftendatei

Ein Beispiel für eine Eigenschaftendatei ist die Datei messages.properties, deren Position unter Informationen zur Datei custom-crawler-docs.zip angegeben ist.

JAR-Dateien

Die JAR-Dateien gelten für alle von Ihrem Code für angepasste Connectors verwendeten Schnittstellen. Dies gilt auch für die Datei ama-zing-custom-crawler-{version_numbers}.jar, deren Position unter Informationen zur Datei custom-crawler-docs.zip aufgeführt ist. Die Datei ama-zing-custom-crawler-{version_numbers}.jar enthält das Java-Paket com.ibm.es.ama.custom.crawler, das unter Code für angepasste Connectors entwickeln beschrieben ist.

Angepassten Connector kompilieren und packen

Wenn Sie die Quellcode- und Konfigurationsdateien für Ihren angepassten Connector geschrieben haben, müssen Sie diese kompilieren und packen.

Voraussetzungen

Um einen benutzerdefinierten Connector zu erstellen, müssen Sie die folgenden Elemente auf Ihrem lokalen System haben. Details finden Sie in Beispiel für einen angepassten Connector.

  • Java SDK 1.8 oder höher

  • Gradle

  • Datei custom-crawler-docs.zip aus einer installierten Instanz von Discovery

  • JSch-Paket

  • Folgende Dateien für den angepassten Beispielconnector:

    • Java-Quellcode (SftpCrawler.java und SftpSecurityHandler.java)
    • XML-Definitionsdatei (template.xml)
    • Eigenschaftendatei (messages.properties)

    Ändern Sie nicht die Namen oder Pfade der angepassten Beispielconnectordateien. Dies kann zu Problemen führen, einschließlich Fehlern bei der Erstellung.

Quellcode kompilieren und packen

  1. Stellen Sie sicher, dass Sie sich im Verzeichnis für die benutzerdefinierte Konnektorentwicklung auf Ihrem lokalen System befinden:

    cd {local_directory}
    
  2. Verwenden Sie Gradle, um Ihren Java-Quellcode zusammenzustellen und eine komprimierte Datei zu erstellen, die alle erforderlichen Komponenten für den benutzerdefinierten Connector enthält:

    gradle build packageCustomCrawler
    

Gradle erstellt eine Datei in {local_directory}/build/distributions/{built_connector_zip_file}, wobei der Name der {built_connector_zip_file} auf dem rootProject.name-Wert settings.gradle basiert. Wenn die Zeile beispielsweise wie folgt lautet, generiert Gradle eine Datei mit dem Namen {local_directory}/build/distributions/my-sftp-connector.zip.

rootProject.name = 'my-sftp-connector'

Nächster Schritt

Fahren Sie mit dem Abschnitt Angepassten Connector installieren und deinstallieren fort, um den angepassten Connector in Ihrer Instanz von Discovery zu installieren.