package com.owera.xaps.tr069.background; import java.util.List; import com.owera.common.log.Logger; import com.owera.common.scheduler.TaskDefaultImpl; import com.owera.xaps.dbi.DBI; import com.owera.xaps.dbi.Inbox; import com.owera.xaps.dbi.Message; import com.owera.xaps.dbi.SyslogConstants; import com.owera.xaps.tr069.test.system2.TestUnitCache; public class MessageListenerTask extends TaskDefaultImpl { private Logger logger = new Logger(); private Inbox tr069ServerListenerInbox = new Inbox(); public MessageListenerTask(String taskName, DBI dbi) { super(taskName); tr069ServerListenerInbox.addFilter(new Message(null, null, SyslogConstants.FACILITY_TR069, null)); dbi.registerInbox("tr069ServerListener", tr069ServerListenerInbox); } @Override public void runImpl() throws Throwable { List<Message> messages = tr069ServerListenerInbox.getUnreadMessages(); for (Message message : messages) { if (message.getMessageType().equals(Message.MTYPE_PUB_TR069_TEST_END) && message.getObjectType().equals(Message.OTYPE_UNIT)) { logger.debug("Message signals end to Test, remove TestUnit from TestUnitCahe (unitId: " + message.getObjectId() + ")"); TestUnitCache.remove(message.getObjectId()); message.setProcessed(true); } } tr069ServerListenerInbox.deleteReadMessage(); } @Override public Logger getLogger() { return logger; } }