Bug 1243585 - Move ping builders -> pingbuilders/. r=sebastian
This overwrites a commit I did at the beginning, but fixing the version control
would have been a waste of time.
MozReview-Commit-ID: Ry9WRpTf8s
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -74,17 +74,17 @@ import org.mozilla.gecko.tabqueue.TabQue
import org.mozilla.gecko.tabqueue.TabQueuePrompt;
import org.mozilla.gecko.tabs.TabHistoryController;
import org.mozilla.gecko.tabs.TabHistoryController.OnShowTabHistory;
import org.mozilla.gecko.tabs.TabHistoryFragment;
import org.mozilla.gecko.tabs.TabHistoryPage;
import org.mozilla.gecko.tabs.TabsPanel;
import org.mozilla.gecko.telemetry.TelemetryDispatcher;
import org.mozilla.gecko.telemetry.TelemetryUploadService;
-import org.mozilla.gecko.telemetry.core.TelemetryCorePingBuilder;
+import org.mozilla.gecko.telemetry.pingbuilders.TelemetryCorePingBuilder;
import org.mozilla.gecko.toolbar.AutocompleteHandler;
import org.mozilla.gecko.toolbar.BrowserToolbar;
import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
import org.mozilla.gecko.toolbar.ToolbarProgressView;
import org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt;
import org.mozilla.gecko.updater.UpdateServiceHelper;
import org.mozilla.gecko.util.ActivityUtils;
import org.mozilla.gecko.util.Clipboard;
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryDispatcher.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryDispatcher.java
@@ -3,17 +3,17 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, you can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.mozilla.gecko.telemetry;
import android.content.Context;
import android.util.Log;
-import org.mozilla.gecko.telemetry.core.TelemetryCorePingBuilder;
+import org.mozilla.gecko.telemetry.pingbuilders.TelemetryCorePingBuilder;
import org.mozilla.gecko.telemetry.schedulers.TelemetryUploadScheduler;
import org.mozilla.gecko.telemetry.schedulers.TelemetryUploadAllPingsImmediatelyScheduler;
import org.mozilla.gecko.telemetry.stores.TelemetryJSONFilePingStore;
import org.mozilla.gecko.telemetry.stores.TelemetryPingStore;
import org.mozilla.gecko.util.ThreadUtils;
import java.io.File;
import java.io.IOException;
@@ -31,17 +31,17 @@ import java.lang.ref.WeakReference;
* Store <--------------------------
*
* The store acts as a single store of truth and contains a list of all
* pings waiting to be uploaded. The dispatcher will queue a ping to upload
* by writing it to the store. Later, the UploadService will try to upload
* this queued ping by reading directly from the store.
*
* To implement a new ping type, you should:
- * 1) Implement a {@link TelemetryPingBuilder} for your ping type.
+ * 1) Implement a {@link org.mozilla.gecko.telemetry.pingbuilders.TelemetryPingBuilder} for your ping type.
* 2) Re-use a ping store in .../stores/ or implement a new one: {@link TelemetryPingStore}. The
* type of store may be affected by robustness requirements (e.g. do you have data in addition to
* pings that need to be atomically updated when a ping is stored?) and performance requirements.
* 3) Re-use an upload scheduler in .../schedulers/ or implement a new one: {@link TelemetryUploadScheduler}.
* 4) Initialize your Store & (if new) Scheduler in the constructor of this class
* 5) Add a queuePingForUpload method for your PingBuilder class (see
* {@link #queuePingForUpload(Context, TelemetryCorePingBuilder)})
* 6) In Fennec, where you want to store a ping and attempt upload, create a PingBuilder and
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPing.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPing.java
@@ -6,17 +6,18 @@
package org.mozilla.gecko.telemetry;
import org.mozilla.gecko.sync.ExtendedJSONObject;
/**
* Container for telemetry data and the data necessary to upload it.
*
* If you want to create one of these, consider extending
- * {@link TelemetryPingBuilder} or one of its descendants.
+ * {@link org.mozilla.gecko.telemetry.pingbuilders.TelemetryPingBuilder}
+ * or one of its descendants.
*/
public class TelemetryPing {
private final String urlPath;
private final ExtendedJSONObject payload;
public TelemetryPing(final String urlPath, final ExtendedJSONObject payload) {
this.urlPath = urlPath;
this.payload = payload;
rename from mobile/android/base/java/org/mozilla/gecko/telemetry/core/TelemetryCorePingBuilder.java
rename to mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryCorePingBuilder.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/core/TelemetryCorePingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryCorePingBuilder.java
@@ -1,37 +1,33 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry.core;
+package org.mozilla.gecko.telemetry.pingbuilders;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.text.TextUtils;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.GeckoProfile;
-import org.mozilla.gecko.GeckoSharedPrefs;
import org.mozilla.gecko.Locales;
-import org.mozilla.gecko.distribution.DistributionStoreCallback;
import org.mozilla.gecko.search.SearchEngine;
import org.mozilla.gecko.telemetry.TelemetryConstants;
import org.mozilla.gecko.telemetry.TelemetryPing;
-import org.mozilla.gecko.telemetry.TelemetryPingBuilder;
import org.mozilla.gecko.util.Experiments;
import org.mozilla.gecko.util.StringUtils;
-import java.io.IOException;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
/**
* Builds a {@link TelemetryPing} representing a core ping.
*
* See https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/core-ping.html
* for details on the core ping.
rename from mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPingBuilder.java
rename to mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryPingBuilder.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryPingBuilder.java
@@ -1,31 +1,32 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry;
+package org.mozilla.gecko.telemetry.pingbuilders;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.sync.ExtendedJSONObject;
+import org.mozilla.gecko.telemetry.TelemetryPing;
import java.util.Set;
import java.util.UUID;
/**
* A generic Builder for {@link TelemetryPing} instances. Each overriding class is
* expected to create a specific type of ping (e.g. "core").
*
* This base class handles the common ping operations under the hood:
* * Validating mandatory fields
* * Forming the server url
*/
-public abstract class TelemetryPingBuilder {
+abstract class TelemetryPingBuilder {
// In the server url, the initial path directly after the "scheme://host:port/"
private static final String SERVER_INITIAL_PATH = "submit/telemetry";
private final String serverPath;
protected final ExtendedJSONObject payload;
public TelemetryPingBuilder() {
serverPath = getTelemetryServerPath(getDocType());
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -566,25 +566,25 @@ gbjar.sources += ['java/org/mozilla/geck
'tabs/TabPanelBackButton.java',
'tabs/TabsGridLayout.java',
'tabs/TabsLayoutAdapter.java',
'tabs/TabsLayoutItemView.java',
'tabs/TabsListLayout.java',
'tabs/TabsPanel.java',
'tabs/TabsPanelThumbnailView.java',
'Telemetry.java',
- 'telemetry/core/TelemetryCorePingBuilder.java',
+ 'telemetry/pingbuilders/TelemetryCorePingBuilder.java',
+ 'telemetry/pingbuilders/TelemetryPingBuilder.java',
'telemetry/schedulers/TelemetryUploadAllPingsImmediatelyScheduler.java',
'telemetry/schedulers/TelemetryUploadScheduler.java',
'telemetry/stores/TelemetryJSONFilePingStore.java',
'telemetry/stores/TelemetryPingStore.java',
'telemetry/TelemetryConstants.java',
'telemetry/TelemetryDispatcher.java',
'telemetry/TelemetryPing.java',
- 'telemetry/TelemetryPingBuilder.java',
'telemetry/TelemetryPingFromStore.java',
'telemetry/TelemetryUploadService.java',
'TelemetryContract.java',
'text/FloatingActionModeCallback.java',
'text/FloatingToolbarTextSelection.java',
'text/TextAction.java',
'text/TextSelection.java',
'TextSelectionHandle.java',
rename from mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/TestTelemetryPingBuilder.java
rename to mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/pingbuilders/TestTelemetryPingBuilder.java
--- a/mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/TestTelemetryPingBuilder.java
+++ b/mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/pingbuilders/TestTelemetryPingBuilder.java
@@ -1,15 +1,15 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, you can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry;
+package org.mozilla.gecko.telemetry.pingbuilders;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mozilla.gecko.background.testhelpers.TestRunner;
import static org.junit.Assert.*;
/**