]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9721 Drop use of TelemetryUrl and TelemetryFrequency
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Tue, 22 Aug 2017 15:51:23 +0000 (17:51 +0200)
committerTeryk Bellahsene <teryk@users.noreply.github.com>
Wed, 30 Aug 2017 14:24:53 +0000 (16:24 +0200)
server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryClient.java
server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java
server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryFrequency.java [deleted file]
server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryUrl.java [deleted file]
server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryUrlTest.java [deleted file]

index ac3a6c4252933358fb85515c57a6d633bcb30a7f..e977387997c12422e00179499cba5aeb2cc91e5f 100644 (file)
@@ -31,17 +31,19 @@ import org.sonar.api.server.ServerSide;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 
+import static org.sonar.core.config.TelemetryProperties.PROP_URL;
+
 @ServerSide
 public class TelemetryClient {
   private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
   private static final Logger LOG = Loggers.get(TelemetryClient.class);
 
   private final OkHttpClient okHttpClient;
-  private final TelemetryUrl serverUrl;
+  private final Configuration config;
 
   public TelemetryClient(OkHttpClient okHttpClient, Configuration config) {
     this.okHttpClient = okHttpClient;
-    this.serverUrl = new TelemetryUrl(config);
+    this.config = config;
   }
 
   void send(String json) {
@@ -55,7 +57,7 @@ public class TelemetryClient {
 
   void optOut(String json) {
     Request.Builder request = new Request.Builder();
-    request.url(serverUrl.get());
+    request.url(serverUrl());
     RequestBody body = RequestBody.create(JSON, json);
     request.delete(body);
 
@@ -68,10 +70,14 @@ public class TelemetryClient {
 
   private Request buildHttpRequest(String json) {
     Request.Builder request = new Request.Builder();
-    request.url(serverUrl.get());
+    request.url(serverUrl());
     RequestBody body = RequestBody.create(JSON, json);
     request.post(body);
     return request.build();
   }
 
+  private String serverUrl() {
+    return config.get(PROP_URL).orElseThrow(() -> new IllegalStateException(String.format("Setting '%s' must be provided.", PROP_URL)));
+  }
+
 }
index 7c5a6c2c89a99d1e9089904c747a7cef8dced1ef..f04afd3e228cbb93e3b69b109f6b6edb806a61b3 100644 (file)
@@ -38,6 +38,7 @@ import org.sonar.server.property.InternalProperties;
 import static org.sonar.api.utils.DateUtils.formatDate;
 import static org.sonar.api.utils.DateUtils.parseDate;
 import static org.sonar.core.config.TelemetryProperties.PROP_ENABLE;
+import static org.sonar.core.config.TelemetryProperties.PROP_FREQUENCY;
 import static org.sonar.core.config.TelemetryProperties.PROP_URL;
 
 @ServerSide
@@ -53,14 +54,12 @@ public class TelemetryDaemon implements Startable {
   private final InternalProperties internalProperties;
   private final Server server;
   private final System2 system2;
-  private final TelemetryFrequency frequencyInSeconds;
 
   private ScheduledExecutorService executorService;
 
   public TelemetryDaemon(TelemetryClient telemetryClient, Configuration config, InternalProperties internalProperties, Server server, System2 system2) {
     this.telemetryClient = telemetryClient;
     this.config = config;
-    this.frequencyInSeconds = new TelemetryFrequency(config);
     this.internalProperties = internalProperties;
     this.server = server;
     this.system2 = system2;
@@ -94,6 +93,7 @@ public class TelemetryDaemon implements Startable {
         .setNameFormat(THREAD_NAME_PREFIX + "%d")
         .setPriority(Thread.MIN_PRIORITY)
         .build());
+    int frequencyInSeconds = frequency();
     executorService.scheduleWithFixedDelay(() -> {
       try {
         Optional<Long> lastPing = internalProperties.read(I_PROP_LAST_PING).map(Long::valueOf);
@@ -114,7 +114,7 @@ public class TelemetryDaemon implements Startable {
         // fail silently
       }
     // do not check at start up to exclude test instance which are not up for a long time
-    }, frequencyInSeconds.get(), frequencyInSeconds.get(), TimeUnit.SECONDS);
+    }, frequencyInSeconds, frequencyInSeconds, TimeUnit.SECONDS);
   }
 
   @Override
@@ -130,4 +130,8 @@ public class TelemetryDaemon implements Startable {
   private static long startOfDay(long now) {
     return parseDate(formatDate(now)).getTime();
   }
+
+  private int frequency() {
+    return config.getInt(PROP_FREQUENCY).orElseThrow(() -> new IllegalStateException(String.format("Setting '%s' must be provided.", PROP_FREQUENCY)));
+  }
 }
diff --git a/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryFrequency.java b/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryFrequency.java
deleted file mode 100644 (file)
index 54b574c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2017 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-package org.sonar.server.telemetry;
-
-import org.sonar.api.config.Configuration;
-
-class TelemetryFrequency {
-  private final Configuration config;
-  private Long frequency;
-
-  TelemetryFrequency(Configuration config) {
-    this.config = config;
-  }
-
-  long get() {
-    if (frequency == null) {
-      frequency = config.getLong(org.sonar.core.config.TelemetryProperties.PROP_FREQUENCY)
-        .orElseThrow(() -> new IllegalStateException(String.format("Setting '%s' must be provided.", org.sonar.core.config.TelemetryProperties.PROP_FREQUENCY)));
-    }
-
-    return frequency;
-  }
-}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryUrl.java b/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryUrl.java
deleted file mode 100644 (file)
index 8e32b07..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2017 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-package org.sonar.server.telemetry;
-
-import org.sonar.api.config.Configuration;
-
-import static org.sonar.core.config.TelemetryProperties.PROP_URL;
-
-class TelemetryUrl {
-  private final Configuration config;
-  private String url;
-
-  TelemetryUrl(Configuration config) {
-    this.config = config;
-  }
-
-  String get() {
-    if (url == null) {
-      url = config.get(PROP_URL).orElseThrow(() -> new IllegalStateException(String.format("Setting '%s' must be provided.", PROP_URL)));
-    }
-
-    return url;
-  }
-}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryUrlTest.java b/server/sonar-server/src/test/java/org/sonar/server/telemetry/TelemetryUrlTest.java
deleted file mode 100644 (file)
index 7f56216..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2017 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-package org.sonar.server.telemetry;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.sonar.api.config.internal.MapSettings;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class TelemetryUrlTest {
-
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
-
-  private MapSettings settings = new MapSettings();
-
-  private TelemetryUrl underTest;
-
-  @Test
-  public void return_url_as_is_when_no_ending_slash() {
-    settings.setProperty("sonar.telemetry.url", "http://localhost:9001");
-    underTest = new TelemetryUrl(settings.asConfig());
-
-    assertThat(underTest.get()).isEqualTo("http://localhost:9001");
-  }
-
-  @Test
-  public void fail_when_no_settings_to_define_muppet_url() {
-    underTest = new TelemetryUrl(settings.asConfig());
-
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("Setting 'sonar.telemetry.url' must be provided.");
-
-    underTest.get();
-  }
-}