Cómo crear un oyente a un método en java

Estoy teniendo un mal momento para implementar un oyente de un método.

En mi trabajo actual, tengo que solicitar un método cada 5 segundos para verificar si hay nueva información, así que quiero implementar un método para notificarme cada vez que una nueva información descarte el método de solicitud cada 5 segundos.

(Ya leí sobre el patrón de observador, pero no tuve éxito en la implementación).

atentamente

Más información: Por el momento estoy reemplazando este método de la biblioteca XMPP de smack para almacenar nuevos mensajes en la cola de mensajes.

public void processMessage(Chat chat, Message message) {
    if (message.getType() == Message.Type.chat) {
        req = message.getBody().toString();
        String[] temp = { chat.getParticipant().toString(), req };
        System.out.println(temp[0]+"says:"+temp[1]);
        synchronized (lock) {
            msgs.add(temp);
        }
    }
} 

y que tengo este método ejecutado cada 0.5 segundos para verificar nuevos mensajes:

public String[] getMessage() {
    synchronized (lock) {
        String[] data;
        data=msgs.poll();
        return data;
    }
}

Estoy tratando de establecer un sistema de notificación que me avisa cada vez que se ejecuta el processMessage.

Respuestas a la pregunta(1)

Su respuesta a la pregunta