diff --git a/lib/datasource/maven/index.js b/lib/datasource/maven/index.js index c3bdff6df3d9ad3970b6dd4e9eec9573e862821a..463587f7bed2033418b8a8cc064d420ee10c725f 100644 --- a/lib/datasource/maven/index.js +++ b/lib/datasource/maven/index.js @@ -69,12 +69,13 @@ async function getPkgReleases({ lookupName, registryUrls }) { } function getDependencyParts(lookupName) { - const [group, name] = lookupName.split('/'); + const [group, name] = lookupName.split(':'); + const dependencyUrl = `${group.replace(/\./g, '/')}/${name}`; return { - display: lookupName.replace('/', ':'), + display: lookupName, group, name, - dependencyUrl: generateMavenUrl(lookupName), + dependencyUrl, }; } @@ -150,11 +151,6 @@ async function downloadHttpProtocol(pkgUrl) { return raw.body; } -function generateMavenUrl(lookupName) { - const [group, name] = lookupName.split('/'); - return group.replace(/\./g, '/') + `/${name}`; -} - function isMavenCentral(pkgUrl) { return pkgUrl.host === 'central.maven.org'; } diff --git a/lib/manager/maven/extract.js b/lib/manager/maven/extract.js index e35460f12b9c7808d0aa4fcc3478221ae38f6312..583a9819ea2a0e9086668e2027c554607ce2cdd8 100644 --- a/lib/manager/maven/extract.js +++ b/lib/manager/maven/extract.js @@ -24,7 +24,7 @@ function depFromNode(node) { const artifactId = node.valueWithPath('artifactId'); const currentValue = node.valueWithPath('version'); if (groupId && artifactId && currentValue) { - const depName = `${groupId}/${artifactId}`; + const depName = `${groupId}:${artifactId}`; const result = { depName, currentValue, diff --git a/test/datasource/maven.spec.js b/test/datasource/maven.spec.js index 56b42d72a10d8481edb742e57e41d7f5a86ef0fe..efc44f353ff061edc0434db77bd563890d19016e 100644 --- a/test/datasource/maven.spec.js +++ b/test/datasource/maven.spec.js @@ -53,7 +53,7 @@ describe('datasource/maven', () => { it('should return empty if library is not found', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'unknown/unknown', + lookupName: 'unknown:unknown', registryUrls: [ 'file://test/_fixtures/gradle/maven/repo1.maven.org/maven2/', ], @@ -64,7 +64,7 @@ describe('datasource/maven', () => { it('should simply return all versions of a specific library', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'org.hamcrest/hamcrest-core', + lookupName: 'org.hamcrest:hamcrest-core', registryUrls: [ 'file://test/_fixtures/gradle/maven/repo1.maven.org/maven2/', 'file://test/_fixtures/gradle/maven/custom_maven_repo/maven2/', @@ -86,7 +86,7 @@ describe('datasource/maven', () => { it('should return versions in all repositories for a specific library', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: [ 'file://test/_fixtures/gradle/maven/repo1.maven.org/maven2/', 'file://test/_fixtures/gradle/maven/custom_maven_repo/maven2/', @@ -100,7 +100,7 @@ describe('datasource/maven', () => { it('should return all versions of a specific library for http repositories', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: ['http://central.maven.org/maven2/'], }); expect(releases.releases).toEqual(generateReleases(MYSQL_VERSIONS)); @@ -109,7 +109,7 @@ describe('datasource/maven', () => { it('should return all versions of a specific library if a repository fails', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: [ 'http://central.maven.org/maven2/', 'http://failed_repo/', @@ -130,7 +130,7 @@ describe('datasource/maven', () => { try { await datasource.getPkgReleases({ ...config, - lookupName: 'org/artifact', + lookupName: 'org:artifact', registryUrls: ['http://central.maven.org/maven2/'], }); } catch (e) { @@ -141,7 +141,7 @@ describe('datasource/maven', () => { it('should return all versions of a specific library if a repository fails because invalid protocol', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: [ 'http://central.maven.org/maven2/', 'http://failed_repo/', @@ -167,7 +167,7 @@ describe('datasource/maven', () => { .reply(200, invalidMavenMetadata); const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: [ 'http://central.maven.org/maven2/', 'http://invalid_metadata_repo/maven2/', @@ -185,7 +185,7 @@ describe('datasource/maven', () => { .reply(200, invalidMavenMetadata); const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: [ 'http://central.maven.org/maven2/', 'http://invalid_metadata_repo/maven2/', @@ -197,7 +197,7 @@ describe('datasource/maven', () => { it('should return all versions of a specific library if a repository does not end with /', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', registryUrls: ['http://central.maven.org/maven2'], }); expect(releases).not.toBeNull(); @@ -206,7 +206,7 @@ describe('datasource/maven', () => { it('should return null if no repositories defined', async () => { const releases = await datasource.getPkgReleases({ ...config, - lookupName: 'mysql/mysql-connector-java', + lookupName: 'mysql:mysql-connector-java', }); expect(releases).toBeNull(); }); diff --git a/test/manager/maven/__snapshots__/extract.spec.js.snap b/test/manager/maven/__snapshots__/extract.spec.js.snap index 987c3ad64c4deb5ffd6dc13d24ffd76ba0a1194a..c896b7798167fd305c68b0c1f9e7524800faf86f 100644 --- a/test/manager/maven/__snapshots__/extract.spec.js.snap +++ b/test/manager/maven/__snapshots__/extract.spec.js.snap @@ -7,7 +7,7 @@ Object { Object { "currentValue": "42", "datasource": "maven", - "depName": "org.example/parent", + "depName": "org.example:parent", "fileReplacePosition": 186, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", @@ -16,7 +16,7 @@ Object { Object { "currentValue": "0.0.1", "datasource": "maven", - "depName": "org.example/foo", + "depName": "org.example:foo", "fileReplacePosition": 757, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", @@ -25,7 +25,7 @@ Object { Object { "currentValue": "1.0.0", "datasource": "maven", - "depName": "org.example/bar", + "depName": "org.example:bar", "fileReplacePosition": 905, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", @@ -34,7 +34,7 @@ Object { Object { "currentValue": "1.8.1", "datasource": "maven", - "depName": "org.apache.maven.scm/maven-scm-provider-gitexe", + "depName": "org.apache.maven.scm:maven-scm-provider-gitexe", "fileReplacePosition": 1337, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", @@ -42,23 +42,23 @@ Object { }, Object { "currentValue": "0.0.1", - "depName": "org.example/\${artifact-id-placeholder}", + "depName": "org.example:\${artifact-id-placeholder}", "skipReason": "name-placeholder", }, Object { "currentValue": "0.0.1", - "depName": "\${group-id-placeholder}/baz", + "depName": "\${group-id-placeholder}:baz", "skipReason": "name-placeholder", }, Object { "currentValue": "\${resourceServerVersion}", - "depName": "org.example/quux", + "depName": "org.example:quux", "skipReason": "version-placeholder", }, Object { "currentValue": "1.2.3", "datasource": "maven", - "depName": "org.example/quuz", + "depName": "org.example:quuz", "fileReplacePosition": 2529, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", @@ -66,18 +66,18 @@ Object { }, Object { "currentValue": "it's not a version", - "depName": "org.example/quuuz", + "depName": "org.example:quuuz", "skipReason": "not-a-version", }, Object { "currentValue": "\${profile-placeholder}", - "depName": "org.example/profile-artifact", + "depName": "org.example:profile-artifact", "skipReason": "version-placeholder", }, Object { "currentValue": "2.17", "datasource": "maven", - "depName": "org.apache.maven.plugins/maven-checkstyle-plugin", + "depName": "org.apache.maven.plugins:maven-checkstyle-plugin", "fileReplacePosition": 3218, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", diff --git a/test/manager/maven/index.spec.js b/test/manager/maven/index.spec.js index f86894ca106e6e872aa3c61e55d178fa79a15aae..38b53aba5b8ff59215250c1183b345e73f70cca5 100644 --- a/test/manager/maven/index.spec.js +++ b/test/manager/maven/index.spec.js @@ -10,7 +10,7 @@ const pomContent = fs.readFileSync( 'utf8' ); -const findFn = ({ depName }) => depName === 'org.example/quuz'; +const findFn = ({ depName }) => depName === 'org.example:quuz'; describe('manager/maven', () => { describe('extractAllPackageFiles', () => {