Skip to content

Commit d8fc1e4

Browse files
feat(core-api): deprecate ExperimentCore and replace with Experiment in ActivateNotification
1 parent 8b36afd commit d8fc1e4

File tree

6 files changed

+17
-15
lines changed

6 files changed

+17
-15
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,13 +345,17 @@ private boolean sendImpression(@Nonnull ProjectConfig projectConfig,
345345
if (experiment != null) {
346346
logger.info("Activating user \"{}\" in experiment \"{}\".", userId, experiment.getKey());
347347
}
348+
349+
// Legacy API methods only apply to the Experiment type and not to Holdout.
350+
boolean isExperimentType = experiment instanceof Experiment;
351+
348352
// Kept For backwards compatibility.
349353
// This notification is deprecated and the new DecisionNotifications
350354
// are sent via their respective method calls.
351-
if (notificationCenter.getNotificationManager(ActivateNotification.class).size() > 0) {
355+
if (notificationCenter.getNotificationManager(ActivateNotification.class).size() > 0 && isExperimentType) {
352356
LogEvent impressionEvent = EventFactory.createLogEvent(userEvent);
353357
ActivateNotification activateNotification = new ActivateNotification(
354-
experiment, userId, filteredAttributes, variation, impressionEvent);
358+
(Experiment)experiment, userId, filteredAttributes, variation, impressionEvent);
355359
notificationCenter.send(activateNotification);
356360
}
357361
return true;

core-api/src/main/java/com/optimizely/ab/notification/ActivateNotification.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import java.util.Map;
2020

2121
import com.optimizely.ab.annotations.VisibleForTesting;
22-
import com.optimizely.ab.config.ExperimentCore;
22+
import com.optimizely.ab.config.Experiment;
2323
import com.optimizely.ab.config.Variation;
2424
import com.optimizely.ab.event.LogEvent;
2525

@@ -32,7 +32,7 @@
3232
@Deprecated
3333
public final class ActivateNotification {
3434

35-
private final ExperimentCore experiment;
35+
private final Experiment experiment;
3636
private final String userId;
3737
private final Map<String, ?> attributes;
3838
private final Variation variation;
@@ -50,15 +50,15 @@ public final class ActivateNotification {
5050
* @param variation - The variation that was returned from activate.
5151
* @param event - The impression event that was triggered.
5252
*/
53-
public ActivateNotification(ExperimentCore experiment, String userId, Map<String, ?> attributes, Variation variation, LogEvent event) {
53+
public ActivateNotification(Experiment experiment, String userId, Map<String, ?> attributes, Variation variation, LogEvent event) {
5454
this.experiment = experiment;
5555
this.userId = userId;
5656
this.attributes = attributes;
5757
this.variation = variation;
5858
this.event = event;
5959
}
6060

61-
public ExperimentCore getExperiment() {
61+
public Experiment getExperiment() {
6262
return experiment;
6363
}
6464

core-api/src/main/java/com/optimizely/ab/notification/ActivateNotificationListener.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import javax.annotation.Nonnull;
2323

2424
import com.optimizely.ab.config.Experiment;
25-
import com.optimizely.ab.config.ExperimentCore;
2625
import com.optimizely.ab.config.Variation;
2726
import com.optimizely.ab.event.LogEvent;
2827

@@ -82,7 +81,7 @@ public final void handle(ActivateNotification message) {
8281
* @param variation - The variation that was returned from activate.
8382
* @param event - The impression event that was triggered.
8483
*/
85-
public abstract void onActivate(@Nonnull ExperimentCore experiment,
84+
public abstract void onActivate(@Nonnull Experiment experiment,
8685
@Nonnull String userId,
8786
@Nonnull Map<String, ?> attributes,
8887
@Nonnull Variation variation,

core-api/src/main/java/com/optimizely/ab/notification/ActivateNotificationListenerInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import javax.annotation.Nonnull;
2222

23-
import com.optimizely.ab.config.ExperimentCore;
23+
import com.optimizely.ab.config.Experiment;
2424
import com.optimizely.ab.config.Variation;
2525
import com.optimizely.ab.event.LogEvent;
2626

@@ -41,7 +41,7 @@ public interface ActivateNotificationListenerInterface {
4141
* @param variation - The variation that was returned from activate.
4242
* @param event - The impression event that was triggered.
4343
*/
44-
public void onActivate(@Nonnull ExperimentCore experiment,
44+
public void onActivate(@Nonnull Experiment experiment,
4545
@Nonnull String userId,
4646
@Nonnull Map<String, ?> attributes,
4747
@Nonnull Variation variation,

core-api/src/test/java/com/optimizely/ab/notification/ActivateNotificationListenerTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import static org.mockito.Mockito.mock;
2828

2929
import com.optimizely.ab.config.Experiment;
30-
import com.optimizely.ab.config.ExperimentCore;
3130
import com.optimizely.ab.config.Variation;
3231
import com.optimizely.ab.event.LogEvent;
3332

@@ -66,7 +65,7 @@ public void testNotifyWithActivateNotificationArg() {
6665
private static class ActivateNotificationHandler extends ActivateNotificationListener {
6766

6867
@Override
69-
public void onActivate(@Nonnull ExperimentCore experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
68+
public void onActivate(@Nonnull Experiment experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
7069
assertEquals(EXPERIMENT, experiment);
7170
assertEquals(USER_ID, userId);
7271
assertEquals(USER_ATTRIBUTES, attributes);

core-api/src/test/java/com/optimizely/ab/notification/NotificationCenterTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import static org.mockito.Mockito.mock;
3333

3434
import com.optimizely.ab.OptimizelyRuntimeException;
35-
import com.optimizely.ab.config.ExperimentCore;
35+
import com.optimizely.ab.config.Experiment;
3636
import com.optimizely.ab.config.Variation;
3737
import com.optimizely.ab.event.LogEvent;
3838
import com.optimizely.ab.internal.LogbackVerifier;
@@ -94,7 +94,7 @@ public void testAddDecisionNotificationTwice() {
9494
public void testAddActivateNotificationTwice() {
9595
ActivateNotificationListener listener = new ActivateNotificationListener() {
9696
@Override
97-
public void onActivate(@Nonnull ExperimentCore experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
97+
public void onActivate(@Nonnull Experiment experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
9898

9999
}
100100
};
@@ -109,7 +109,7 @@ public void onActivate(@Nonnull ExperimentCore experiment, @Nonnull String userI
109109
public void testAddActivateNotification() {
110110
int notificationId = notificationCenter.addActivateNotificationListener(new ActivateNotificationListener() {
111111
@Override
112-
public void onActivate(@Nonnull ExperimentCore experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
112+
public void onActivate(@Nonnull Experiment experiment, @Nonnull String userId, @Nonnull Map<String, ?> attributes, @Nonnull Variation variation, @Nonnull LogEvent event) {
113113

114114
}
115115
});

0 commit comments

Comments
 (0)