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:
| 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:
| 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:
| 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.
| 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.
| 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:
-
Modificare il parametro
document_level_security_supportednel fileconfig/template.xmlnel modo seguente:<declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/> -
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
-
Il file
custom-crawler-docs.zipda un'istanza Discovery installata -
Il pacchetto JSch
-
I seguenti file per il connettore personalizzato di esempio:
- Codice sorgente Java (
SftpCrawler.javaeSftpSecurityHandler.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.
- Codice sorgente Java (
Compilazione e creazione del pacchetto del codice sorgente
-
Assicurati di essere nella directory di sviluppo del connettore personalizzato sul tuo sistema locale:
cd {local_directory} -
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.