I'm not familiar with MQTT, but I would guess that you should have a listener per queue that you're listening on.
Looking at the docs, I'm seeing that you can only listen on topics ... not great, but let's work with that.
If you're working with Java8, you can setup a Hashmap like this:
HashMap<String, Callable<String>> map = new HashMap<>();
Now you should be able to put methods for different topics in there as you need them.
map.put("topic1", () -> {return doSomething1();}
map.put("topic2", () -> {return doSomething2();}
Inside your messageArrived you would simply execute whatever is returned from map.get(topic)
Your map can be sitting somewhere as a static variable, each module in the application can then map.put their own topics, so if you remove the module, those topics simply won't be in the map anymore and new modules can be added without modifying your listener.
If you're not using Java8 or Java9, you can get creative with Reflection.