From 10d22bc5343d74b6b31bd7b1f06f8d33daf8c455 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Mon, 30 Jan 2023 19:49:12 +0100 Subject: [PATCH] Set "gradle" buildSystem for "gradle-project-kotlin" types Prior to this commit, projects with type "gradle-project-kotlin" would not get the expected "gradle" buildSystem property, unlike the Groovy flavor with "gradle-project". This value would be set as empty. This commit ensures that the detection algorithm supports project types with multiple "-" within their values. Fixes gh-1370 --- .../actuate/stat/ProjectRequestDocumentFactory.java | 4 ++-- .../stat/ProjectRequestDocumentFactoryTests.java | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java b/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java index dfaaa9e8..43e0bdb4 100644 --- a/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java +++ b/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,7 +99,7 @@ public class ProjectRequestDocumentFactory { private String determineBuildSystem(ProjectRequest request) { String type = request.getType(); String[] elements = type.split("-"); - return (elements.length == 2) ? elements[0] : null; + return (elements.length >= 2) ? elements[0] : null; } private VersionInformation determineVersionInformation(ProjectRequest request) { diff --git a/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactoryTests.java b/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactoryTests.java index 004e94a8..cf0d93d2 100755 --- a/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactoryTests.java +++ b/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -217,6 +217,16 @@ class ProjectRequestDocumentFactoryTests { assertThat(document.getErrorState().getDependencies()).isNull(); } + @Test + void createDocumentExtendedType() { + ProjectRequest request = createProjectRequest(); + request.setType("gradle-project-kotlin"); + ProjectGeneratedEvent event = createProjectGeneratedEvent(request); + ProjectRequestDocument document = this.factory.createDocument(event); + assertThat(document.getType()).isEqualTo("gradle-project-kotlin"); + assertThat(document.getBuildSystem()).isEqualTo("gradle"); + } + @Test void createDocumentInvalidDependency() { ProjectRequest request = createProjectRequest();