Use o API Java™ do Message Broker ao desenvolver aplicativos de fluxo de mensagens para incluir nós definidos pelo usuário e conectar nós definidos pelo usuário a outros nós.
O código obrigatório para incluir e conectar nó definido pelo usuário é diferente do código obrigatório para nós integrados e nós de subfluxo.
Ao escrever código
Java para nós definidos pelo usuário, você deve
estar ciente das seguintes informações:
- Nós definidos pelo usuário são suportados pelas instâncias da classe
GenericNode.
Para incluir nós definidos pelo usuário em fluxos de
mensagens, crie instâncias de GenericNode e inclua-as na instância de
fluxo de mensagens.
- Para recuperar instâncias existentes de um no definido pelo usuário, chame
getNodeByName() e envie o objeto retornado para um objeto
GenericNode.
- Os terminais definidos nos nós definidos pelo usuário não estão disponíveis
automaticamente na API. Se você criar uma instância de uma classe GenericNode, ela não terá terminais de entrada ou saída listados. Os
métodos getInputTerminals() e getOutputTerminals()
retornam listas vazias.
- Para obter um terminal de entrada em um GenericNode,
chame getInputTerminal() e passe o nome do terminal que
existe no nó genérico. Esse método retorna o terminal de entrada e o torna
disponível no objeto de fluxo de mensagens que contém o seu nó genérico. Depois de ter usado
getInputTerminal() com um nome de terminal conhecido, esse terminal de
entrada será retornado se getInputTerminals() for usado.
- Para obter um terminal de saída para um GenericNode,
chame getOutputTerminal() e passe o nome do terminal que
existe no nó genérico. Esse método retorna o terminal de saída e o torna
disponível no objeto do fluxo de mensagens que contém o seu nó genérico. Depois de ter usado
getOutputTerminal() com um nome de terminal conhecido, esse terminal
de saída será retornado se getOutputTerminals() for usado.
O seguinte exemplo mostra como é possível incluir um nó definido pelo usuário em um fluxo de
mensagens e conectá-lo a um nó integrado:
- Um nó
MQInput é criado e incluído no fluxo de
mensagens.
- Um nó definido pelo usuário é criado usando a classe GenericNode e é incluído no objeto do fluxo de mensagens.
- O terminal de
saída estático do MQInput é designado à
variável outputTerminal.
- O terminal de entrada do nó definido pelo
usuário é designado à variável inputTerminal usando o método
getInputTerminal() com o nome de terminal conhecido
In.
- Os nós são conectados usando o método connect().
- A seção final do código mostra que o nó de entrada agora
está disponível para uso no fluxo de mensagens, usando o método
getInputTerminals() da instância do nó definido pelo usuário.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("IN");
mf1.addNode(mqinNode);
GenericNode myNode = new GenericNode("MyUserDefinedNode");
myNode.setNodeName("MyNode");
mf1.addNode(myNode);
OutputTerminal outputTerminal = mqinNode.OUTPUT_TERMINAL_OUT;
InputTerminal inputTerminal = myNode.getInputTerminal("In");
mf1.connect(outputTerminal, inputTerminal);
InputTerminal[] inputTerminals = myNode.getInputTerminals();
System.out.println("Input terminals on my node:");
for (int i = 0; i < inputTerminals.length; i++) {
InputTerminal inputTerminal = inputTerminals[i];
System.out.println(inputTerminal.getName());
}