From 0911df5cb9337139318115673ebef6dc3925a4c8 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Wed, 16 Sep 2015 16:43:25 +0200 Subject: [PATCH] Cleanup and deprecate Decorator related stuff --- .../batch/phases/PhasesTimeProfiler.java | 72 +------------------ .../java/org/sonar/api/batch/PostJob.java | 4 +- .../events/DecoratorExecutionHandler.java | 2 + .../batch/events/DecoratorsPhaseHandler.java | 5 +- 4 files changed, 8 insertions(+), 75 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/PhasesTimeProfiler.java b/sonar-batch/src/main/java/org/sonar/batch/phases/PhasesTimeProfiler.java index 32c2538ab10..87f2f9e2eea 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/phases/PhasesTimeProfiler.java +++ b/sonar-batch/src/main/java/org/sonar/batch/phases/PhasesTimeProfiler.java @@ -19,28 +19,18 @@ */ package org.sonar.batch.phases; -import com.google.common.collect.Lists; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.SystemUtils; -import org.sonar.api.batch.Decorator; -import org.sonar.api.batch.events.DecoratorExecutionHandler; -import org.sonar.api.batch.events.DecoratorsPhaseHandler; import org.sonar.api.batch.events.SensorExecutionHandler; import org.sonar.api.batch.events.SensorsPhaseHandler; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import org.sonar.api.utils.log.Profiler; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; - -public class PhasesTimeProfiler implements SensorExecutionHandler, DecoratorExecutionHandler, DecoratorsPhaseHandler, SensorsPhaseHandler { +public class PhasesTimeProfiler implements SensorExecutionHandler, SensorsPhaseHandler { private static final Logger LOG = Loggers.get(PhasesTimeProfiler.class); private Profiler profiler = Profiler.create(LOG); - private DecoratorsProfiler decoratorsProfiler = new DecoratorsProfiler(); @Override public void onSensorsPhase(SensorsPhaseEvent event) { @@ -58,64 +48,4 @@ public class PhasesTimeProfiler implements SensorExecutionHandler, DecoratorExec } } - @Override - public void onDecoratorExecution(DecoratorExecutionEvent event) { - if (event.isStart()) { - decoratorsProfiler.start(event.getDecorator()); - } else { - decoratorsProfiler.stop(); - } - } - - @Override - public void onDecoratorsPhase(DecoratorsPhaseEvent event) { - if (event.isStart()) { - LOG.info("Execute decorators..."); - if (LOG.isDebugEnabled()) { - LOG.debug("Decorators: {}", StringUtils.join(event.getDecorators(), " -> ")); - } - } else { - decoratorsProfiler.log(); - } - } - - static class DecoratorsProfiler { - List decorators = Lists.newArrayList(); - Map durations = new IdentityHashMap<>(); - long startTime; - Decorator currentDecorator; - - DecoratorsProfiler() { - } - - void start(Decorator decorator) { - this.startTime = System.currentTimeMillis(); - this.currentDecorator = decorator; - } - - void stop() { - final Long cumulatedDuration; - if (durations.containsKey(currentDecorator)) { - cumulatedDuration = durations.get(currentDecorator); - } else { - decorators.add(currentDecorator); - cumulatedDuration = 0L; - } - durations.put(currentDecorator, cumulatedDuration + (System.currentTimeMillis() - startTime)); - } - - void log() { - LOG.debug(getMessage()); - } - - String getMessage() { - StringBuilder sb = new StringBuilder("Decorator time:").append(SystemUtils.LINE_SEPARATOR); - for (Decorator decorator : decorators) { - sb.append("\t").append(decorator.toString()).append(": ").append(durations.get(decorator)).append("ms") - .append(SystemUtils.LINE_SEPARATOR); - } - return sb.toString(); - } - } - } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java index 6c468813437..2b8a2f6242a 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java @@ -25,8 +25,8 @@ import org.sonar.api.resources.Project; /** * PostJobs are executed at the very end of batch analysis. A PostJob can't do any modification * since everything is already computed (issues, measures,...).
- * WANRING: Do not rely on the fact that analysis results are available on server side. Even if it is true - * for now (synchronous storage) it will become an asynchronous processing on server side in 5.x series. + * WANRING: Do not rely on the fact that analysis results are available on server side. Starting from 5.x + * it is an asynchronous processing on server side. * * @since 1.10 */ diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorExecutionHandler.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorExecutionHandler.java index e9bd02b85f4..b9799689ac1 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorExecutionHandler.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorExecutionHandler.java @@ -23,7 +23,9 @@ import org.sonar.api.batch.Decorator; /** * @since 2.8 + * @deprecated since 5.2 no more decorator */ +@Deprecated public interface DecoratorExecutionHandler extends EventHandler { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorsPhaseHandler.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorsPhaseHandler.java index 12ff4172dc0..85f946691e4 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorsPhaseHandler.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorsPhaseHandler.java @@ -19,13 +19,14 @@ */ package org.sonar.api.batch.events; -import org.sonar.api.batch.Decorator; - import java.util.List; +import org.sonar.api.batch.Decorator; /** * @since 2.8 + * @deprecated since 5.2 no more decorator */ +@Deprecated public interface DecoratorsPhaseHandler extends EventHandler { /** -- 2.39.5