Search in sources :

Example 1 with ACSLogRetrieval

use of com.cosylab.logging.engine.ACS.ACSLogRetrieval in project ACS by ACS-Community.

the class EngineAudienceTest method setUp.

/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
@Override
protected void setUp() throws Exception {
    super.setUp();
    numOfReceivedLogs = 0;
    numOfReceivedXMLLogs = 0;
    dispatcher = new ACSListenersDispatcher();
    assertNotNull(dispatcher);
    logRetieval = new ACSLogRetrieval(dispatcher);
    assertNotNull(logRetieval);
    logRetieval.setFilters(null);
    logRetieval.start();
    dispatcher.addLogListener(this);
    dispatcher.addRawLogListener(this);
}
Also used : ACSLogRetrieval(com.cosylab.logging.engine.ACS.ACSLogRetrieval) ACSListenersDispatcher(com.cosylab.logging.engine.ACS.ACSListenersDispatcher)

Example 2 with ACSLogRetrieval

use of com.cosylab.logging.engine.ACS.ACSLogRetrieval in project ACS by ACS-Community.

the class LogDispatcherTest method testXMLDispatch.

/**
	 * Test the dispatching of XML logs
	 * 
	 * @throws Exception
	 */
public void testXMLDispatch() throws Exception {
    // Add the name of the test in the additional data
    for (ILogEntry log : logs) {
        log.addData("TestType", "XML");
    }
    ACSListenersDispatcher listenerDispatcher = new ACSListenersDispatcher();
    assertNotNull("Null listener dispatcher!", listenerDispatcher);
    ACSLogRetrieval logDispatcher = new ACSLogRetrieval(listenerDispatcher);
    assertNotNull("Null log dispatcher!", logDispatcher);
    logDispatcher.start();
    listenerDispatcher.addLogListener(logRecv);
    listenerDispatcher.addRawLogListener(logRecv);
    stopWatch.reset();
    for (ILogEntry log : logs) {
        logDispatcher.addLog(log.toXMLString());
    }
    waitProcessingComplete(logDispatcher, 300);
    long xmlTime = stopWatch.getLapTimeMillis() / 1000;
    //String str ="Time to publish "+LOGS_NUMBER+" XML logs: "+xmlTime + " seconds.\n";
    //System.out.print(str);
    assertEquals("XML case: logs sent and logs received differ", LOGS_NUMBER, logsReceived);
    assertEquals("XML case: logs sent and raw logs received differ", LOGS_NUMBER, rawLogsReceived);
    logDispatcher.close(true);
}
Also used : ILogEntry(com.cosylab.logging.engine.log.ILogEntry) ACSLogRetrieval(com.cosylab.logging.engine.ACS.ACSLogRetrieval) ACSListenersDispatcher(com.cosylab.logging.engine.ACS.ACSListenersDispatcher)

Example 3 with ACSLogRetrieval

use of com.cosylab.logging.engine.ACS.ACSLogRetrieval in project ACS by ACS-Community.

the class LogDispatcherTest method testGetSetDiscardLevel.

/**
	 * Test setting and getting of the discard level.
	 * 
	 * @throws Exception
	 */
public void testGetSetDiscardLevel() throws Exception {
    ACSListenersDispatcher listenerDispatcher = new ACSListenersDispatcher();
    assertNotNull("Null listener dispatcher!", listenerDispatcher);
    ACSLogRetrieval logDispatcher = new ACSLogRetrieval(listenerDispatcher);
    assertNotNull("Null log dispatcher!", logDispatcher);
    logDispatcher.start();
    logDispatcher.setDiscardLevel(null);
    assertNull(logDispatcher.getDiscardLevel());
    for (LogTypeHelper logType : LogTypeHelper.values()) {
        logDispatcher.setDiscardLevel(logType);
        assertEquals(logType, logDispatcher.getDiscardLevel());
    }
    logDispatcher.close(true);
}
Also used : ACSLogRetrieval(com.cosylab.logging.engine.ACS.ACSLogRetrieval) LogTypeHelper(com.cosylab.logging.engine.log.LogTypeHelper) ACSListenersDispatcher(com.cosylab.logging.engine.ACS.ACSListenersDispatcher)

Example 4 with ACSLogRetrieval

use of com.cosylab.logging.engine.ACS.ACSLogRetrieval in project ACS by ACS-Community.

the class LogDispatcherTest method testDynamicDiscardLevel.

/**
	 * Test the changing of the discard level by simulating
	 * a low memory situation 
	 * @throws Exception
	 */
public void testDynamicDiscardLevel() throws Exception {
    Checker checker = new Checker();
    assertNotNull(checker);
    ACSListenersDispatcher listenerDispatcher = new ACSListenersDispatcher();
    assertNotNull("Null listener dispatcher!", listenerDispatcher);
    ACSLogRetrieval logDispatcher = new ACSLogRetrieval(listenerDispatcher, false, null, checker);
    assertNotNull("Null log dispatcher!", logDispatcher);
    logDispatcher.start();
    // Check increasing of the discard level
    logDispatcher.setDiscardLevel(null);
    checker.freemMem = Long.MAX_VALUE;
    // Changes of the discard level should happens every 2 seconds
    logDispatcher.enableDynamicDiscarding(8192, 1024, 2);
    // the discard level does not change
    try {
        Thread.sleep(5);
    } catch (InterruptedException ie) {
    }
    assertNull(logDispatcher.getActualDiscardLevel());
    assertNull(logDispatcher.getDiscardLevel());
    // The index of the next log type
    int type = 0;
    // Time to wait for the next change before giving up
    int timeout = 10;
    // start dynamic changes of discard level
    checker.freemMem = 4096;
    while (logDispatcher.getActualDiscardLevel() != LogTypeHelper.values()[LogTypeHelper.values().length - 1]) {
        long to = System.currentTimeMillis() + 1000 * timeout;
        boolean found = false;
        while (!found && System.currentTimeMillis() < to) {
            found = logDispatcher.getActualDiscardLevel() == LogTypeHelper.values()[type];
            Thread.yield();
        }
        assertTrue("timeout waiting for level " + LogTypeHelper.values()[type], found);
        // Original discard level does not change
        assertNull(logDispatcher.getDiscardLevel());
        type++;
    }
    // Now the level is the topmost and it should not change...
    try {
        Thread.sleep(10000);
    } catch (InterruptedException ie) {
    }
    assertEquals(LogTypeHelper.values()[LogTypeHelper.values().length - 1], logDispatcher.getActualDiscardLevel());
    assertNull(logDispatcher.getDiscardLevel());
    // Now check the decreasing
    // First set the free memory to a value between the threshold and the damping
    checker.freemMem = 8192 + 512;
    // The level does not change
    try {
        Thread.sleep(10000);
    } catch (InterruptedException ie) {
    }
    assertEquals(LogTypeHelper.values()[LogTypeHelper.values().length - 1], logDispatcher.getActualDiscardLevel());
    assertNull(logDispatcher.getDiscardLevel());
    // Increase the free memory ===> the level start decreasing
    type = LogTypeHelper.values()[LogTypeHelper.values().length - 1].ordinal();
    checker.freemMem = 2 * 8192;
    while (logDispatcher.getActualDiscardLevel() != null) {
        long to = System.currentTimeMillis() + 1000 * timeout;
        boolean found = false;
        while (!found && System.currentTimeMillis() < to) {
            if (type >= 0) {
                found = logDispatcher.getActualDiscardLevel() == LogTypeHelper.values()[type];
            } else {
                found = logDispatcher.getActualDiscardLevel() == null;
            }
            Thread.yield();
        }
        if (type >= 0) {
            assertTrue("timeout waiting for level " + LogTypeHelper.values()[type], found);
        }
        // Original discard level does not change
        assertNull(logDispatcher.getDiscardLevel());
        type--;
    }
    assertNull(logDispatcher.getActualDiscardLevel());
    logDispatcher.close(true);
}
Also used : IResourceChecker(alma.acs.logging.engine.utils.IResourceChecker) ACSLogRetrieval(com.cosylab.logging.engine.ACS.ACSLogRetrieval) ACSListenersDispatcher(com.cosylab.logging.engine.ACS.ACSListenersDispatcher)

Aggregations

ACSListenersDispatcher (com.cosylab.logging.engine.ACS.ACSListenersDispatcher)4 ACSLogRetrieval (com.cosylab.logging.engine.ACS.ACSLogRetrieval)4 IResourceChecker (alma.acs.logging.engine.utils.IResourceChecker)1 ILogEntry (com.cosylab.logging.engine.log.ILogEntry)1 LogTypeHelper (com.cosylab.logging.engine.log.LogTypeHelper)1