|
19 | 19 | import com.optimizely.ab.annotations.VisibleForTesting;
|
20 | 20 | import com.optimizely.ab.bucketing.Bucketer;
|
21 | 21 | import com.optimizely.ab.bucketing.UserProfile;
|
22 |
| -import com.optimizely.ab.internal.UserProfileUtils; |
23 | 22 | import com.optimizely.ab.config.Attribute;
|
24 | 23 | import com.optimizely.ab.config.EventType;
|
25 | 24 | import com.optimizely.ab.config.Experiment;
|
|
36 | 35 | import com.optimizely.ab.event.LogEvent;
|
37 | 36 | import com.optimizely.ab.event.internal.BuildVersionInfo;
|
38 | 37 | import com.optimizely.ab.event.internal.EventBuilder;
|
39 |
| -import com.optimizely.ab.event.internal.EventBuilderV1; |
40 | 38 | import com.optimizely.ab.event.internal.EventBuilderV2;
|
41 | 39 | import com.optimizely.ab.event.internal.payload.Event.ClientEngine;
|
42 | 40 | import com.optimizely.ab.internal.EventTagUtils;
|
43 | 41 | import com.optimizely.ab.internal.ProjectValidationUtils;
|
44 | 42 | import com.optimizely.ab.internal.ReservedEventKey;
|
45 |
| -import com.optimizely.ab.notification.NotificationListener; |
| 43 | +import com.optimizely.ab.internal.UserProfileUtils; |
46 | 44 | import com.optimizely.ab.notification.NotificationBroadcaster;
|
47 |
| - |
| 45 | +import com.optimizely.ab.notification.NotificationListener; |
48 | 46 | import org.slf4j.Logger;
|
49 | 47 | import org.slf4j.LoggerFactory;
|
50 | 48 |
|
| 49 | +import javax.annotation.CheckForNull; |
| 50 | +import javax.annotation.Nonnull; |
| 51 | +import javax.annotation.Nullable; |
| 52 | +import javax.annotation.concurrent.ThreadSafe; |
51 | 53 | import java.util.ArrayList;
|
52 | 54 | import java.util.Collections;
|
53 | 55 | import java.util.HashMap;
|
54 | 56 | import java.util.List;
|
55 | 57 | import java.util.Map;
|
56 | 58 |
|
57 |
| -import javax.annotation.CheckForNull; |
58 |
| -import javax.annotation.Nonnull; |
59 |
| -import javax.annotation.Nullable; |
60 |
| -import javax.annotation.concurrent.ThreadSafe; |
61 |
| - |
62 | 59 | /**
|
63 | 60 | * Top-level container class for Optimizely functionality.
|
64 | 61 | * Thread-safe, so can be created as a singleton and safely passed around.
|
@@ -464,7 +461,14 @@ private static ProjectConfig getProjectConfig(String datafile) throws ConfigPars
|
464 | 461 | throw new ConfigParseException("Unable to parse empty datafile.");
|
465 | 462 | }
|
466 | 463 |
|
467 |
| - return DefaultConfigParser.getInstance().parseProjectConfig(datafile); |
| 464 | + ProjectConfig projectConfig = DefaultConfigParser.getInstance().parseProjectConfig(datafile); |
| 465 | + |
| 466 | + if (projectConfig.getVersion().equals("1")) { |
| 467 | + throw new ConfigParseException("This version of the Java SDK does not support version 1 datafiles. " + |
| 468 | + "Please use a version 2 or 3 datafile with this SDK."); |
| 469 | + } |
| 470 | + |
| 471 | + return projectConfig; |
468 | 472 | }
|
469 | 473 |
|
470 | 474 | @Nullable
|
@@ -733,11 +737,7 @@ public Optimizely build() throws ConfigParseException {
|
733 | 737 | }
|
734 | 738 |
|
735 | 739 | if (eventBuilder == null) {
|
736 |
| - if (projectConfig.getVersion().equals(ProjectConfig.Version.V1.toString())) { |
737 |
| - eventBuilder = new EventBuilderV1(); |
738 |
| - } else { |
739 |
| - eventBuilder = new EventBuilderV2(clientEngine, clientVersion); |
740 |
| - } |
| 740 | + eventBuilder = new EventBuilderV2(clientEngine, clientVersion); |
741 | 741 | }
|
742 | 742 |
|
743 | 743 | if (errorHandler == null) {
|
|
0 commit comments