Antes de começar
O WebSphere Message Broker fornece a origem para dois nós de amostra definidos pelo usuário chamados SwitchNode e TransformNode. Você pode utilizar esses nós em seus estados atuais ou poderá modificá-los.
Não desenvolva nós Java no z/OS que você pretenda implementar em um intermediário em uma plataforma distribuída. Isso porque o nível de Java no z/OS pode não produzir código compatível com o nível de Java na plataforma distribuída.
O painel Definições Java é exibido.
Qualquer classe que implemente a MbInputNodeInterface e esteja contida no classpath do intermediário (ou no caminho da LIL) é registrada com o intermediário como um nó de entrada. Quando se implementa a MbInputNodeInterface, é preciso implementar também um método run para essa classe. O método run representa o início do fluxo de mensagens, contém os dados que formulam a mensagem e a propaga pelo fluxo. O intermediário chama o método run quando encadeamentos se tornam disponíveis de acordo com o modelo de encadeamento especificado.
Por exemplo, para declarar a classe de nó de entrada:
package com.ibm.jplugins; import com.ibm.broker.plugin.*; public class BasicInputNode extends MbInputNode implements MbInputNodeInterface { ...
Quando o nó é instanciado, o construtor da classe de nó do usuário é chamado. É aqui que são criados os terminais do nó e inicializados quaisquer valores padrão para os atributos.
Um nó de entrada tem um número de terminais de saída associados a ele, mas em geral não tem nenhum terminal de entrada. Utilize o método createOutputTerminal para incluir terminais de saída a um nó quando o nó é instanciado. Por exemplo, para criar um nó com três terminais de saída:
public BasicInputNode() throws MbException { createOutputTerminal ("out"); createOutputTerminal ("failure"); createOutputTerminal ("catch"); setAttribute ("firstParserClassName","myParser"); attributeVariable = new String ("none"); }
É necessário declarar o nome do nó como ele será identificado pelo workbench. Todos os nomes de nós devem terminar com "Node". O nome é declarado utilizando o seguinte método:
public static String getNodeName() { return "BasicInputNode"; }
package com.ibm.pluginsamples; public class BasicInputNode extends MbInputNode implements MbInputNodeInterface { ...
Os atributos do nó são declarados da mesma forma que propriedades de Java Bean. Você é responsável por escrever métodos getter e setter para os atributos e a estrutura da API infere os nomes dos atributos utilizando as regras de introspecção do Java Bean. Por exemplo, se você declarar os dois métodos seguintes:
private String attributeVariable; public String getFirstAttribute() { return attributeVariable; } publc void setFirstAttribute(String value) { attributeVariable = value; }
O intermediário inferirá que esse nó tem um atributo chamado firstAttribute. Esse nome é derivado dos nomes dos métodos get ou set, não de nenhum nome de variável de membro de classe interna. Os atributos somente podem ser expostos como cadeias, portanto é preciso converter qualquer tipo numérico para e de cadeias nos métodos get ou set. Por exemplo, o método a seguir define um atributo chamado timeInSeconds:
int seconds; public String getTimeInSeconds() { return Integer.toString(seconds); } public void setTimeInSeconds(String value) { seconds = Integer.parseInt(value); }
Como já foi descrito, o método run é chamado pelo intermediário para criar a mensagem de entrada. Esse método deve fornecer toda a função de processamento para o nó de entrada.
Uma implementação de nó de entrada em geral determina que analisador de mensagem analisa inicialmente uma mensagem de entrada. Por exemplo, o nó MQInput primitivo dita que um analisador de MQMD é necessário para analisar o cabeçalho MQMD. Um nó de entrada definido pelo usuário pode selecionar um analisador de cabeçalho ou de mensagem apropriado, e o modo no qual a análise é controlada, pela utilização dos seguintes atributos que são incluídos como padrão e que podem ser substituídos:
O método onDelete é implementado da seguinte maneira:
public void onDelete() { // executar limpeza do nó se necessário }