|
70 | 70 | import sdktest.Representations.SdkConfigParams; |
71 | 71 | import sdktest.Representations.SdkConfigDataSystemParams; |
72 | 72 | import sdktest.Representations.SdkConfigDataInitializerParams; |
73 | | -import sdktest.Representations.SdkConfigSynchronizersParams; |
74 | 73 | import sdktest.Representations.SdkConfigSynchronizerParams; |
75 | 74 | import sdktest.Representations.SdkConfigPollingParams; |
76 | 75 | import sdktest.Representations.SdkConfigStreamingParams; |
@@ -542,34 +541,23 @@ private LDConfig buildSdkConfig(SdkConfigParams params, String tag) { |
542 | 541 | } |
543 | 542 | } |
544 | 543 |
|
545 | | - // Configure synchronizers |
546 | | - if (params.dataSystem.synchronizers != null) { |
547 | | - List<DataSourceBuilder<Synchronizer>> synchronizers = new ArrayList<>(); |
548 | 544 |
|
549 | | - // Primary synchronizer |
550 | | - if (params.dataSystem.synchronizers.primary != null) { |
551 | | - DataSourceBuilder<Synchronizer> primary = createSynchronizer(params.dataSystem.synchronizers.primary, params.dataSystem.payloadFilter); |
552 | | - if (primary != null) { |
553 | | - synchronizers.add(primary); |
| 545 | + if (params.dataSystem.synchronizers != null && params.dataSystem.synchronizers.length > 0) { |
| 546 | + List<DataSourceBuilder<Synchronizer>> synchronizerBuilders = new ArrayList<>(); |
| 547 | + for (SdkConfigSynchronizerParams syncParams : params.dataSystem.synchronizers) { |
| 548 | + DataSourceBuilder<Synchronizer> sync = createSynchronizer(syncParams, params.dataSystem.payloadFilter); |
| 549 | + if (sync != null) { |
| 550 | + synchronizerBuilders.add(sync); |
554 | 551 | } |
555 | 552 | } |
556 | | - |
557 | | - // Secondary synchronizer (optional) |
558 | | - if (params.dataSystem.synchronizers.secondary != null) { |
559 | | - DataSourceBuilder<Synchronizer> secondary = createSynchronizer(params.dataSystem.synchronizers.secondary, params.dataSystem.payloadFilter); |
560 | | - if (secondary != null) { |
561 | | - synchronizers.add(secondary); |
562 | | - } |
563 | | - } |
564 | | - |
565 | | - if (!synchronizers.isEmpty()) { |
566 | | - dataSystemBuilder.synchronizers(synchronizers.toArray(new DataSourceBuilder[0])); |
| 553 | + if (!synchronizerBuilders.isEmpty()) { |
| 554 | + dataSystemBuilder.synchronizers(synchronizerBuilders.toArray(new DataSourceBuilder[0])); |
567 | 555 | } |
568 | 556 | } |
569 | 557 |
|
570 | | - // Configure FDv1 fallback synchronizer |
| 558 | + // Configure FDv1 fallback synchronizer (pick first polling, else first synchronizer) |
571 | 559 | SdkConfigSynchronizerParams fallbackSynchronizer = |
572 | | - selectFallbackSynchronizer(params.dataSystem); |
| 560 | + selectFallbackSynchronizer(params.dataSystem.synchronizers); |
573 | 561 | if (fallbackSynchronizer != null) { |
574 | 562 | // Set global polling endpoints if the fallback synchronizer has polling with custom base URI |
575 | 563 | if (fallbackSynchronizer.polling != null && |
@@ -624,32 +612,21 @@ private DataSourceBuilder<Synchronizer> createSynchronizer( |
624 | 612 |
|
625 | 613 | /** |
626 | 614 | * Selects the best synchronizer configuration to use for FDv1 fallback. |
627 | | - * Prefers polling synchronizers, falls back to primary synchronizer. |
| 615 | + * Prefers the first polling synchronizer in the list, otherwise the first synchronizer. |
628 | 616 | */ |
629 | 617 | private static SdkConfigSynchronizerParams selectFallbackSynchronizer( |
630 | | - SdkConfigDataSystemParams dataSystemParams) { |
631 | | - |
632 | | - // Prefer secondary polling synchronizer |
633 | | - if (dataSystemParams.synchronizers != null && |
634 | | - dataSystemParams.synchronizers.secondary != null && |
635 | | - dataSystemParams.synchronizers.secondary.polling != null) { |
636 | | - return dataSystemParams.synchronizers.secondary; |
637 | | - } |
638 | | - |
639 | | - // Fall back to primary polling synchronizer |
640 | | - if (dataSystemParams.synchronizers != null && |
641 | | - dataSystemParams.synchronizers.primary != null && |
642 | | - dataSystemParams.synchronizers.primary.polling != null) { |
643 | | - return dataSystemParams.synchronizers.primary; |
| 618 | + SdkConfigSynchronizerParams[] synchronizers) { |
| 619 | + if (synchronizers == null || synchronizers.length == 0) { |
| 620 | + return null; |
644 | 621 | } |
645 | | - |
646 | | - // Fall back to primary synchronizer (even if streaming) |
647 | | - if (dataSystemParams.synchronizers != null && |
648 | | - dataSystemParams.synchronizers.primary != null) { |
649 | | - return dataSystemParams.synchronizers.primary; |
| 622 | + // Prefer first polling synchronizer (FDv1 fallback is polling-based) |
| 623 | + for (SdkConfigSynchronizerParams sync : synchronizers) { |
| 624 | + if (sync.polling != null) { |
| 625 | + return sync; |
| 626 | + } |
650 | 627 | } |
651 | | - |
652 | | - return null; |
| 628 | + // Otherwise use first synchronizer (streaming; FDv1 will use default polling config) |
| 629 | + return synchronizers[0]; |
653 | 630 | } |
654 | 631 |
|
655 | 632 | /** |
|
0 commit comments