@Test public void shouldSetAndUnsetContext() { final TaskExecutionContext context = mock(TaskExecutionContext.class); JobConsoleLoggerInternal.setContext(context); assertThat(ReflectionUtil.getStaticField(JobConsoleLogger.class, "context"), is(context)); JobConsoleLoggerInternal.unsetContext(); assertThat(ReflectionUtil.getStaticField(JobConsoleLogger.class, "context"), is(nullValue())); } }
@After public void teardown() { JobConsoleLoggerInternal.unsetContext(); }
protected ExecutionResult executeTask(Task task, DefaultGoPublisher publisher, EnvironmentVariableContext environmentVariableContext, String consoleLogCharset) { final TaskExecutionContext taskExecutionContext = buildTaskContext(publisher, environmentVariableContext, consoleLogCharset); JobConsoleLoggerInternal.setContext(taskExecutionContext); TaskConfig config = buildTaskConfig(task.config()); return task.executor().execute(config, taskExecutionContext); }
@Override public void build(final DefaultGoPublisher publisher, final EnvironmentVariableContext environmentVariableContext, TaskExtension taskExtension, ArtifactExtension artifactExtension, PluginRequestProcessorRegistry pluginRequestProcessorRegistry, String consoleLogCharset) throws CruiseControlException { ExecutionResult executionResult = null; try { executionResult = taskExtension.execute(pluginId, (task, pluginDescriptor) -> executeTask(task, publisher, environmentVariableContext, consoleLogCharset)); } catch (Exception e) { logException(publisher, e); } finally { JobConsoleLoggerInternal.unsetContext(); } if (executionResult == null) { logError(publisher, "ExecutionResult cannot be null. Please return a success or a failure response."); } if (!executionResult.isSuccessful()) { logError(publisher, executionResult.getMessagesForDisplay()); } }