From 5a4b7eead13cb85e05ad30f30bd42d2b3f651daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wielgo=C5=82aski?= <piotr.wielgolaski@tomtom.com> Date: Tue, 31 May 2022 16:23:47 +0200 Subject: [PATCH] feat(maven): Parse maven dependency.optional into depType (#15775) --- .../manager/maven/__fixtures__/simple.pom.xml | 6 ++++++ .../maven/__snapshots__/extract.spec.ts.snap | 19 +++++++++++++++---- .../maven/__snapshots__/index.spec.ts.snap | 19 +++++++++++++++---- lib/modules/manager/maven/extract.spec.ts | 5 +++++ lib/modules/manager/maven/extract.ts | 2 ++ lib/modules/manager/maven/index.spec.ts | 4 ++++ 6 files changed, 47 insertions(+), 8 deletions(-) diff --git a/lib/modules/manager/maven/__fixtures__/simple.pom.xml b/lib/modules/manager/maven/__fixtures__/simple.pom.xml index 46de0f9ced..d4ff6503cf 100644 --- a/lib/modules/manager/maven/__fixtures__/simple.pom.xml +++ b/lib/modules/manager/maven/__fixtures__/simple.pom.xml @@ -132,6 +132,12 @@ <artifactId>hard-range</artifactId> <version>[1.0.0]</version> </dependency> + <dependency> + <groupId>org.example</groupId> + <artifactId>optional</artifactId> + <version>1.0.0</version> + <optional>true</optional> + </dependency> </dependencies> <distributionManagement> diff --git a/lib/modules/manager/maven/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/maven/__snapshots__/extract.spec.ts.snap index fc55da77b1..8862b7d616 100644 --- a/lib/modules/manager/maven/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/maven/__snapshots__/extract.spec.ts.snap @@ -147,11 +147,22 @@ Object { "https://maven.atlassian.com/content/repositories/atlassian-public/", ], }, + Object { + "currentValue": "1.0.0", + "datasource": "maven", + "depName": "org.example:optional", + "depType": "optional", + "fileReplacePosition": 3555, + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + "https://maven.atlassian.com/content/repositories/atlassian-public/", + ], + }, Object { "currentValue": "1.0", "datasource": "maven", "depName": "org.example:relocation-artifact", - "fileReplacePosition": 3612, + "fileReplacePosition": 3787, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -162,7 +173,7 @@ Object { "datasource": "maven", "depName": "org.example:profile-artifact", "depType": "compile", - "fileReplacePosition": 3944, + "fileReplacePosition": 4119, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -173,7 +184,7 @@ Object { "datasource": "maven", "depName": "org.example:profile-build-artefact", "depType": "build", - "fileReplacePosition": 4200, + "fileReplacePosition": 4375, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -184,7 +195,7 @@ Object { "datasource": "maven", "depName": "org.apache.maven.plugins:maven-checkstyle-plugin", "depType": "build", - "fileReplacePosition": 4594, + "fileReplacePosition": 4769, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", diff --git a/lib/modules/manager/maven/__snapshots__/index.spec.ts.snap b/lib/modules/manager/maven/__snapshots__/index.spec.ts.snap index 044d08501f..70030a4f34 100644 --- a/lib/modules/manager/maven/__snapshots__/index.spec.ts.snap +++ b/lib/modules/manager/maven/__snapshots__/index.spec.ts.snap @@ -152,11 +152,22 @@ Array [ "https://maven.atlassian.com/content/repositories/atlassian-public/", ], }, + Object { + "currentValue": "1.0.0", + "datasource": "maven", + "depName": "org.example:optional", + "depType": "optional", + "fileReplacePosition": 3555, + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + "https://maven.atlassian.com/content/repositories/atlassian-public/", + ], + }, Object { "currentValue": "1.0", "datasource": "maven", "depName": "org.example:relocation-artifact", - "fileReplacePosition": 3612, + "fileReplacePosition": 3787, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -167,7 +178,7 @@ Array [ "datasource": "maven", "depName": "org.example:profile-artifact", "depType": "compile", - "fileReplacePosition": 3944, + "fileReplacePosition": 4119, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -179,7 +190,7 @@ Array [ "datasource": "maven", "depName": "org.example:profile-build-artefact", "depType": "build", - "fileReplacePosition": 4200, + "fileReplacePosition": 4375, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", @@ -190,7 +201,7 @@ Array [ "datasource": "maven", "depName": "org.apache.maven.plugins:maven-checkstyle-plugin", "depType": "build", - "fileReplacePosition": 4594, + "fileReplacePosition": 4769, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://maven.atlassian.com/content/repositories/atlassian-public/", diff --git a/lib/modules/manager/maven/extract.spec.ts b/lib/modules/manager/maven/extract.spec.ts index 60f925a758..5d26683b3d 100644 --- a/lib/modules/manager/maven/extract.spec.ts +++ b/lib/modules/manager/maven/extract.spec.ts @@ -86,6 +86,11 @@ describe('modules/manager/maven/extract', () => { currentValue: '[1.0.0]', depType: 'compile', }, + { + depName: 'org.example:optional', + currentValue: '1.0.0', + depType: 'optional', + }, { depName: 'org.example:relocation-artifact', currentValue: '1.0', diff --git a/lib/modules/manager/maven/extract.ts b/lib/modules/manager/maven/extract.ts index 22960d0712..5f80d4bdb2 100644 --- a/lib/modules/manager/maven/extract.ts +++ b/lib/modules/manager/maven/extract.ts @@ -77,6 +77,8 @@ function depFromNode( case 'dependency': if (underBuildSettingsElement) { depType = 'build'; + } else if (node.valueWithPath('optional')?.trim() === 'true') { + depType = 'optional'; } else { depType = node.valueWithPath('scope')?.trim() ?? 'compile'; // maven default scope is compile } diff --git a/lib/modules/manager/maven/index.spec.ts b/lib/modules/manager/maven/index.spec.ts index 3cdc1c070c..592c74da21 100644 --- a/lib/modules/manager/maven/index.spec.ts +++ b/lib/modules/manager/maven/index.spec.ts @@ -104,6 +104,10 @@ describe('modules/manager/maven/index', () => { currentValue: "it's not a version", }, { depName: 'org.example:hard-range', currentValue: '[1.0.0]' }, + { + depName: 'org.example:optional', + currentValue: '1.0.0', + }, { depName: 'org.example:relocation-artifact', currentValue: '1.0', -- GitLab