/********************************************************************** * $Source: /cvsroot/jameica/jameica.webadmin/src/de/willuhn/jameica/webadmin/messaging/StatusBarMessageConsumer.java,v $ * $Revision: 1.1 $ * $Date: 2010/11/02 00:56:31 $ * $Author: willuhn $ * $Locker: $ * $State: Exp $ * * Copyright (c) by willuhn software & services * All rights reserved * **********************************************************************/ package de.willuhn.jameica.webadmin.messaging; import de.willuhn.jameica.messaging.Message; import de.willuhn.jameica.messaging.MessageConsumer; import de.willuhn.jameica.messaging.StatusBarMessage; import de.willuhn.jameica.system.Application; /** * Speichert die letzte empfangene Statusbar-Message. */ public class StatusBarMessageConsumer implements MessageConsumer { private static StatusBarMessage last = null; /** * @see de.willuhn.jameica.messaging.MessageConsumer#autoRegister() */ public boolean autoRegister() { return true; } /** * @see de.willuhn.jameica.messaging.MessageConsumer#getExpectedMessageTypes() */ public Class[] getExpectedMessageTypes() { return new Class[]{StatusBarMessage.class}; } /** * @see de.willuhn.jameica.messaging.MessageConsumer#handleMessage(de.willuhn.jameica.messaging.Message) */ public void handleMessage(Message message) throws Exception { last = (StatusBarMessage) message; } /** * Liefert die letzte Nachricht. * @return die letzte Nachricht oder null. */ public static StatusBarMessage getLastMessage() { // Wir warten ggf. noch einen kurzen Moment, bis alle Nachrichten zugestellt sind. int maxRetries = 0; while (Application.getMessagingFactory().getQueueSize() > 0 && maxRetries++ < 4) { try { Thread.sleep(100l); } catch (InterruptedException e) { break; } } return last; } } /********************************************************************* * $Log: StatusBarMessageConsumer.java,v $ * Revision 1.1 2010/11/02 00:56:31 willuhn * @N Umstellung des Webfrontends auf Velocity/Webtools * **********************************************************************/