@InvokeOnHeader(CONTROL_ACTION_LIST)
    public void performList(final Exchange exchange, AsyncCallback callback) {
        Message message = exchange.getMessage();
        Map<String, Object> headers = message.getHeaders();
        String subscribeChannel = (String) headers.getOrDefault(CONTROL_SUBSCRIBE_CHANNEL, configuration.getSubscribeChannel());
        try {
            String filters = dynamicRouterControlService.getSubscriptionsForChannel(subscribeChannel);
            message.setBody(filters, String.class);
        } catch (Exception e) {
            exchange.setException(e);
        } finally {
            callback.done(false);
        }
    }
@Test
    void testPerformListAction() {
        String subscribeChannel = "testChannel";
        String filterString = "PrioritizedFilterProcessor [id: test, priority: 1, predicate: test, endpoint: test]";
        Map<String, Object> headers = Map.of(
                CONTROL_ACTION_HEADER, CONTROL_ACTION_LIST,
                CONTROL_SUBSCRIBE_CHANNEL, subscribeChannel);
        when(exchange.getMessage()).thenReturn(message);
        when(message.getHeaders()).thenReturn(headers);
        when(controlService.getSubscriptionsForChannel(subscribeChannel)).thenReturn("[" + filterString + "]");
        Mockito.doNothing().when(callback).done(false);
        producer.performList(exchange, callback);
        Mockito.verify(message, Mockito.times(1)).setBody("[" + filterString + "]", String.class);
    }