Skip to content

Commit b9c671a

Browse files
authored
Merge pull request #35 from optimizely/mng/rename-user-profile
Rename UserExperimentRecord to UserProfile.
2 parents 128dc80 + dab45c2 commit b9c671a

File tree

7 files changed

+84
-86
lines changed

7 files changed

+84
-86
lines changed

core-api/src/main/java/com/optimizely/ab/Optimizely.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import com.optimizely.ab.annotations.VisibleForTesting;
2020
import com.optimizely.ab.bucketing.Bucketer;
21-
import com.optimizely.ab.bucketing.UserExperimentRecord;
21+
import com.optimizely.ab.bucketing.UserProfile;
2222
import com.optimizely.ab.config.Attribute;
2323
import com.optimizely.ab.config.EventType;
2424
import com.optimizely.ab.config.Experiment;
@@ -102,7 +102,7 @@ private Optimizely(@Nonnull ProjectConfig projectConfig,
102102

103103
// Do work here that should be done once per Optimizely lifecycle
104104
@VisibleForTesting void initialize() {
105-
bucketer.cleanUserExperimentRecords();
105+
bucketer.cleanUserProfiles();
106106
}
107107

108108
//======== activate calls ========//
@@ -439,7 +439,7 @@ public static class Builder {
439439

440440
private String datafile;
441441
private Bucketer bucketer;
442-
private UserExperimentRecord userExperimentRecord;
442+
private UserProfile userProfile;
443443
private ErrorHandler errorHandler;
444444
private EventHandler eventHandler;
445445
private EventBuilder eventBuilder;
@@ -458,8 +458,8 @@ public Builder withErrorHandler(ErrorHandler errorHandler) {
458458
return this;
459459
}
460460

461-
public Builder withUserExperimentRecord(UserExperimentRecord userExperimentRecord) {
462-
this.userExperimentRecord = userExperimentRecord;
461+
public Builder withUserProfile(UserProfile userProfile) {
462+
this.userProfile = userProfile;
463463
return this;
464464
}
465465

@@ -496,7 +496,7 @@ public Optimizely build() throws ConfigParseException {
496496

497497
// use the default bucketer and event builder, if no overrides were provided
498498
if (bucketer == null) {
499-
bucketer = new Bucketer(projectConfig, userExperimentRecord);
499+
bucketer = new Bucketer(projectConfig, userProfile);
500500
}
501501

502502
if (clientEngine == null) {

core-api/src/main/java/com/optimizely/ab/bucketing/Bucketer.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public class Bucketer {
4747

4848
private final ProjectConfig projectConfig;
4949

50-
@Nullable private final UserExperimentRecord userExperimentRecord;
50+
@Nullable private final UserProfile userProfile;
5151

5252
private static final Logger logger = LoggerFactory.getLogger(Bucketer.class);
5353

@@ -63,9 +63,9 @@ public Bucketer(ProjectConfig projectConfig) {
6363
this(projectConfig, null);
6464
}
6565

66-
public Bucketer(ProjectConfig projectConfig, @Nullable UserExperimentRecord userExperimentRecord) {
66+
public Bucketer(ProjectConfig projectConfig, @Nullable UserProfile userProfile) {
6767
this.projectConfig = projectConfig;
68-
this.userExperimentRecord = userExperimentRecord;
68+
this.userProfile = userProfile;
6969
}
7070

7171
private String bucketToEntity(int bucketValue, List<TrafficAllocation> trafficAllocations) {
@@ -112,12 +112,12 @@ private Variation bucketToVariation(@Nonnull Experiment experiment,
112112
String experimentKey = experiment.getKey();
113113
String combinedBucketId = userId + experimentId;
114114

115-
// If a user experiment record instance is present then check it for a saved variation
116-
if (userExperimentRecord != null) {
117-
String variationKey = userExperimentRecord.lookup(userId, experimentKey);
115+
// If a user profile instance is present then check it for a saved variation
116+
if (userProfile != null) {
117+
String variationKey = userProfile.lookup(userId, experimentKey);
118118
if (variationKey != null) {
119119
logger.info("Returning previously activated variation \"{}\" of experiment \"{}\" "
120-
+ "for user \"{}\" from user experiment record.",
120+
+ "for user \"{}\" from user profile.",
121121
variationKey, experimentKey, userId);
122122
// A variation is stored for this combined bucket id
123123
return projectConfig
@@ -127,7 +127,7 @@ private Variation bucketToVariation(@Nonnull Experiment experiment,
127127
.get(variationKey);
128128
} else {
129129
logger.info("No previously activated variation of experiment \"{}\" "
130-
+ "for user \"{}\" found in user experiment record.",
130+
+ "for user \"{}\" found in user profile.",
131131
experimentKey, userId);
132132
}
133133
}
@@ -145,9 +145,9 @@ private Variation bucketToVariation(@Nonnull Experiment experiment,
145145
logger.info("User \"{}\" is in variation \"{}\" of experiment \"{}\".", userId, variationKey,
146146
experimentKey);
147147

148-
// If a user experiment record is present give it a variation to store
149-
if (userExperimentRecord != null) {
150-
boolean saved = userExperimentRecord.save(userId, experiment.getKey(), variationKey);
148+
// If a user profile is present give it a variation to store
149+
if (userProfile != null) {
150+
boolean saved = userProfile.save(userId, experiment.getKey(), variationKey);
151151
if (saved) {
152152
logger.info("Saved variation \"{}\" of experiment \"{}\" for user \"{}\".",
153153
variationKey, experimentKey, userId);
@@ -224,23 +224,23 @@ int generateBucketValue(int hashCode) {
224224
}
225225

226226
@Nullable
227-
public UserExperimentRecord getUserExperimentRecord() {
228-
return userExperimentRecord;
227+
public UserProfile getUserProfile() {
228+
return userProfile;
229229
}
230230

231231
/**
232-
* Gives implementations of {@link UserExperimentRecord} a chance to remove records
232+
* Gives implementations of {@link UserProfile} a chance to remove records
233233
* of experiments that are deleted or not running.
234234
*/
235-
public void cleanUserExperimentRecords() {
236-
if (userExperimentRecord != null) {
237-
Map<String, Map<String,String>> records = userExperimentRecord.getAllRecords();
235+
public void cleanUserProfiles() {
236+
if (userProfile != null) {
237+
Map<String, Map<String,String>> records = userProfile.getAllRecords();
238238
if (records != null) {
239239
for (Map.Entry<String,Map<String,String>> record : records.entrySet()) {
240240
for (String experimentKey : record.getValue().keySet()) {
241241
Experiment experiment = projectConfig.getExperimentKeyMapping().get(experimentKey);
242242
if (experiment == null || !experiment.isRunning()) {
243-
userExperimentRecord.remove(record.getKey(), experimentKey);
243+
userProfile.remove(record.getKey(), experimentKey);
244244
}
245245
}
246246
}

core-api/src/main/java/com/optimizely/ab/bucketing/UserExperimentRecord.java renamed to core-api/src/main/java/com/optimizely/ab/bucketing/UserProfile.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* user experience after changing traffic allocations. Also, this interface gives users
2626
* a hook to keep track of activation history.
2727
*/
28-
public interface UserExperimentRecord {
28+
public interface UserProfile {
2929

3030
/**
3131
* Called when implementors should save an activation
@@ -47,7 +47,7 @@ public interface UserExperimentRecord {
4747
String lookup(String userId, String experimentKey);
4848

4949
/**
50-
* Called when user experiment record should be removed
50+
* Called when user profile should be removed
5151
*
5252
* Records should be removed when an experiment is not running or when an experiment has been
5353
* deleted.

core-api/src/test/java/com/optimizely/ab/OptimizelyBuilderTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
package com.optimizely.ab;
1818

19-
import com.optimizely.ab.bucketing.UserExperimentRecord;
19+
import com.optimizely.ab.bucketing.UserProfile;
2020
import com.optimizely.ab.config.ProjectConfigTestUtils;
2121
import com.optimizely.ab.config.parser.ConfigParseException;
2222
import com.optimizely.ab.error.ErrorHandler;
@@ -102,13 +102,13 @@ public void withDefaultErrorHandler() throws Exception {
102102
}
103103

104104
@Test
105-
public void withUserExperimentRecord() throws Exception {
106-
UserExperimentRecord userExperimentRecord = mock(UserExperimentRecord.class);
105+
public void withUserProfile() throws Exception {
106+
UserProfile userProfile = mock(UserProfile.class);
107107
Optimizely optimizelyClient = Optimizely.builder(validConfigJsonV2(), mockEventHandler)
108-
.withUserExperimentRecord(userExperimentRecord)
108+
.withUserProfile(userProfile)
109109
.build();
110110

111-
assertThat(optimizelyClient.bucketer.getUserExperimentRecord(), is(userExperimentRecord));
111+
assertThat(optimizelyClient.bucketer.getUserProfile(), is(userProfile));
112112
}
113113

114114
@Test

core-api/src/test/java/com/optimizely/ab/OptimizelyTestV1.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public void initializationOccursForBucketerWhenBuildingOptly() throws Exception
159159
.withErrorHandler(mockErrorHandler)
160160
.build();
161161

162-
verify(mockBucketer).cleanUserExperimentRecords();
162+
verify(mockBucketer).cleanUserProfiles();
163163
}
164164

165165
/**

core-api/src/test/java/com/optimizely/ab/OptimizelyTestV2.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,8 @@
3131
import com.optimizely.ab.error.RaiseExceptionErrorHandler;
3232
import com.optimizely.ab.event.EventHandler;
3333
import com.optimizely.ab.event.LogEvent;
34-
import com.optimizely.ab.event.internal.BuildVersionInfo;
3534
import com.optimizely.ab.event.internal.EventBuilder;
3635
import com.optimizely.ab.event.internal.EventBuilderV2;
37-
import com.optimizely.ab.event.internal.payload.Event.ClientEngine;
3836
import com.optimizely.ab.internal.LogbackVerifier;
3937
import com.optimizely.ab.internal.ProjectValidationUtils;
4038

@@ -161,7 +159,7 @@ public void initializationOccursForBucketerWhenBuildingOptly() throws Exception
161159
.withErrorHandler(mockErrorHandler)
162160
.build();
163161

164-
verify(mockBucketer).cleanUserExperimentRecords();
162+
verify(mockBucketer).cleanUserProfiles();
165163
}
166164

167165
/**

0 commit comments

Comments
 (0)