diff --git a/src/main/java/com/jfrog/ide/idea/inspections/AbstractInspection.java b/src/main/java/com/jfrog/ide/idea/inspections/AbstractInspection.java index 40a21fc3..abf0fad6 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/AbstractInspection.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/AbstractInspection.java @@ -233,10 +233,9 @@ private List getMatchDependencies(DescriptorFileTreeNode file, S * @return true if the node matches the component name */ boolean isNodeMatch(DependencyNode node, String componentName) { - String artifactID = node.getComponentIdWithoutPrefix(); ImpactTree impactTree = node.getImpactTree(); String versionPrefix = ":"; - return StringUtils.equals(extractArtifactIdWithoutVersion(artifactID), componentName) || impactTree.contains(componentName+versionPrefix); + return impactTree.contains(this.extractArtifactIdWithoutVersion(componentName)+versionPrefix); } abstract UpgradeVersion getUpgradeVersion(String componentName, String fixVersion, Collection issues, String descriptorPath); diff --git a/src/main/java/com/jfrog/ide/idea/inspections/GoInspection.java b/src/main/java/com/jfrog/ide/idea/inspections/GoInspection.java index ec32e9b5..41a299a8 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/GoInspection.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/GoInspection.java @@ -66,7 +66,6 @@ String createComponentName(PsiElement element) { VgoModuleSpec goElement = ((VgoModuleSpec) element); if (goElement.getModuleVersion() != null) { String version = goElement.getModuleVersion().getText(); - // String leading "v" from version version = StringUtils.strip(version, "v"); return String.join(":", goElement.getIdentifier().getText(), version); } diff --git a/src/main/java/com/jfrog/ide/idea/inspections/GradleGroovyInspection.java b/src/main/java/com/jfrog/ide/idea/inspections/GradleGroovyInspection.java index f09c6186..18b3ce40 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/GradleGroovyInspection.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/GradleGroovyInspection.java @@ -43,12 +43,7 @@ public GradleGroovyInspection() { * @return the value of the literal */ public static String getLiteralValue(GrLiteral literal) { - String artifact = Objects.toString((literal).getValue(), ""); - int versionIndex = artifact.lastIndexOf(':'); - if (versionIndex == -1) { - return artifact; - } - return artifact.substring(0, versionIndex); + return Objects.toString((literal).getValue(), ""); } public static boolean isNamedArgumentComponent(PsiElement element) { @@ -122,7 +117,9 @@ String createComponentName(PsiElement element) { // implementation group: 'j', name: 'k', version: 'l' return String.join(":", extractExpression(element, GRADLE_GROUP_KEY), - extractExpression(element, GRADLE_NAME_KEY)); + extractExpression(element, GRADLE_NAME_KEY), + extractExpression(element, GRADLE_VERSION_KEY)); + } if (element instanceof GrLiteral) { // implementation 'g:h:i' diff --git a/src/main/java/com/jfrog/ide/idea/inspections/GradleKotlinInspection.java b/src/main/java/com/jfrog/ide/idea/inspections/GradleKotlinInspection.java index 77dbda1f..10941e2d 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/GradleKotlinInspection.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/GradleKotlinInspection.java @@ -77,14 +77,14 @@ String createComponentName(PsiElement element) { List argumentList = ((KtValueArgumentList) element).getArguments(); if (argumentList.size() == 1) { // "commons-collections:commons-collections:3.2.2" - String artifactId = extractArgument(argumentList.get(0)); - return StringUtils.substringBeforeLast(artifactId, ":"); + return extractArgument(argumentList.get(0)); } if (argumentList.size() >= 3) { // "commons-collections", "commons-collections" return String.join(":", extractArgument(argumentList.get(0)), - extractArgument(argumentList.get(1)) + extractArgument(argumentList.get(1)), + extractArgument(argumentList.get(2)) ); } return ""; diff --git a/src/main/java/com/jfrog/ide/idea/inspections/MavenInspection.java b/src/main/java/com/jfrog/ide/idea/inspections/MavenInspection.java index eef7c463..ce2ed0d4 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/MavenInspection.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/MavenInspection.java @@ -89,8 +89,10 @@ String createComponentName(PsiElement element) { return null; } DomElement domElement = DomManager.getDomManager(element.getProject()).getDomElement((XmlTag) element); + if (domElement instanceof MavenDomArtifactCoordinates) { - return String.join(":", groupId.getValue().getText(), artifactId.getValue().getText()); + String version = ((MavenDomArtifactCoordinates) domElement).getVersion().getStringValue(); + return String.join(":", groupId.getValue().getText(), artifactId.getValue().getText(), version); } return null; } diff --git a/src/main/java/com/jfrog/ide/idea/inspections/upgradeversion/GradleGroovyUpgradeVersion.java b/src/main/java/com/jfrog/ide/idea/inspections/upgradeversion/GradleGroovyUpgradeVersion.java index 4ce55163..b3f811a1 100644 --- a/src/main/java/com/jfrog/ide/idea/inspections/upgradeversion/GradleGroovyUpgradeVersion.java +++ b/src/main/java/com/jfrog/ide/idea/inspections/upgradeversion/GradleGroovyUpgradeVersion.java @@ -45,7 +45,7 @@ public void upgradeComponentVersion(@NotNull Project project, @NotNull ProblemDe if (element instanceof GrLiteral) { // 'com:guava:1.1.1' >> 'com:guava:2.2.2' String componentString = getLiteralValue((GrLiteral) element); - String fixedComponentString = String.join(":", stripVersion(componentString), fixVersion); + String fixedComponentString = String.join(":", componentString, fixVersion); element.replace(psiFactory.createExpressionFromText(StringUtils.wrap(fixedComponentString, "'"))); } } diff --git a/src/main/java/com/jfrog/ide/idea/navigation/NavigationService.java b/src/main/java/com/jfrog/ide/idea/navigation/NavigationService.java index 4ed11d93..5b6af74e 100644 --- a/src/main/java/com/jfrog/ide/idea/navigation/NavigationService.java +++ b/src/main/java/com/jfrog/ide/idea/navigation/NavigationService.java @@ -49,10 +49,8 @@ public void addNavigation(DependencyNode treeNode, PsiElement navigationTargetEl } NavigationTarget navigationTarget = new NavigationTarget(navigationTargetElement, document.getLineNumber(navigationTargetElement.getTextOffset()), componentName); Set navigationTargets = navigationMap.get(treeNode); - if (navigationTargets == null) { navigationTargets = new HashSet<>(Collections.singletonList(navigationTarget)); - navigationMap.put(treeNode, navigationTargets); return; } diff --git a/src/main/java/com/jfrog/ide/idea/scan/MavenScanner.java b/src/main/java/com/jfrog/ide/idea/scan/MavenScanner.java index 0bdd0fcb..64c1e77a 100644 --- a/src/main/java/com/jfrog/ide/idea/scan/MavenScanner.java +++ b/src/main/java/com/jfrog/ide/idea/scan/MavenScanner.java @@ -178,7 +178,7 @@ protected List groupDependenciesToDescriptorNodes(Collection> visitedComponents = new HashMap<>(); for (DependencyNode dependencyNode : depScanResults) { String vulnerableDepId = dependencyNode.getComponentIdWithoutPrefix(); - Set affectedModulesIds = getDependentModules(vulnerableDepId, depTree, parents, visitedComponents); + Set affectedModulesIds = getDependentModules(vulnerableDepId, depTree, parents, visitedComponents); for (String descriptorId : affectedModulesIds) { String descriptorPath = depTree.nodes().get(descriptorId).getDescriptorFilePath(); descriptorMap.putIfAbsent(descriptorPath, new DescriptorFileTreeNode(descriptorPath)); @@ -187,6 +187,7 @@ protected List groupDependenciesToDescriptorNodes(Collection data() { return Arrays.asList(new Object[][]{ {"a:b:c", "a:b"}, - {"a:b:c:d", "a:b:c"}, - {"a", "a"}, + {"a:b:c:d", "a:b"}, + {"a:b", "a:b"}, {"xyz", "xyz"} }); } diff --git a/src/test/java/com/jfrog/ide/idea/inspections/GradleKotlinInspectionTest.java b/src/test/java/com/jfrog/ide/idea/inspections/GradleKotlinInspectionTest.java index 64419792..f8543e33 100644 --- a/src/test/java/com/jfrog/ide/idea/inspections/GradleKotlinInspectionTest.java +++ b/src/test/java/com/jfrog/ide/idea/inspections/GradleKotlinInspectionTest.java @@ -11,8 +11,8 @@ public class GradleKotlinInspectionTest extends InspectionsTestBase { // files as groovy-script. private static final String PACKAGE_DESCRIPTOR = "build.gradle.kts"; private final InspectionTestDependency[] DEPENDENCIES = { - new InspectionTestDependency(119, "a", "b"), - new InspectionTestDependency(144, "d", "e"), + new InspectionTestDependency(119, "a", "b:c"), + new InspectionTestDependency(144, "d", "e:f"), }; private final int[] NON_DEPENDENCIES_POSITIONS = {273, 338};