From 86a67f6f7084e06119ce81765002a738d3d54757 Mon Sep 17 00:00:00 2001 From: Damien Urruty Date: Mon, 14 Oct 2024 12:07:33 +0200 Subject: NO-JIRA Refactor v2 telemetry data provider Introduce an abstract class to differentiate static characteristics (dimension, metric key, ...) and dynamic (the actual value) to better show how it is supposed to be used. It will also prevent future duplication reports on data providers --- .../EmailConfigAuthMethodTelemetryProvider.java | 25 +++------------------- .../EmailConfigHostTelemetryProvider.java | 25 +++------------------- 2 files changed, 6 insertions(+), 44 deletions(-) (limited to 'server/sonar-server-common/src') diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigAuthMethodTelemetryProvider.java b/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigAuthMethodTelemetryProvider.java index 4ed588eb9b5..38f3dc73e39 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigAuthMethodTelemetryProvider.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigAuthMethodTelemetryProvider.java @@ -22,40 +22,21 @@ package org.sonar.server.notification.email.telemetry; import java.util.Optional; import org.sonar.db.DbClient; import org.sonar.db.DbSession; +import org.sonar.telemetry.core.AbstractTelemetryDataProvider; import org.sonar.telemetry.core.Dimension; import org.sonar.telemetry.core.Granularity; -import org.sonar.telemetry.core.TelemetryDataProvider; import org.sonar.telemetry.core.TelemetryDataType; import static org.sonar.server.email.EmailSmtpConfiguration.EMAIL_CONFIG_SMTP_AUTH_METHOD; -public class EmailConfigAuthMethodTelemetryProvider implements TelemetryDataProvider { +public class EmailConfigAuthMethodTelemetryProvider extends AbstractTelemetryDataProvider { private final DbClient dbClient; public EmailConfigAuthMethodTelemetryProvider(DbClient dbClient) { + super("email_conf_auth_method", Dimension.INSTALLATION, Granularity.WEEKLY, TelemetryDataType.STRING); this.dbClient = dbClient; } - @Override - public String getMetricKey() { - return "email_conf_auth_method"; - } - - @Override - public Dimension getDimension() { - return Dimension.INSTALLATION; - } - - @Override - public Granularity getGranularity() { - return Granularity.WEEKLY; - } - - @Override - public TelemetryDataType getType() { - return TelemetryDataType.STRING; - } - @Override public Optional getValue() { try (DbSession dbSession = dbClient.openSession(false)) { diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigHostTelemetryProvider.java b/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigHostTelemetryProvider.java index e2fe55be6af..ed3a3c9ad76 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigHostTelemetryProvider.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/notification/email/telemetry/EmailConfigHostTelemetryProvider.java @@ -24,40 +24,21 @@ import java.util.Optional; import org.apache.commons.lang3.StringUtils; import org.sonar.db.DbClient; import org.sonar.db.DbSession; +import org.sonar.telemetry.core.AbstractTelemetryDataProvider; import org.sonar.telemetry.core.Dimension; import org.sonar.telemetry.core.Granularity; -import org.sonar.telemetry.core.TelemetryDataProvider; import org.sonar.telemetry.core.TelemetryDataType; import static org.sonar.server.email.EmailSmtpConfiguration.EMAIL_CONFIG_SMTP_HOST; -public class EmailConfigHostTelemetryProvider implements TelemetryDataProvider { +public class EmailConfigHostTelemetryProvider extends AbstractTelemetryDataProvider { private final DbClient dbClient; public EmailConfigHostTelemetryProvider(DbClient dbClient) { + super("email_conf_host", Dimension.INSTALLATION, Granularity.WEEKLY, TelemetryDataType.STRING); this.dbClient = dbClient; } - @Override - public String getMetricKey() { - return "email_conf_host"; - } - - @Override - public Dimension getDimension() { - return Dimension.INSTALLATION; - } - - @Override - public TelemetryDataType getType() { - return TelemetryDataType.STRING; - } - - @Override - public Granularity getGranularity() { - return Granularity.WEEKLY; - } - @Override public Optional getValue() { try (DbSession dbSession = dbClient.openSession(false)) { -- cgit v1.2.3