Extract project generation test utility to dedicated module

This commit extracts various test utilities to a dedicated
initializr-generator-test module for easier consumption. The previous
test-jar are no longer published and a dependency to this new module
should be equivalent.

This commit also cleans various resources that were located in the wrong
place. In particular initializr-generator does not know anything about
metadata anymore.

Closes gh-988
This commit is contained in:
Stephane Nicoll
2019-08-20 15:24:13 +02:00
parent dbd1198996
commit 1082ac7bf7
83 changed files with 512 additions and 204 deletions

View File

@@ -90,14 +90,7 @@
</dependency>
<dependency>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr-generator</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr-generator-spring</artifactId>
<type>test-jar</type>
<artifactId>initializr-generator-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.spring.initializr.generator.spring.test.ProjectAssert;
import io.spring.initializr.generator.test.project.ProjectAssert;
import io.spring.initializr.web.AbstractInitializrIntegrationTests.Config;
import io.spring.initializr.web.mapper.InitializrMetadataVersion;
import io.spring.initializr.web.support.InitializrMetadataUpdateStrategy;

View File

@@ -20,7 +20,7 @@ import java.io.IOException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Link;

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.web.project;
import io.spring.initializr.generator.spring.test.build.PomAssert;
import io.spring.initializr.generator.test.buildsystem.maven.PomAssert;
import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests;
import org.junit.jupiter.api.Test;

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.web.project;
import io.spring.initializr.generator.spring.test.build.PomAssert;
import io.spring.initializr.generator.test.buildsystem.maven.PomAssert;
import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests;
import org.junit.jupiter.api.Test;

View File

@@ -18,7 +18,7 @@ package io.spring.initializr.web.project;
import java.net.URI;
import io.spring.initializr.generator.spring.test.ProjectAssert;
import io.spring.initializr.generator.test.project.ProjectAssert;
import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests;
import org.junit.jupiter.api.Test;

View File

@@ -26,10 +26,10 @@ import io.spring.initializr.generator.io.IndentingWriterFactory;
import io.spring.initializr.generator.io.SimpleIndentStrategy;
import io.spring.initializr.generator.io.template.MustacheTemplateRenderer;
import io.spring.initializr.generator.project.ProjectDirectoryFactory;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.spring.test.ProjectAssert;
import io.spring.initializr.generator.spring.test.build.GradleBuildAssert;
import io.spring.initializr.generator.spring.test.build.PomAssert;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.buildsystem.gradle.GradleBuildAssert;
import io.spring.initializr.generator.test.buildsystem.maven.PomAssert;
import io.spring.initializr.generator.test.project.ProjectAssert;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.InitializrMetadataProvider;
import org.junit.jupiter.api.AfterEach;

View File

@@ -20,7 +20,7 @@ import java.util.Collections;
import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionRange;
import io.spring.initializr.metadata.Dependency;

View File

@@ -21,7 +21,7 @@ import java.util.Arrays;
import java.util.List;
import io.spring.initializr.generator.io.template.MustacheTemplateRenderer;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Type;

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.web.support;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency;

View File

@@ -19,7 +19,7 @@ package io.spring.initializr.web.support;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.metadata.DefaultMetadataElement;
import io.spring.initializr.metadata.InitializrMetadata;
import org.junit.jupiter.api.BeforeEach;

View File

@@ -0,0 +1,13 @@
initializr:
groupId:
value: org.foo
artifactId:
value: foo-bar
version:
value: 1.2.4-SNAPSHOT
name:
value: FooBar
description:
value: FooBar Project
packageName:
value: org.foo.demo

View File

@@ -0,0 +1,9 @@
initializr:
env:
artifactRepository: https://repo.spring.io/lib-release
google-analytics-tracking-code: UA-1234567-89
fallbackApplicationName: FooBarApplication
invalidApplicationNames:
- InvalidApplication
kotlin:
default-version: 1.0.0-beta-2423

View File

@@ -0,0 +1,163 @@
info:
spring-boot:
version: 2.1.4.RELEASE
initializr:
env:
boms:
my-api-bom:
groupId: org.acme
artifactId: my-api-bom
versionProperty: my-api.version
additionalBoms: ['my-api-dependencies-bom']
mappings:
- compatibilityRange: "[2.0.0.RELEASE,2.1.6.RELEASE)"
version: 1.0.0.RELEASE
repositories: my-api-repo-1
- compatibilityRange: "2.2.1.RELEASE"
version: 2.0.0.RELEASE
repositories: my-api-repo-2
my-api-dependencies-bom:
groupId: org.acme
artifactId: my-api-dependencies-bom
version: 1.0.0.RELEASE
repositories: my-api-repo-3
kotlin:
defaultVersion: 1.2
mappings:
- compatibilityRange: "[1.5.0.RELEASE,2.0.0.M1)"
version: 1.0
- compatibilityRange: "[2.0.0.M1,2.1.0.M1)"
version: 1.1
repositories:
my-api-repo-1:
name: repo1
url: https://example.com/repo1
my-api-repo-2:
name: repo2
url: https://example.com/repo2
my-api-repo-3:
name: repo3
url: https://example.com/repo3
dependencies:
- name: Core
content:
- name: Web
id: web
description: Web dependency description
facets:
- web
links:
- rel: guide
href: https://example.com/guide
description: Building a RESTful Web Service
- rel: reference
href: https://example.com/doc
- name: Security
id: security
- name: Data JPA
id: data-jpa
aliases:
- jpa
- name: Other
content:
- name: Foo
groupId: org.acme
artifactId: foo
version: 1.3.5
weight: 42
keywords:
- thefoo
- dafoo
links:
- rel: guide
href: https://example.com/guide1
- rel: reference
href: https://example.com/{bootVersion}/doc
- rel: guide
href: https://example.com/guide2
description: Some guide for foo
- name: Bar
id: org.acme:bar
version: 2.1.0
- name: Biz
groupId: org.acme
artifactId: biz
scope: runtime
version: 1.3.5
compatibilityRange: 2.2.0.BUILD-SNAPSHOT
- name: Bur
id: org.acme:bur
version: 2.1.0
scope: test
compatibilityRange: "[2.1.4.RELEASE,2.2.0.BUILD-SNAPSHOT)"
- name: My API
id : my-api
groupId: org.acme
artifactId: my-api
scope: provided
bom: my-api-bom
types:
- name: Maven POM
id: maven-build
tags:
build: maven
format: build
default: false
action: /pom.xml
- name: Maven Project
id: maven-project
tags:
build: maven
format: project
default: true
action: /starter.zip
- name: Gradle Config
id: gradle-build
tags:
build: gradle
format: build
default: false
action: /build.gradle
- name: Gradle Project
id: gradle-project
tags:
build: gradle
format: project
default: false
action: /starter.zip
packagings:
- name: Jar
id: jar
default: true
- name: War
id: war
default: false
javaVersions:
- id: 1.6
default: false
- id: 1.7
default: false
- id: 1.8
default: true
languages:
- name: Groovy
id: groovy
default: false
- name: Java
id: java
default: true
- name: Kotlin
id: kotlin
default: false
bootVersions:
- name : Latest SNAPSHOT
id: 2.2.0.BUILD-SNAPSHOT
default: false
- name: 2.1.4
id: 2.1.4.RELEASE
default: true
- name: 1.5.17
id: 1.5.17.RELEASE
default: false

View File

@@ -0,0 +1,3 @@
initializr:
env:
forceSsl: true

View File

@@ -0,0 +1,80 @@
{
"id": "spring-boot",
"name": "Spring Boot",
"repoUrl": "https://github.com/spring-projects/spring-boot",
"siteUrl": "https://projects.spring.io/spring-boot",
"category": "active",
"stackOverflowTags": "spring-boot",
"projectReleases": [
{
"releaseStatus": "SNAPSHOT",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.1.BUILD-SNAPSHOT/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.1.BUILD-SNAPSHOT/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": {
"id": "spring-snapshots",
"name": "Spring Snapshots",
"url": "https://repo.spring.io/libs-snapshot",
"snapshotsEnabled": true
},
"preRelease": false,
"generalAvailability": false,
"versionDisplayName": "1.3.1",
"current": false,
"snapshot": true,
"version": "1.3.1.BUILD-SNAPSHOT"
},
{
"releaseStatus": "GENERAL_AVAILABILITY",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.0.RELEASE/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.0.RELEASE/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": null,
"preRelease": false,
"generalAvailability": true,
"versionDisplayName": "1.3.0",
"current": false,
"snapshot": false,
"version": "1.3.0.RELEASE"
},
{
"releaseStatus": "SNAPSHOT",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.2.6.BUILD-SNAPSHOT/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.2.6.BUILD-SNAPSHOT/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": {
"id": "spring-snapshots",
"name": "Spring Snapshots",
"url": "https://repo.spring.io/libs-snapshot",
"snapshotsEnabled": true
},
"preRelease": false,
"generalAvailability": false,
"versionDisplayName": "1.2.6",
"current": false,
"snapshot": true,
"version": "1.2.6.BUILD-SNAPSHOT"
},
{
"releaseStatus": "GENERAL_AVAILABILITY",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/current/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": null,
"preRelease": false,
"generalAvailability": true,
"versionDisplayName": "1.2.5",
"current": false,
"snapshot": false,
"version": "1.2.5.RELEASE"
}
],
"aggregator": false,
"stackOverflowTagList": [
"spring-boot"
]
}

View File

@@ -0,0 +1,80 @@
{
"id": "spring-boot",
"name": "Spring Boot",
"repoUrl": "https://github.com/spring-projects/spring-boot",
"siteUrl": "https://projects.spring.io/spring-boot",
"category": "active",
"stackOverflowTags": "spring-boot",
"projectReleases": [
{
"releaseStatus": "SNAPSHOT",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.4.1.BUILD-SNAPSHOT/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.4.1.BUILD-SNAPSHOT/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": {
"id": "spring-snapshots",
"name": "Spring Snapshots",
"url": "https://repo.spring.io/libs-snapshot",
"snapshotsEnabled": true
},
"preRelease": false,
"generalAvailability": false,
"versionDisplayName": "1.4.1",
"current": false,
"snapshot": true,
"version": "1.4.1.BUILD-SNAPSHOT"
},
{
"releaseStatus": "GENERAL_AVAILABILITY",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": null,
"preRelease": false,
"generalAvailability": true,
"versionDisplayName": "1.4.0",
"current": true,
"snapshot": false,
"version": "1.4.0.RELEASE"
},
{
"releaseStatus": "SNAPSHOT",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.8.BUILD-SNAPSHOT/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/1.3.8.BUILD-SNAPSHOT/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": {
"id": "spring-snapshots",
"name": "Spring Snapshots",
"url": "https://repo.spring.io/libs-snapshot",
"snapshotsEnabled": true
},
"preRelease": false,
"generalAvailability": false,
"versionDisplayName": "1.3.8",
"current": false,
"snapshot": true,
"version": "1.3.8.BUILD-SNAPSHOT"
},
{
"releaseStatus": "GENERAL_AVAILABILITY",
"refDocUrl": "https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/",
"apiDocUrl": "https://docs.spring.io/spring-boot/docs/current/api/",
"groupId": "org.springframework.boot",
"artifactId": "spring-boot",
"repository": null,
"preRelease": false,
"generalAvailability": true,
"versionDisplayName": "1.3.7",
"current": false,
"snapshot": false,
"version": "1.3.7.RELEASE"
}
],
"aggregator": false,
"stackOverflowTagList": [
"spring-boot"
]
}