Skip to content

Commit 515d7ed

Browse files
author
Josh Deffibaugh
committed
Segrate event data by project
1 parent 0b4cc75 commit 515d7ed

File tree

6 files changed

+29
-19
lines changed

6 files changed

+29
-19
lines changed

event-handler/src/androidTest/java/com/optimizely/ab/android/event_handler/EventDAOTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ public class EventDAOTest {
5454
public void setupEventDAO() {
5555
logger = mock(Logger.class);
5656
context = InstrumentationRegistry.getTargetContext();
57-
eventDAO = EventDAO.getInstance(context, logger);
57+
eventDAO = EventDAO.getInstance(context, "1", logger);
5858
}
5959

6060
@After
6161
public void tearDownEventDAO() {
62-
context.deleteDatabase(EventSQLiteOpenHelper.DB_NAME);
62+
assertTrue(context.deleteDatabase(String.format(EventSQLiteOpenHelper.DB_NAME , "1")));
6363
}
6464

6565
@Test

event-handler/src/androidTest/java/com/optimizely/ab/android/event_handler/EventDispatcherTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public void setup() {
6767
context = InstrumentationRegistry.getTargetContext();
6868
logger = mock(Logger.class);
6969
client = mock(Client.class);
70-
eventDAO = EventDAO.getInstance(context, logger);
70+
eventDAO = EventDAO.getInstance(context, "1", logger);
7171
eventClient = new EventClient(client, logger);
7272
serviceScheduler = mock(ServiceScheduler.class);
7373
optlyStorage = mock(OptlyStorage.class);
@@ -77,7 +77,7 @@ public void setup() {
7777

7878
@After
7979
public void tearDown() {
80-
context.deleteDatabase(EventSQLiteOpenHelper.DB_NAME);
80+
context.deleteDatabase(String.format(EventSQLiteOpenHelper.DB_NAME, "1"));
8181
}
8282

8383
@Test

event-handler/src/androidTest/java/com/optimizely/ab/android/event_handler/EventSQLiteOpenHelperTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import android.content.Context;
1919
import android.database.Cursor;
2020
import android.database.sqlite.SQLiteDatabase;
21+
import android.os.Build;
22+
import android.support.annotation.RequiresApi;
2123
import android.support.test.InstrumentationRegistry;
2224
import android.support.test.runner.AndroidJUnit4;
2325

@@ -48,13 +50,14 @@ public void setup() {
4850

4951
@After
5052
public void teardown() {
51-
context.deleteDatabase(EventSQLiteOpenHelper.DB_NAME);
53+
context.deleteDatabase(String.format(EventSQLiteOpenHelper.DB_NAME, "1"));
5254
}
5355

56+
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
5457
@Test
5558
public void onCreateMakesTables() {
5659
EventSQLiteOpenHelper eventSQLiteOpenHelper =
57-
new EventSQLiteOpenHelper(context, EventSQLiteOpenHelper.DB_NAME, null, 1, logger);
60+
new EventSQLiteOpenHelper(context, "1", null, 1, logger);
5861
SQLiteDatabase db = eventSQLiteOpenHelper.getWritableDatabase();
5962
String[] projection = {
6063
EventTable.Column._ID,

event-handler/src/main/java/com/optimizely/ab/android/event_handler/EventDAO.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ private EventDAO(@NonNull EventSQLiteOpenHelper dbHelper, @NonNull Logger logger
4646
}
4747

4848
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
49-
static EventDAO getInstance(@NonNull Context context, @NonNull Logger logger) {
50-
EventSQLiteOpenHelper sqLiteOpenHelper = new EventSQLiteOpenHelper(context, EventSQLiteOpenHelper.DB_NAME, null, EventSQLiteOpenHelper.VERSION, null, LoggerFactory.getLogger(EventSQLiteOpenHelper.class));
49+
static EventDAO getInstance(@NonNull Context context, @NonNull String projectId, @NonNull Logger logger) {
50+
EventSQLiteOpenHelper sqLiteOpenHelper = new EventSQLiteOpenHelper(context, projectId, null, EventSQLiteOpenHelper.VERSION, LoggerFactory.getLogger(EventSQLiteOpenHelper.class));
5151
return new EventDAO(sqLiteOpenHelper, logger);
5252
}
5353

event-handler/src/main/java/com/optimizely/ab/android/event_handler/EventIntentService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void onCreate() {
6363
OptlyStorage optlyStorage = new OptlyStorage(this);
6464
EventClient eventClient = new EventClient(new Client(optlyStorage,
6565
LoggerFactory.getLogger(Client.class)), LoggerFactory.getLogger(EventClient.class));
66-
EventDAO eventDAO = EventDAO.getInstance(this, LoggerFactory.getLogger(EventDAO.class));
66+
EventDAO eventDAO = EventDAO.getInstance(this, "1", LoggerFactory.getLogger(EventDAO.class));
6767
ServiceScheduler serviceScheduler = new ServiceScheduler(
6868
(AlarmManager) getSystemService(ALARM_SERVICE),
6969
new ServiceScheduler.PendingIntentFactory(this),

event-handler/src/main/java/com/optimizely/ab/android/event_handler/EventSQLiteOpenHelper.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import android.database.sqlite.SQLiteDatabase;
2222
import android.database.sqlite.SQLiteOpenHelper;
2323
import android.os.Build;
24+
import android.support.annotation.NonNull;
25+
import android.support.annotation.Nullable;
2426
import android.support.annotation.RequiresApi;
2527

2628
import org.slf4j.Logger;
@@ -31,7 +33,7 @@
3133
class EventSQLiteOpenHelper extends SQLiteOpenHelper {
3234

3335
static final int VERSION = 1;
34-
static final String DB_NAME = "optly-events";
36+
static final String DB_NAME = "optly-events-%s";
3537

3638
static final String SQL_CREATE_EVENT_TABLE =
3739
"CREATE TABLE " + EventTable.NAME + " (" +
@@ -43,17 +45,16 @@ class EventSQLiteOpenHelper extends SQLiteOpenHelper {
4345
private static final String SQL_DELETE_EVENT_TABLE =
4446
"DROP TABLE IF EXISTS " + EventTable.NAME;
4547

46-
private final Logger logger;
47-
48-
EventSQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Logger logger) {
49-
super(context, name, factory, version);
50-
this.logger = logger;
51-
}
48+
@NonNull private final Logger logger;
49+
@NonNull private final String projectId;
50+
@NonNull private final Context context;
5251

5352
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
54-
EventSQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler, Logger logger) {
55-
super(context, name, factory, version, errorHandler);
53+
EventSQLiteOpenHelper(@NonNull Context context, @NonNull String projectId, @Nullable SQLiteDatabase.CursorFactory factory, int version, @NonNull Logger logger) {
54+
super(context, String.format(DB_NAME, projectId), factory, version, null);
5655
this.logger = logger;
56+
this.projectId = projectId;
57+
this.context = context;
5758
}
5859

5960
/**
@@ -62,6 +63,8 @@ class EventSQLiteOpenHelper extends SQLiteOpenHelper {
6263
*/
6364
@Override
6465
public void onCreate(SQLiteDatabase db) {
66+
// Deletes the old events db that stored events for all projects
67+
context.deleteDatabase("optly-events");
6568
db.execSQL(SQL_CREATE_EVENT_TABLE);
6669
logger.info("Created event table with SQL: {}", SQL_CREATE_EVENT_TABLE);
6770
}
@@ -73,6 +76,10 @@ public void onCreate(SQLiteDatabase db) {
7376

7477
@Override
7578
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
76-
// TODO Create an upgrade strategy once we actually upgrade the schema.
79+
80+
}
81+
82+
public String getDbName() {
83+
return String.format(DB_NAME, projectId);
7784
}
7885
}

0 commit comments

Comments
 (0)