Skip to content

Commit dbe8321

Browse files
committed
version changes done no test fixes
1 parent 53789f0 commit dbe8321

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

src/main/java/com/synopsys/integration/detect/configuration/DetectConfigurationFactory.java

+16-11
Original file line numberDiff line numberDiff line change
@@ -331,12 +331,10 @@ public ProjectSyncOptions createDetectProjectServiceOptions(BlackDuckRunData bla
331331
String projectDescription = detectConfiguration.getNullableValue(DetectProperties.DETECT_PROJECT_DESCRIPTION);
332332
String projectVersionNotes = detectConfiguration.getNullableValue(DetectProperties.DETECT_PROJECT_VERSION_NOTES);
333333

334-
// TODO insert version check here, 10 and later use this
335-
336334
List<ProjectCloneCategoriesType> cloneCategories;
337335
AllNoneEnumList<ProjectCloneCategoriesType> categoriesEnum = detectConfiguration.getValue(DetectProperties.DETECT_PROJECT_CLONE_CATEGORIES);
338336

339-
if (canSendSummaryData(null)) {
337+
if (canSendSummaryData(blackDuckRunData.getBlackDuckServerVersion())) {
340338
cloneCategories = categoriesEnum.representedValuesStreamlined();
341339
} else {
342340
cloneCategories = categoriesEnum.representedValues();
@@ -542,18 +540,25 @@ private List<String> collectDirectoryExclusions(@NotNull List<String> givenExclu
542540
return directoryExclusionPatterns;
543541
}
544542

545-
private boolean canSendSummaryData(BlackDuckConnectivityResult blackDuckConnectivityResult) {
546-
BlackDuckVersionParser parser = new BlackDuckVersionParser();
547-
Optional<BlackDuckVersion> blackDuckServerVersion = parser.parse(blackDuckConnectivityResult.getContactedServerVersion());
548-
BlackDuckVersion minVersion = new BlackDuckVersion(2023, 1, 1);
543+
/**
544+
* Newer BlackDuck servers allow us to send ALL and null values for project categories. BlackDuck will then
545+
* determine the appropriate values to display in the UI. For older servers we have to send all the values that we know
546+
* about, for all, which can cause problems if we send a value Detect knows about but an older BlackDuck server does not.
547+
* Eventually we can pull this code once all servers we support are 2023.10.0 or higher.
548+
*
549+
* @param blackDuckVersion the version of the BlackDuck server specified in blackduck.url
550+
* @return true if we can optimize the categories argument, false otherwise
551+
*/
552+
private boolean canSendSummaryData(BlackDuckVersion blackDuckVersion) {
553+
boolean canSendSummaryData = false;
549554

550-
boolean waitAtScanLevel = false;
555+
BlackDuckVersion minVersion = new BlackDuckVersion(2023, 10, 0);
551556

552-
if (blackDuckServerVersion.isPresent() && blackDuckServerVersion.get().isAtLeast(minVersion)) {
553-
waitAtScanLevel = true;
557+
if (blackDuckVersion != null && blackDuckVersion.isAtLeast(minVersion)) {
558+
canSendSummaryData = true;
554559
}
555560

556-
return waitAtScanLevel;
561+
return canSendSummaryData;
557562
}
558563

559564
public Optional<String> getContainerScanFilePath() {

src/main/java/com/synopsys/integration/detect/lifecycle/boot/product/ProductBoot.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ private BlackDuckRunData getBlackDuckRunData(
118118
blackDuckDecision.scanMode(),
119119
blackDuckServicesFactory,
120120
phoneHomeManager,
121-
blackDuckConnectivityResult.getBlackDuckServerConfig(),
121+
blackDuckConnectivityResult,
122122
waitAtScanLevel
123123
);
124124
} else {
125125
logger.debug("Skipping phone home due to Black Duck global settings.");
126-
bdRunData = BlackDuckRunData.onlineNoPhoneHome(blackDuckDecision.scanMode(), blackDuckServicesFactory, blackDuckConnectivityResult.getBlackDuckServerConfig(), waitAtScanLevel);
126+
bdRunData = BlackDuckRunData.onlineNoPhoneHome(blackDuckDecision.scanMode(), blackDuckServicesFactory, blackDuckConnectivityResult, waitAtScanLevel);
127127
}
128128
return bdRunData;
129129
} else {

src/main/java/com/synopsys/integration/detect/lifecycle/run/data/BlackDuckRunData.java

+18-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
import com.synopsys.integration.blackduck.configuration.BlackDuckServerConfig;
66
import com.synopsys.integration.blackduck.service.BlackDuckServicesFactory;
7+
import com.synopsys.integration.blackduck.version.BlackDuckVersion;
78
import com.synopsys.integration.detect.configuration.enumeration.BlackduckScanMode;
9+
import com.synopsys.integration.detect.lifecycle.boot.product.BlackDuckConnectivityResult;
10+
import com.synopsys.integration.detect.lifecycle.boot.product.version.BlackDuckVersionParser;
811
import com.synopsys.integration.detect.workflow.phonehome.PhoneHomeManager;
912

1013
public class BlackDuckRunData {
@@ -13,19 +16,24 @@ public class BlackDuckRunData {
1316
private final BlackDuckServicesFactory blackDuckServicesFactory;
1417
private final BlackduckScanMode scanMode;
1518
private final boolean waitAtScanLevel;
19+
private final BlackDuckVersion blackDuckServerVersion;
1620

1721
protected BlackDuckRunData(
1822
PhoneHomeManager phoneHomeManager,
19-
BlackDuckServerConfig blackDuckServerConfig,
23+
BlackDuckConnectivityResult blackDuckConnectivityResult,
2024
BlackDuckServicesFactory blackDuckServicesFactory,
2125
BlackduckScanMode scanMode,
2226
boolean waitAtScanLevel
2327
) {
2428
this.phoneHomeManager = phoneHomeManager;
25-
this.blackDuckServerConfig = blackDuckServerConfig;
29+
this.blackDuckServerConfig = blackDuckConnectivityResult.getBlackDuckServerConfig();
2630
this.blackDuckServicesFactory = blackDuckServicesFactory;
2731
this.scanMode = scanMode;
2832
this.waitAtScanLevel = waitAtScanLevel;
33+
34+
BlackDuckVersionParser parser = new BlackDuckVersionParser();
35+
Optional<BlackDuckVersion> blackDuckServerVersion = parser.parse(blackDuckConnectivityResult.getContactedServerVersion());
36+
this.blackDuckServerVersion = blackDuckServerVersion.isPresent() ? blackDuckServerVersion.get() : null;
2937
}
3038

3139
public boolean isOnline() {
@@ -52,14 +60,14 @@ public static BlackDuckRunData online(
5260
BlackduckScanMode scanMode,
5361
BlackDuckServicesFactory blackDuckServicesFactory,
5462
PhoneHomeManager phoneHomeManager,
55-
BlackDuckServerConfig blackDuckServerConfig,
63+
BlackDuckConnectivityResult blackDuckConnectivityResult,
5664
boolean waitAtScanLevel
5765
) {
58-
return new BlackDuckRunData(phoneHomeManager, blackDuckServerConfig, blackDuckServicesFactory, scanMode, waitAtScanLevel);
66+
return new BlackDuckRunData(phoneHomeManager, blackDuckConnectivityResult, blackDuckServicesFactory, scanMode, waitAtScanLevel);
5967
}
6068

61-
public static BlackDuckRunData onlineNoPhoneHome(BlackduckScanMode scanMode, BlackDuckServicesFactory blackDuckServicesFactory, BlackDuckServerConfig blackDuckServerConfig, boolean waitAtScanLevel) {
62-
return new BlackDuckRunData(null, blackDuckServerConfig, blackDuckServicesFactory, scanMode, waitAtScanLevel);
69+
public static BlackDuckRunData onlineNoPhoneHome(BlackduckScanMode scanMode, BlackDuckServicesFactory blackDuckServicesFactory, BlackDuckConnectivityResult blackDuckConnectivityResult, boolean waitAtScanLevel) {
70+
return new BlackDuckRunData(null, blackDuckConnectivityResult, blackDuckServicesFactory, scanMode, waitAtScanLevel);
6371
}
6472

6573
public Boolean isNonPersistent() {
@@ -73,4 +81,8 @@ public BlackduckScanMode getScanMode() {
7381
public boolean shouldWaitAtScanLevel() {
7482
return waitAtScanLevel;
7583
}
84+
85+
public BlackDuckVersion getBlackDuckServerVersion() {
86+
return blackDuckServerVersion;
87+
}
7688
}

0 commit comments

Comments
 (0)