@InvokeOnHeader(Web3jConstants.SHH_NEW_FILTER)
    void shhNewFilter(Message message) throws IOException {
        String data = message.getHeader(Web3jConstants.DATA, configuration::getData, String.class);
        List<String> topics = message.getHeader(Web3jConstants.TOPICS, configuration::getTopics, List.class);
        org.web3j.protocol.core.methods.request.ShhFilter shhFilter = Web3jEndpoint.buildShhFilter(data, topics);

        Request<?, ShhNewFilter> request = web3j.shhNewFilter(shhFilter);
        setRequestId(message, request);
        ShhNewFilter response = request.send();
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getFilterId());
        }
    }
@Test
    public void shhNewFilterTest() throws Exception {
        ShhNewFilter response = Mockito.mock(ShhNewFilter.class);
        Mockito.when(mockWeb3j.shhNewFilter(any())).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getFilterId()).thenReturn(BigInteger.ONE);

        Exchange exchange = createExchangeWithBodyAndHeader(null, OPERATION, Web3jConstants.SHH_NEW_FILTER);
        template.send(exchange);
        BigInteger body = exchange.getIn().getBody(BigInteger.class);
        assertEquals(BigInteger.ONE, body);
    }