use of com.axway.ats.log.autodb.exceptions.LoggingException in project ats-framework by Axway.
the class DbEventRequestProcessor method insertMessage.
private void insertMessage(LogEventRequest eventRequest, boolean escapeHtml, boolean isRunMessage) throws LoggingException {
LoggingEvent event = eventRequest.getEvent();
// appender may try to log before the client has a chance of opening a test case.
if (eventProcessorState.getLifeCycleState() == LifeCycleState.RUN_STARTED || isRunMessage) {
if (!ActiveDbAppender.isBeforeAndAfterMessagesLoggingSupported) {
return;
}
int runId = eventProcessorState.getRunId();
if (isRunMessage && eventProcessorState.getTestCaseState().getRunId() != 0) {
runId = eventProcessorState.getTestCaseState().getRunId();
}
Level level = event.getLevel();
try {
dbAccess.insertRunMessage(getLoggingMesage(event), convertMsgLevel(level), escapeHtml, machineName, eventRequest.getThreadName(), eventRequest.getTimestamp(), runId, true);
} catch (LoggingException e) {
handleDeletedRun(e, runId);
}
} else if (eventProcessorState.getLifeCycleState() == LifeCycleState.TEST_CASE_STARTED) {
final int testcaseId = eventProcessorState.getTestCaseId();
if (!deletedTestcases.contains(testcaseId)) {
Level level = event.getLevel();
try {
dbAccess.insertMessage(getLoggingMesage(event), convertMsgLevel(level), escapeHtml, machineName, eventRequest.getThreadName(), eventRequest.getTimestamp(), testcaseId, true);
} catch (LoggingException e) {
handleDeletedTestcase(e, testcaseId);
}
}
} else if (eventProcessorState.getLifeCycleState() == LifeCycleState.SUITE_STARTED) {
if (!ActiveDbAppender.isBeforeAndAfterMessagesLoggingSupported) {
return;
}
final int suiteId = eventProcessorState.getSuiteId();
Level level = event.getLevel();
try {
dbAccess.insertSuiteMessage(getLoggingMesage(event), convertMsgLevel(level), escapeHtml, machineName, eventRequest.getThreadName(), eventRequest.getTimestamp(), suiteId, true);
} catch (LoggingException e) {
handleDeletedSuite(e, suiteId);
}
}
}
use of com.axway.ats.log.autodb.exceptions.LoggingException in project ats-framework by Axway.
the class DbEventRequestProcessor method processEventRequest.
public void processEventRequest(LogEventRequest eventRequest) throws LoggingException {
if (testcaseToDelete > 0) {
/* Pause for a moment processing the current event.
* This is (delete testcase)event is not coming from the FIFO queue, as we want to process it as
* soon as possible, so any events related to this testcase are directly skipped.
*/
deleteRequestedTestcase();
// now resume the processing of the current event that came from the queue
}
if (isBatchMode && eventRequest == null) {
// timeout waiting for next event - flush the current cache
dbAccess.flushCache();
return;
}
LoggingEvent event = eventRequest.getEvent();
if (event instanceof AbstractLoggingEvent) {
AbstractLoggingEvent dbAppenderEvent = (AbstractLoggingEvent) event;
//first check if we can process the event at all
dbAppenderEvent.checkIfCanBeProcessed(eventProcessorState);
if (isBatchMode && !(event instanceof CacheableEvent) && eventProcessorState.getLifeCycleState() == LifeCycleState.TEST_CASE_STARTED) {
// this event can not be cached - flush the current cache
dbAccess.flushCache();
}
switch(dbAppenderEvent.getEventType()) {
case START_RUN:
startRun((StartRunEvent) event, eventRequest.getTimestamp());
break;
case END_RUN:
endRun(eventRequest.getTimestamp());
break;
case UPDATE_RUN:
updateRun((UpdateRunEvent) event);
break;
case ADD_RUN_METAINFO:
addRunMetainfo((AddRunMetainfoEvent) event);
break;
case START_SUITE:
startSuite((StartSuiteEvent) event, eventRequest.getTimestamp());
break;
case END_SUITE:
endSuite(eventRequest.getTimestamp());
break;
case CLEAR_SCENARIO_METAINFO:
clearScenarioMetainfo();
break;
case ADD_SCENARIO_METAINFO:
addScenarioMetainfo((AddScenarioMetainfoEvent) event);
break;
case START_TEST_CASE:
startTestCase((StartTestCaseEvent) event, eventRequest.getTimestamp());
break;
case END_TEST_CASE:
endTestCase((EndTestCaseEvent) event, eventRequest.getTimestamp());
break;
case JOIN_TEST_CASE:
joinTestCase((JoinTestCaseEvent) event);
break;
case LEAVE_TEST_CASE:
leaveTestCase();
break;
case REMEMBER_LOADQUEUE_STATE:
rememberLoadQueueState((RememberLoadQueueStateEvent) event);
break;
case CLEANUP_LOADQUEUE_STATE:
cleanupLoadQueueState((CleanupLoadQueueStateEvent) event);
break;
case END_LOADQUEUE:
endLoadQueue((EndLoadQueueEvent) event, eventRequest.getTimestamp());
break;
case REGISTER_THREAD_WITH_LOADQUEUE:
registerThreadWithLoadQueue((RegisterThreadWithLoadQueueEvent) event);
break;
case START_CHECKPOINT:
startCheckpoint((StartCheckpointEvent) event);
break;
case END_CHECKPOINT:
endCheckpoint((EndCheckpointEvent) event);
break;
case INSERT_CHECKPOINT:
insertCheckpoint((InsertCheckpointEvent) event);
break;
case INSERT_SYSTEM_STAT:
insertSystemStatistics((InsertSystemStatisticEvent) event);
break;
case INSERT_MESSAGE:
InsertMessageEvent insertMessageEvent = (InsertMessageEvent) event;
insertMessage(eventRequest, insertMessageEvent.isEscapeHtml(), insertMessageEvent.isRunMessage());
break;
default:
throw new LoggingException("Unsupported logging event of type: " + dbAppenderEvent.getEventType());
}
} else {
insertMessage(eventRequest, false, false);
}
}
Aggregations