mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-18 17:48:14 +08:00
Fix type id
This commit improves the structure of the type id as it may be used by third party clients. The id now defines the build system and the nature of the project. Because STS hardcodes those IDs, a new (deprecated) property on type has been introduced to keep track of them. When serving the legacy HTML page that STS parses, those ids are used instead. Fixes gh-39
This commit is contained in:
@@ -117,19 +117,23 @@ initializr:
|
||||
description: Support for CRaSH
|
||||
types:
|
||||
- name: Maven POM
|
||||
id: pom.xml
|
||||
id: maven-build
|
||||
sts-id: pom.xml
|
||||
default: false
|
||||
action: /pom.xml
|
||||
- name: Maven Project
|
||||
id: starter.zip
|
||||
id: maven-project
|
||||
sts-id: starter.zip
|
||||
default: true
|
||||
action: /starter.zip
|
||||
- name: Gradle Config
|
||||
id: build.gradle
|
||||
id: gradle-build
|
||||
sts-id: build.gradle
|
||||
default: false
|
||||
action: /build.gradle
|
||||
- name: Gradle Project
|
||||
id: gradle.zip
|
||||
id: gradle-project
|
||||
sts-id: gradle.zip
|
||||
default: false
|
||||
action: /starter.zip
|
||||
packagings:
|
||||
|
@@ -242,6 +242,10 @@ class InitializrMetadata {
|
||||
|
||||
static class Type extends DefaultIdentifiableElement {
|
||||
|
||||
@JsonIgnore
|
||||
@Deprecated
|
||||
String stsId
|
||||
|
||||
String action
|
||||
}
|
||||
|
||||
|
@@ -50,7 +50,7 @@
|
||||
<label>Type:</label>
|
||||
<% types.each { %>
|
||||
<label class="radio">
|
||||
<input type="radio" name="type" value="${it.id}"${it.default==true ? ' checked="true"' : ''} onclick="javascript:this.form.action='${it.action}'"/>
|
||||
<input type="radio" name="type" value="${it.stsId}"${it.default==true ? ' checked="true"' : ''} onclick="javascript:this.form.action='${it.action}'"/>
|
||||
${it.name}
|
||||
</label><% } %>
|
||||
<label>Packaging:</label>
|
||||
|
@@ -96,13 +96,7 @@ abstract class AbstractInitializerControllerFormIntegrationTests extends Abstrac
|
||||
}
|
||||
|
||||
@Test
|
||||
void createSimpleGradleProject() {
|
||||
def page = home()
|
||||
page.type = 'gradle.zip'
|
||||
page.dependencies << 'data-jpa'
|
||||
def projectAssert = zipProjectAssert(page.generateProject())
|
||||
projectAssert.isGradleProject().isJavaProject().hasStaticAndTemplatesResources(false)
|
||||
}
|
||||
abstract void createSimpleGradleProject()
|
||||
|
||||
@Test
|
||||
void createWarProject() {
|
||||
@@ -116,6 +110,14 @@ abstract class AbstractInitializerControllerFormIntegrationTests extends Abstrac
|
||||
.hasSpringBootStarterDependency('test')
|
||||
}
|
||||
|
||||
void createSimpleGradleProject(String projectType) {
|
||||
def page = home()
|
||||
page.type = projectType
|
||||
page.dependencies << 'data-jpa'
|
||||
def projectAssert = zipProjectAssert(page.generateProject())
|
||||
projectAssert.isGradleProject().isJavaProject().hasStaticAndTemplatesResources(false)
|
||||
}
|
||||
|
||||
HomePage home() {
|
||||
def request = new WebRequest(new URL("http://localhost${homeContext()}"), 'text/html')
|
||||
def home = webClient.getPage(request)
|
||||
|
@@ -32,6 +32,11 @@ import org.springframework.context.annotation.Configuration
|
||||
@SpringApplicationConfiguration(classes = LegacyStsConfig.class)
|
||||
class LegacyStsControllerFormIntegrationTests extends AbstractInitializerControllerFormIntegrationTests {
|
||||
|
||||
@Override
|
||||
void createSimpleGradleProject() {
|
||||
createSimpleGradleProject('gradle.zip')
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String homeContext() {
|
||||
'/sts'
|
||||
|
@@ -27,6 +27,12 @@ import io.spring.initializr.web.support.HomePage
|
||||
*/
|
||||
class MainControllerFormIntegrationTests extends AbstractInitializerControllerFormIntegrationTests {
|
||||
|
||||
|
||||
@Override
|
||||
void createSimpleGradleProject() {
|
||||
createSimpleGradleProject('gradle-project')
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String homeContext() {
|
||||
'/'
|
||||
|
@@ -29,19 +29,23 @@ initializr:
|
||||
version: 2.1.0
|
||||
types:
|
||||
- name: Maven POM
|
||||
id: pom.xml
|
||||
id: maven-build
|
||||
sts-id: pom.xml
|
||||
default: false
|
||||
action: /pom.xml
|
||||
- name: Maven Project
|
||||
id: starter.zip
|
||||
id: maven-project
|
||||
sts-id: starter.zip
|
||||
default: true
|
||||
action: /starter.zip
|
||||
- name: Gradle Config
|
||||
id: build.gradle
|
||||
id: gradle-build
|
||||
sts-id: build.gradle
|
||||
default: false
|
||||
action: /build.gradle
|
||||
- name: Gradle Project
|
||||
id: gradle.zip
|
||||
id: gradle-project
|
||||
sts-id: gradle.zip
|
||||
default: false
|
||||
action: /starter.zip
|
||||
packagings:
|
||||
|
@@ -32,25 +32,25 @@
|
||||
], "types": [
|
||||
{
|
||||
"name": "Maven POM",
|
||||
"id": "pom.xml",
|
||||
"id": "maven-build",
|
||||
"action": "/pom.xml",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "Maven Project",
|
||||
"id": "starter.zip",
|
||||
"id": "maven-project",
|
||||
"action": "/starter.zip",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "Gradle Config",
|
||||
"id": "build.gradle",
|
||||
"id": "gradle-build",
|
||||
"action": "/build.gradle",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "Gradle Project",
|
||||
"id": "gradle.zip",
|
||||
"id": "gradle-project",
|
||||
"action": "/starter.zip",
|
||||
"default": false
|
||||
}
|
||||
@@ -115,7 +115,7 @@
|
||||
"name": "demo",
|
||||
"description": "Demo project for Spring Boot",
|
||||
"packageName": "demo",
|
||||
"type": "starter.zip",
|
||||
"type": "maven-project",
|
||||
"packaging": "jar",
|
||||
"javaVersion": "1.7",
|
||||
"language": "java",
|
||||
|
@@ -33,25 +33,25 @@
|
||||
], "types": [
|
||||
{
|
||||
"name": "Maven POM",
|
||||
"id": "pom.xml",
|
||||
"id": "maven-build",
|
||||
"action": "/pom.xml",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "Maven Project",
|
||||
"id": "starter.zip",
|
||||
"id": "maven-project",
|
||||
"action": "/starter.zip",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "Gradle Config",
|
||||
"id": "build.gradle",
|
||||
"id": "gradle-build",
|
||||
"action": "/build.gradle",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "Gradle Project",
|
||||
"id": "gradle.zip",
|
||||
"id": "gradle-project",
|
||||
"action": "/starter.zip",
|
||||
"default": false
|
||||
}
|
||||
@@ -116,7 +116,7 @@
|
||||
"name": "demo",
|
||||
"description": "Demo project for Spring Boot",
|
||||
"packageName": "demo",
|
||||
"type": "starter.zip",
|
||||
"type": "maven-project",
|
||||
"packaging": "jar",
|
||||
"javaVersion": "1.7",
|
||||
"language": "java",
|
||||
|
Reference in New Issue
Block a user