|
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