Montagem e compilação de um conector personalizado

Você empacota vários arquivos de componentes juntos para criar um conector customizado.

IBM Cloud Pak for Data IBM Software Hub

Essas informações se aplicam apenas a implementações instaladas.

Componentes do conector customizado

Um pacote de conector personalizado é um arquivo compactado que contém os seguintes componentes:

Componentes do conector
Caminho Descrição
config/template.xml Um modelo de configuração
config/messages.properties Um arquivo de propriedades para mensagens da IU
lib/*.jar Os arquivos JAR necessários para o conector customizado, não incluindo o código do conector que você grava

Modelo de configuração

O modelo de configuração é um arquivo XML dividido em seções. Cada seção contém configurações relacionadas. Os fragmentos XML são obtidos do arquivo de exemplo template.xml cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip.

Configurações de declaração

As configurações declaradas são representadas pelo elemento <declare />. O elemento tem os atributos a seguir:

Declarar atributos de elemento
Nome do atributo Descrição
type Tipo de dados; um de string, long, boolean, list de sequências ou enum
name O nome da configuração
initial-value O valor inicial da configuração
enum-value Uma lista de valores de enum separados por barras verticais ( | )
required Indica que a configuração é necessária
hidden Indica se a configuração deve ficar oculta na IU. Especifique um valor de true para ocultar a configuração.

Na versão atual, os atributos required e hidden não são aplicados na interface de usuário do produto Discovery.

Exemplos de configuração de declaração

Para declarar um tipo enum, use um código semelhante ao trecho a seguir:

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

Para declarar um string oculto com um valor inicial, use um código semelhante ao trecho a seguir:

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

Para declarar um long obrigatório, use um código semelhante ao trecho a seguir:

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

Configurações condicionais

As configurações condicionais são representadas pelo elemento <condition />. Uma configuração condicional será exibida somente se a condição for atendida. O elemento tem os atributos a seguir:

Atributos elemento de condição
Nome do atributo Descrição
name O nome da configuração
enable Ative a configuração se o valor do atributo name for igual ao valor do atributo enable
in Ative a configuração se o valor do atributo name estiver incluso em uma lista especificada de valores

Na liberação atual, as configurações condicionais não são aplicadas na interface do usuário do produto Discovery.

Exemplos de configuração condicional

Para ativar uma seção usando uma condição boolean, use um código semelhante ao trecho a seguir:

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

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

Para ativar uma seção usando uma condição enum, use um código semelhante ao trecho a seguir:

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

Seções de modelo

Cada seção inclui um elemento <declare /> para cada uma de suas configurações.

Seções de modelo
expressão XPath Descrição
/function/@name O nome (tipo) do crawler. Não é um nome de exibição para a IU. Não é possível conter espaços.
/function/prototype/proto-section Uma seção da configuração.

Seção: general_settings

A expressão XPath é /function/prototype/proto-section[@section="general_settings"].. Ele inclui configurações comuns para todos os rastreadores, incluindo as seguintes configurações:

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

O crawler customizado é inicializado com as configurações a seguir na seção general_settings. Para obter informações sobre as interfaces, consulte Desenvolvendo o código do conector customizado.

padrões de seção de configurações gerais
Nome Valor
custom_config_class O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration
custom_crawler_class O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawler
custom_security_class O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler
document_level_security_supported Especifica se a segurança de nível de documento está ativada (true) ou desativada (false)

Para especificar as interfaces, use um código semelhante ao trecho a seguir:


  <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 você construiu um conector personalizado com um pacote SDK que foi empacotado com a versão 2.2.1 ou anterior, document_level_security_supported deve ser desativado (configurado como false). A segurança de nível de documentos não é suportada em 2.2.1 e releases anteriores. No entanto, a opção Ativar Segurança de Nível de Documento é exibida em Discovery mesmo quando a segurança de nível de documento não é suportada. Não selecione esta opção quando você criar uma nova coleção.

Para ocultar a opção Ativar Segurança de Nível de Documento a partir de Discovery se o conector personalizado foi construído com um pacote SDK que foi empacotado com a versão 2.2.1 ou anterior, complete as seguintes etapas:

  1. Altere o parâmetro document_level_security_supported no arquivo config/template.xml para ler da seguinte forma:

    <declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/>
    
  2. Reconstrua o pacote do conector e, em seguida, faça o upload novamente.

Seção: datasource_settings

A expressão XPath é /function/prototype/proto-section[@section="datasource_settings"].. Ela inclui configurações específicas para a origem de dados.


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

Seção: crawlspace_settings

A expressão XPath é /function/prototype/proto-section[@section="crawlspace_settings"].. A seção contém apenas um elemento <declare /> para especificar o caminho. O valor do caminho é fornecido pelo código do conector.


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

Propriedades do arquivo

Para obter um exemplo de um arquivo de propriedades, consulte o arquivo de exemplo messages.properties cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip.

Arquivos JAR

Os arquivos JAR para quaisquer interfaces usadas pelo seu código de conector customizado, incluindo o arquivo ama-zing-custom-crawler-{version_numbers}.jar, cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip. O arquivo ama-zing-custom-crawler-{version_numbers}.jar inclui o pacote Java com.ibm.es.ama.custom.crawler, que é descrito em Desenvolvendo código do conector customizado.

Compilando e empacotando o conector customizado

Depois de gravar o código-fonte e os arquivos de configuração para o seu conector customizado, é necessário compilá-lo e empacotá-lo.

Pré-requisitos

Para compilar um conector personalizado, você precisa ter os seguintes itens em seu sistema local. Consulte Exemplo de conector customizado para obter detalhes.

  • Java SDK 1.8 ou superior

  • Gradle

  • O arquivo custom-crawler-docs.zip de uma instância do Discovery instalada

  • O pacote JSch

  • Os arquivos a seguir para o conector customizado de exemplo:

    • Código-fonte Java (SftpCrawler.java e SftpSecurityHandler.java)
    • Arquivo de definição XML (template.xml)
    • Arquivo de propriedades (messages.properties)

    Não altere os nomes ou caminhos dos arquivos de conector personalizado de exemplo. Fazer isso pode resultar em problemas, inclusive falhas de compilação.

Compilando e empacotando o código-fonte

  1. Verifique se você está no diretório de desenvolvimento do conector personalizado em seu sistema local:

    cd {local_directory}
    
  2. Use Gradle para compilar seu código-fonte Java e criar um arquivo compactado que inclua todos os componentes necessários para o conector personalizado:

    gradle build packageCustomCrawler
    

Gradle cria um arquivo em {local_directory}/build/distributions/{built_connector_zip_file}, onde o nome do {built_connector_zip_file} é baseado no valor rootProject.name de settings.gradle. Por exemplo, se a linha for a seguinte, Gradle gera um arquivo chamado {local_directory}/build/distributions/my-sftp-connector.zip.

rootProject.name = 'my-sftp-connector'

Próxima Etapa

Continue com Instalando e desinstalando um conector customizado para instalar o conector customizado em sua instância do Discovery.