Assemblaggio e compilazione di un connettore personalizzato

Per creare un connettore personalizzato, crei un pacchetto di diversi file di componente.

IBM Cloud Pak for Data IBM Software Hub

Queste informazioni si applicano solo alle distribuzioni installate.

Componenti del connettore personalizzato

Un pacchetto connettore personalizzato è un file compresso che contiene i seguenti componenti:

Componenti connettore
Percorso Descrizione
config/template.xml Un template di configurazione
config/messages.properties Un file delle proprietà per i messaggi dell'IU
lib/*.jar File JAR richiesti dal connettore personalizzato, escluso il codice del connettore da te scritto

Template di configurazione

Il template di configurazione è un file XML diviso in sezioni. Ogni sezione contiene le impostazioni correlate. I frammenti XML vengono presi dal file template.xml di esempio la cui ubicazione è elencata in Descrizione del file custom-crawler-docs.zip.

Impostazioni di dichiarazione

Le impostazioni dichiarate sono rappresentate dall'elemento " <declare /> ". L'elemento ha i seguenti attributi:

Dichiara attributi elemento
Nome attributo Descrizione
type Tipo di dati; un valore tra string, long, boolean, list (elenco) di stringhe o enum
name Il nome dell'impostazione
initial-value Il valore iniziale dell'impostazione
enum-value Un elenco di valori di enum e separati da barre verticali ( | )
required Indica che l'impostazione è obbligatoria
hidden Indica se nascondere l'impostazione dall'IU. Specifica il valore true per nascondere l'impostazione.

Nella versione attuale, gli attributi " required " e " hidden " non sono applicati nell'interfaccia utente del prodotto " Discovery ".

Esempi di impostazioni di dichiarazione

Per dichiarare un tipo di " enum ", utilizzare un codice simile al seguente frammento:

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

Per dichiarare un' string e nascosta con un valore iniziale, utilizzare un codice simile al seguente frammento:

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

Per dichiarare un' long, utilizzare un codice simile al seguente frammento:

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

Impostazioni condizionali

Le impostazioni condizionali sono rappresentate dall'elemento " <condition /> ". Un'impostazione condizionale viene visualizzata solo se la condizione viene soddisfatta. L'elemento ha i seguenti attributi:

Attributi elemento condizione
Nome attributo Descrizione
name Il nome dell'impostazione
enable Abilita l'impostazione se il valore dell'attributo name è uguale al valore dell'attributo enable
in Abilita l'impostazione se il valore dell'attributo name è incluso in un elenco di valori specificato

Nella release corrente, le impostazioni condizionali non vengono applicate nell'interfaccia utente del prodotto Discovery.

Esempi di impostazioni condizionali

Per abilitare una sezione utilizzando una condizione " boolean ", utilizzare un codice simile al seguente frammento:

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

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

Per abilitare una sezione utilizzando una condizione di tipo " enum ", utilizzare un codice simile al seguente frammento:

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

Sezioni del template

Ogni sezione include un elemento di configurazione ( <declare /> ) per ciascuna delle sue impostazioni.

Sezioni del template
espressione XPath Descrizione
/function/@name Il nome (tipo) del crawler. Non è un nome di visualizzazione per l'IU. Non può contenere spazi.
/function/prototype/proto-section Una sezione della configurazione.

Sezione: general_settings

L'espressione XPath è /function/prototype/proto-section[@section="general_settings"]. Include impostazioni comuni per tutti i cingolati, comprese le seguenti impostazioni:

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

Il crawler personalizzato viene inizializzato con le seguenti impostazioni nella sezione general_settings. Per informazioni sulle interfacce, vedi Sviluppo del codice del connettore personalizzato.

Impostazioni generali predefinite della sezione
Nome Valore
custom_config_class Il nome di una classe che implementa l'interfaccia com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration
custom_crawler_class Il nome di una classe che implementa l'interfaccia com.ibm.es.ama.custom.crawler.CustomCrawler
custom_security_class Il nome di una classe che implementa l'interfaccia com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler
document_level_security_supported Specifica se la sicurezza a livello di documento è abilitata (true) o disabilitata (false)

Per specificare le interfacce, utilizzare un codice simile al seguente frammento:


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

Se hai creato un connettore personalizzato con un pacchetto SDK fornito con la versione 2.2.1 o precedente, document_level_security_supported deve essere disabilitato (impostato su false). La sicurezza a livello di documento non è supportata in 2.2.1 e release precedenti. Tuttavia, l'opzione Abilita sicurezza a livello di documento viene visualizzata in Discovery anche quando la sicurezza a livello di documento non è supportata. Non selezionare questa opzione quando si crea una nuova raccolta.

Per nascondere l'opzione Abilita sicurezza a livello di documento da Discovery se il connettore personalizzato è stato creato con un pacchetto SDK fornito con la versione 2.2.1 o precedente, completa la seguente procedura:

  1. Modificare il parametro document_level_security_supported nel file config/template.xml nel modo seguente:

    <declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/>
    
  2. Creare nuovamente il package del connettore e caricarlo nuovamente.

Sezione: datasource_settings

L'espressione XPath è /function/prototype/proto-section[@section="datasource_settings"]. Include impostazioni specifiche per l'origine dati.


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

Sezione: crawlspace_settings

L'espressione XPath è /function/prototype/proto-section[@section="crawlspace_settings"]. La sezione contiene un solo elemento " <declare /> " per specificare il percorso. Il valore del percorso è fornito dal codice del connettore.


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

File delle proprietà

Per un esempio di file delle proprietà, vedi il file messages.properties di esempio la cui ubicazione è elencata in Descrizione del file custom-crawler-docs.zip.

File JAR

I file JAR per tutte le interfacce utilizzate dal codice del connettore personalizzato, incluso il file " ama-zing-custom-crawler-{version_numbers}.jar " la cui posizione è elencata in "Capire il file " custom-crawler-docs.zip ". Il file ama-zing-custom-crawler-{version_numbers}.jar include il pacchetto Java com.ibm.es.ama.custom.crawler descritto in Sviluppo di codice connettore personalizzato.

Compilazione e creazione del pacchetto del connettore personalizzato

Dopo aver scritto il codice sorgente e i file di configurazione per il tuo connettore personalizzato, devi compilarlo e inserirlo in un pacchetto.

Prerequisiti

Per compilare un connettore personalizzato, è necessario disporre dei seguenti elementi sul sistema locale. Per i dettagli, vedi Esempio di connettore personalizzato.

  • Java SDK 1.8 o superiore

  • Gradle

  • Il file custom-crawler-docs.zip da un'istanza Discovery installata

  • Il pacchetto JSch

  • I seguenti file per il connettore personalizzato di esempio:

    • Codice sorgente Java (SftpCrawler.java e SftpSecurityHandler.java)
    • File di definizioni XML (template.xml)
    • File delle proprietà (messages.properties)

    Non modificare i nomi o i percorsi dei file del connettore personalizzato di esempio. Ciò può causare problemi, tra cui errori di costruzione.

Compilazione e creazione del pacchetto del codice sorgente

  1. Assicurati di essere nella directory di sviluppo del connettore personalizzato sul tuo sistema locale:

    cd {local_directory}
    
  2. Utilizza Gradle per compilare il codice sorgente dell' Java e e creare un file compresso che includa tutti i componenti necessari per il connettore personalizzato:

    gradle build packageCustomCrawler
    

Gradle crea un file in {local_directory}/build/distributions/{built_connector_zip_file}, dove il nome del {built_connector_zip_file} si basa sul valore rootProject.name di settings.gradle. Ad esempio, se la riga è la seguente, Gradle genera un file denominato {local_directory}/build/distributions/my-sftp-connector.zip.

rootProject.name = 'my-sftp-connector'

Passo successivo

Passa a Installazione e disinstallazione di un connettore personalizzato per installare il connettore personalizzato nella tua istanza Discovery.