Use o API Java™ do Message Broker para modificar uma instância padrão para incluir nós definidos pelo usuário e para 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 do API Java do Message Broker . 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.
MessageFlow mf1 = patternInstanceManager.getMessageFlow("MyFlowProject", "main.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());
}