Utilice la API Java™ de Message Broker al desarrollar aplicaciones de flujos de mensajes para actualizar tablas de filtros en nodos Route.
Puede añadir y actualizar filas en la tabla de filtros de un nodo
Route.
- Añadir una fila nueva
- En el ejemplo siguiente se muestra cómo añadir una fila nueva a una tabla de filtros utilizando el método createRow():
- El flujo de mensajes y el nodo Route se cargan en memoria.
- La tabla de filtros del nodo Route se carga en la memoria utilizando el método getFilterTable() del objeto RouteNode.
- Se crea una fila de la tabla de filtros utilizando el método createRow().
- El valor de la propiedad filter pattern en esta nueva fila se establece en value="123" utilizando el método setFilterPattern().
- La propiedad routing output terminal se establece en NEWOUT utilizando el método setRoutingOutputTerminal().
- A continuación, la fila nueva se añade a la tabla de filtros mediante el método addRow().
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
RouteNode routeNode = (RouteNode)mf1.getNodeByName("Mi nodo Route");
RouteNode.FilterTable filterTable = (RouteNode.FilterTable)routeNode.getFilterTable();
RouteNode.FilterTableRow newRow = filterTable.createRow();
newRow.setFilterPattern("value=\"123\"");
newRow.setRoutingOutputTerminal("NEWOUT");
filterTable.addRow(newRow);
- Actualizar una fila
- En el ejemplo siguiente se muestra cómo actualizar filas en la tabla de filtros de un nodo Route.
- El flujo de mensajes, el nodo Route y la tabla de filtros del nodo Route se cargan en memoria.
- Las filas de la tabla de filtros se cargan en memoria mediante el método getRows().
- La propiedad filter pattern de la primera fila de la tabla de filtros se establece en value2="456".
- La propiedad routing output terminal de la primera fila de la tabla de filtros se establece
en NEWOUT2.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
RouteNode routeNode = (RouteNode)mf1.getNodeByName("Mi nodo Route");
RouteNode.FilterTable filterTable = (RouteNode.FilterTable)routeNode.getFilterTable();
Vector<RouteNode.FilterTableRow> filterTableRows = filterTable.getRows();
filterTableRows.get(0).setFilterPattern("value2=\"456\"");
filterTableRows.get(0).setRoutingOutputTerminal("NEWOUT2");