Wie kann ich eine Liste mit nachrichtengesteuerten Adaptern zusammenstellen, ohne sie einzeln aufzuschreiben?

Hey, also ich muss mithören wie ein Dutzend Warteschlangen und mehr oder weniger alle eingehenden Nachrichten durch den gleichen Verarbeitungsfluss setzen. Ich habe nachrichtengesteuerte Kanaladapter an jede dieser Warteschlangen angeschlossen:

<jms:message-driven-channel-adapter id="101InstructionQueue1In" 
                                  channel="xmedInitiation1PrimaryChannel"                                    
                                  auto-startup="true"
                                  connection-factory="${XMED.1.PRIMARY}Factory"
                                  destination-name="${XMED.1.INITIATION}"/>

<jms:message-driven-channel-adapter id="101InstructionQueue2In" 
                                  channel="xmedInitiation2PrimaryChannel"                                    
                                  auto-startup="true"
                                  connection-factory="${XMED.2.PRIMARY}Factory"
                                  destination-name="${XMED.2.INITIATION}"/>


<jms:message-driven-channel-adapter id="201InstructionQueue1In" 
                                  channel="xmedInitiation1SecondaryChannel" 
                                  connection-factory="${XMED.1.SECONDARY}Factory"
                                  destination-name="${XMED.1.INITIATION}" 
                                  auto-startup="true"/>                                   

<jms:message-driven-channel-adapter id="201InstructionQueue2In" 
                                  channel="xmedInitiation2SecondaryChannel" 
                                  connection-factory="${XMED.2.SECONDARY}Factory"
                                  destination-name="${XMED.2.INITIATION}" 
                                  auto-startup="true"/>

... und so weiter

Nachdem die Nachricht eingegangen ist, leite ich sie alle auf den gleichen Kanal. Aber ich muss immer noch wissen, woher die Nachricht stammt. Bevor ich sie wirklich weiterleite, verwende ich einen Header-Enricher, um den Warteschlangennamen zur Nachricht hinzuzufügen.

<channel id="xmedInitiation1PrimaryChannel"  />

<header-enricher input-channel="xmedInitiation1PrimaryChannel" output-channel="initiationPreprocessingChannel" >
    <header name="INITIATOR" value="PRIMARY" />
    <header name="INITIATOR_NAME" value="${XMED.1.INITIATION}" />
</header-enricher>

<channel id="xmedInitiation1SecondaryChannel"  />

<header-enricher input-channel="xmedInitiation1SecondaryChannel" output-channel="initiationPreprocessingChannel" >
    <header name="INITIATOR" value="SECONDARY" />
    <header name="INITIATOR_NAME" value="${XMED.1.INITIATION}" />
</header-enricher>

Gibt es eine Möglichkeit, eine Liste mit Warteschlangennamen zu durchlaufen und diese Adapter sofort zu erstellen? Vielleicht mit der Java-Konfiguration? Danke im Voraus

Antworten auf die Frage(0)

Ihre Antwort auf die Frage