@Override public void componentSuccess(final AnalysisJob job, final ComponentJob componentJob, final AnalyzerResult result) { for (final AnalysisListener delegate : _delegates) { try { delegate.componentSuccess(job, componentJob, result); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void errorInComponent(final AnalysisJob job, final ComponentJob componentJob, final InputRow row, final Throwable throwable) { for (final AnalysisListener delegate : _delegates) { try { delegate.errorInComponent(job, componentJob, row, throwable); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void errorUnknown(final AnalysisJob job, final Throwable throwable) { for (final AnalysisListener delegate : _delegates) { try { delegate.errorUnknown(job, throwable); } catch (final Exception e) { logFailure(delegate, e); } } } }
_analysisListener.componentSuccess(_masterJob, analyzerJob, firstResult); return; _analysisListener.componentSuccess(_masterJob, analyzerJob, reducedResult); reductionErrors.add(reductionError); _analysisListener.errorInComponent(_masterJob, analyzerJob, null, e); } finally { if (reducer != null) {
new JobCompletionTaskListener(analysisJobMetrics, _analysisListener, 1); _analysisListener.jobBegin(_job, analysisJobMetrics); _analysisListener.errorUnknown(_job, e); throw e;
@Override public void rowProcessingBegin(final AnalysisJob job, final RowProcessingMetrics metrics) { for (final AnalysisListener delegate : _delegates) { try { delegate.rowProcessingBegin(job, metrics); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void rowProcessingProgress(final AnalysisJob job, final RowProcessingMetrics metrics, final InputRow row, final int currentRow) { for (final AnalysisListener delegate : _delegates) { try { delegate.rowProcessingProgress(job, metrics, row, currentRow); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void componentBegin(final AnalysisJob job, final ComponentJob componentJob, final ComponentMetrics metrics) { for (final AnalysisListener delegate : _delegates) { try { delegate.componentBegin(job, componentJob, metrics); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void publishMessage(final ComponentMessage message) { if (_listener == null) { return; } _listener.onComponentMessage(_job, _component, message); }
@Override public void rowProcessingSuccess(final AnalysisJob job, final RowProcessingMetrics metrics) { for (final AnalysisListener delegate : _delegates) { try { delegate.rowProcessingSuccess(job, metrics); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void jobSuccess(final AnalysisJob job, final AnalysisJobMetrics metrics) { for (final AnalysisListener delegate : _delegates) { try { delegate.jobSuccess(job, metrics); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public void jobBegin(final AnalysisJob job, final AnalysisJobMetrics metrics) { for (final AnalysisListener delegate : _delegates) { try { delegate.jobBegin(job, metrics); } catch (final Exception e) { logFailure(delegate, e); } } }
public void initialize() { final Table table = _outputDataStreamJob.getOutputDataStream().getTable(); final Query query = new Query(); query.from(table).selectAll(); final List<SelectItem> selectItems = query.getSelectClause().getItems(); final ConsumeRowHandler consumeRowHandler = _publisher.createConsumeRowHandler(); _outputRowCollector = new OutputDataStreamRowCollector(_publisher, selectItems, consumeRowHandler); final OutputDataStream outputDataStream = _outputDataStreamJob.getOutputDataStream(); _component.initializeOutputDataStream(outputDataStream, query, _outputRowCollector); _publisher.getAnalysisListener() .rowProcessingBegin(_publisher.getAnalysisJob(), _publisher.getRowProcessingMetrics()); }
@Override public void execute() { _consumeRowHandler.consumeRow(_row).getRows(); _analysisListener.rowProcessingProgress(_rowProcessingMetrics.getAnalysisJobMetrics().getAnalysisJob(), _rowProcessingMetrics, _row, _rowNumber); }
@Override public final ConsumeRowHandler createConsumeRowHandler() { final RowProcessingQueryOptimizer queryOptimizer = getQueryOptimizer(); final Query finalQuery = queryOptimizer.getOptimizedQuery(); final RowIdGenerator idGenerator; if (finalQuery.getFirstRow() == null) { idGenerator = new SimpleRowIdGenerator(); } else { idGenerator = new SimpleRowIdGenerator(finalQuery.getFirstRow()); } final RowProcessingPublishers publishers = getPublishers(); final AnalysisListener analysisListener = publishers.getAnalysisListener(); for (final RowProcessingConsumer consumer : getConsumers()) { final ComponentJob componentJob = consumer.getComponentJob(); final ComponentMetrics metrics = new AnalysisJobMetricsImpl(consumer.getAnalysisJob(), publishers).getComponentMetrics(componentJob); analysisListener.componentBegin(getStream().getAnalysisJob(), componentJob, metrics); if (consumer instanceof TransformerConsumer) { ((TransformerConsumer) consumer).setRowIdGenerator(idGenerator); } } final List<RowProcessingConsumer> consumers = queryOptimizer.getOptimizedConsumers(); final Collection<? extends FilterOutcome> availableOutcomes = queryOptimizer.getOptimizedAvailableOutcomes(); return new ConsumeRowHandler(consumers, availableOutcomes); }
@Override public void onComponentMessage(final AnalysisJob job, final ComponentJob componentJob, final ComponentMessage message) { for (final AnalysisListener delegate : _delegates) { try { delegate.onComponentMessage(job, componentJob, message); } catch (final Exception e) { logFailure(delegate, e); } } }
@Override public final void processRows(final RowProcessingMetrics rowProcessingMetrics) { final AnalysisListener analysisListener = getAnalysisListener(); final boolean success = processRowsInternal(analysisListener, rowProcessingMetrics); if (!success) { _success.set(false); return; } analysisListener.rowProcessingSuccess(getAnalysisJob(), rowProcessingMetrics); }
@Override public void onComplete(final Task task) { try { logger.debug("onComplete(...)"); final int successCountDownStatus = _successCountDown.decrementAndGet(); if (successCountDownStatus == 0) { _completionTime = new Date(); _analysisListener.jobSuccess(_analysisJobMetrics.getAnalysisJob(), _analysisJobMetrics); } } finally { // as the last thing we need to call countDown() to unlock any waiting // threads on await() _countDownLatch.countDown(); } }
@Override public void onError(final Task task, final Throwable throwable) { try { logger.debug("onError(...)"); _analysisListener.errorUnknown(_analysisJobMetrics.getAnalysisJob(), throwable); } finally { _countDownLatch.countDown(); } }
@Override public final void consume(final InputRow row, final int distinctCount, final FilterOutcomes outcomes, final RowProcessingChain chain) { try { consumeInternal(row, distinctCount, outcomes, chain); } catch (final RuntimeException e) { final ComponentJob componentJob = getComponentJob(); if (_analysisListener == null) { logger.error("Error occurred in component '" + componentJob + "' and no AnalysisListener is available", e); throw e; } else { _analysisListener.errorInComponent(_analysisJob, componentJob, row, e); } } }