Update init to new metadata format

Spring initializr now declares an improved metadata format (v2).

InitializrServiceMetadata has been updated to parse this format. Note
that the client could be further improved by using HAL generated links.

Closes gh-1953
This commit is contained in:
Stephane Nicoll
2014-11-19 11:54:59 +01:00
parent ae23ba13b5
commit 8f488bd019
10 changed files with 454 additions and 502 deletions

View File

@@ -1,134 +0,0 @@
{"dependencies": [
{
"name": "Core",
"content": [
{
"name": "Security",
"id": "security",
"description": "Security description"
},
{
"name": "AOP",
"id": "aop"
}
]
},
{
"name": "Data",
"content": [
{
"name": "JDBC",
"id": "jdbc"
},
{
"name": "JPA",
"id": "data-jpa"
},
{
"name": "MongoDB",
"id": "data-mongodb"
}
]
}
], "types": [
{
"name": "Maven POM",
"id": "maven-build",
"action": "/pom.xml",
"default": false
},
{
"name": "Maven Project",
"id": "maven-project",
"action": "/starter.zip",
"default": true
},
{
"name": "Gradle Config",
"id": "gradle-build",
"action": "/build.gradle",
"default": false
},
{
"name": "Gradle Project",
"id": "gradle-project",
"action": "/starter.zip",
"default": false
}
], "packagings": [
{
"name": "Jar",
"id": "jar",
"default": true
},
{
"name": "War",
"id": "war",
"default": false
}
], "javaVersions": [
{
"name": "1.6",
"id": "1.6",
"default": false
},
{
"name": "1.7",
"id": "1.7",
"default": true
},
{
"name": "1.8",
"id": "1.8",
"default": false
}
], "languages": [
{
"name": "Groovy",
"id": "groovy",
"default": false
},
{
"name": "Java",
"id": "java",
"default": true
}
], "bootVersions": [
{
"name": "1.2.0 M2",
"id": "1.2.0.M2",
"default": false
},
{
"name": "1.2.0 (SNAPSHOT)",
"id": "1.2.0.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.1.8",
"id": "1.1.8.RELEASE",
"default": true
},
{
"name": "1.1.8 (SNAPSHOT)",
"id": "1.1.8.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.0.2",
"id": "1.0.2.RELEASE",
"default": false
}
], "defaults": {
"groupId": "org.test",
"artifactId": "demo",
"version": "0.0.1-SNAPSHOT",
"name": "demo",
"description": "Demo project for Spring Boot",
"packageName": "demo",
"type": "maven-project",
"packaging": "jar",
"javaVersion": "1.7",
"language": "java",
"bootVersion": "1.1.8.RELEASE"
}}

View File

@@ -1,150 +0,0 @@
{"dependencies": [
{
"name": "Core",
"content": [
{
"name": "Security",
"id": "security",
"description": "Security description"
},
{
"name": "AOP",
"id": "aop"
}
]
},
{
"name": "Data",
"content": [
{
"name": "JDBC",
"id": "jdbc"
},
{
"name": "JPA",
"id": "data-jpa"
},
{
"name": "MongoDB",
"id": "data-mongodb"
}
]
}
], "types": [
{
"name": "Maven POM",
"id": "maven-build",
"action": "/pom.xml",
"tags": {
"build": "maven",
"format": "build"
},
"default": false
},
{
"name": "Maven Project",
"id": "maven-project",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
},
"default": true
},
{
"name": "Gradle Config",
"id": "gradle-build",
"action": "/build.gradle",
"tags": {
"build": "gradle",
"format": "build"
},
"default": false
},
{
"name": "Gradle Project",
"id": "gradle-project",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
},
"default": false
}
], "packagings": [
{
"name": "Jar",
"id": "jar",
"default": true
},
{
"name": "War",
"id": "war",
"default": false
}
], "javaVersions": [
{
"name": "1.6",
"id": "1.6",
"default": false
},
{
"name": "1.7",
"id": "1.7",
"default": true
},
{
"name": "1.8",
"id": "1.8",
"default": false
}
], "languages": [
{
"name": "Groovy",
"id": "groovy",
"default": false
},
{
"name": "Java",
"id": "java",
"default": true
}
], "bootVersions": [
{
"name": "1.2.0 M2",
"id": "1.2.0.M2",
"default": false
},
{
"name": "1.2.0 (SNAPSHOT)",
"id": "1.2.0.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.1.8",
"id": "1.1.8.RELEASE",
"default": true
},
{
"name": "1.1.8 (SNAPSHOT)",
"id": "1.1.8.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.0.2",
"id": "1.0.2.RELEASE",
"default": false
}
], "defaults": {
"groupId": "org.test",
"artifactId": "demo",
"version": "0.0.1-SNAPSHOT",
"name": "demo",
"description": "Demo project for Spring Boot",
"packageName": "demo",
"type": "maven-project",
"packaging": "jar",
"javaVersion": "1.7",
"language": "java",
"bootVersion": "1.1.8.RELEASE"
}}

View File

@@ -0,0 +1,190 @@
{
"_links": {
"maven-build": {
"href": "http://localhost:8080/pom.xml?{dependencies,type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"maven-project": {
"href": "http://localhost:8080/starter.zip{?dependencies,type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"gradle-build": {
"href": "http://localhost:8080/build.gradle{?dependencies,type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"gradle-project": {
"href": "http://localhost:8080/starter.zip{?dependencies,type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
}
},
"dependencies": {
"type": "hierarchical-multi-select",
"values": [
{
"name": "Core",
"values": [
{
"name": "Security",
"id": "security",
"description": "Security description"
},
{
"name": "AOP",
"id": "aop"
}
]
},
{
"name": "Data",
"values": [
{
"name": "JDBC",
"id": "jdbc"
},
{
"name": "JPA",
"id": "data-jpa"
},
{
"name": "MongoDB",
"id": "data-mongodb"
}
]
}
]
},
"type": {
"type": "action",
"default": "maven-project",
"values": [
{
"id": "maven-build",
"name": "Maven POM",
"action": "/pom.xml",
"tags": {
"build": "maven",
"format": "build"
}
},
{
"id": "maven-project",
"name": "Maven Project",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
}
},
{
"id": "gradle-build",
"name": "Gradle Config",
"action": "/build.gradle",
"tags": {
"build": "gradle",
"format": "build"
}
},
{
"id": "gradle-project",
"name": "Gradle Project",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
}
}
]
},
"packaging": {
"type": "single-select",
"default": "jar",
"values": [
{
"id": "jar",
"name": "Jar"
},
{
"id": "war",
"name": "War"
}
]
},
"javaVersion": {
"type": "single-select",
"default": "1.7",
"values": [
{
"id": "1.6",
"name": "1.6"
},
{
"id": "1.7",
"name": "1.7"
},
{
"id": "1.8",
"name": "1.8"
}
]
},
"language": {
"type": "single-select",
"default": "java",
"values": [
{
"id": "groovy",
"name": "Groovy"
},
{
"id": "java",
"name": "Java"
}
]
},
"bootVersion": {
"type": "single-select",
"default": "1.1.8.RELEASE",
"values": [
{
"id": "1.2.0.BUILD-SNAPSHOT",
"name": "1.2.0 (SNAPSHOT)"
},
{
"id": "1.1.8.RELEASE",
"name": "1.1.8"
},
{
"id": "1.1.8.BUILD-SNAPSHOT",
"name": "1.1.8 (SNAPSHOT)"
},
{
"id": "1.0.2.RELEASE",
"name": "1.0.2"
}
]
},
"groupId": {
"type": "text",
"default": "org.test"
},
"artifactId": {
"type": "text",
"default": "demo"
},
"version": {
"type": "text",
"default": "0.0.1-SNAPSHOT"
},
"name": {
"type": "text",
"default": "demo"
},
"description": {
"type": "text",
"default": "Demo project for Spring Boot"
},
"packageName": {
"type": "text",
"default": "demo"
}
}

View File

@@ -1,169 +1,207 @@
{"dependencies": [
{
"name": "Core",
"content": [
{
"name": "Security",
"id": "security",
"description": "Security description"
},
{
"name": "AOP",
"id": "aop"
}
]
},
{
"name": "Data",
"content": [
{
"name": "JDBC",
"id": "jdbc"
},
{
"name": "JPA",
"id": "data-jpa"
},
{
"name": "MongoDB",
"id": "data-mongodb"
}
]
}
], "types": [
{
"name": "Maven POM",
"id": "maven-build",
"action": "/pom.xml",
"tags": {
"build": "maven",
"format": "build"
},
"default": false
},
{
"name": "Maven Project",
"id": "maven-project",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
},
"default": false
},
{
"name": "Another Maven Project",
"id": "maven-project-2",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
},
"default": false
},
{
"name": "Gradle Config",
"id": "gradle-build",
"action": "/build.gradle",
"tags": {
"build": "gradle",
"format": "build"
},
"default": false
},
{
"name": "Gradle Project",
"id": "gradle-project",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
},
"default": false
},
{
"name": "Another gradle Project",
"id": "gradle-project-2",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
},
"default": false
}
], "packagings": [
{
"name": "Jar",
"id": "jar",
"default": true
},
{
"name": "War",
"id": "war",
"default": false
}
], "javaVersions": [
{
"name": "1.6",
"id": "1.6",
"default": false
},
{
"name": "1.7",
"id": "1.7",
"default": true
},
{
"name": "1.8",
"id": "1.8",
"default": false
}
], "languages": [
{
"name": "Groovy",
"id": "groovy",
"default": false
},
{
"name": "Java",
"id": "java",
"default": true
}
], "bootVersions": [
{
"name": "1.2.0 M2",
"id": "1.2.0.M2",
"default": false
},
{
"name": "1.2.0 (SNAPSHOT)",
"id": "1.2.0.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.1.8",
"id": "1.1.8.RELEASE",
"default": true
},
{
"name": "1.1.8 (SNAPSHOT)",
"id": "1.1.8.BUILD-SNAPSHOT",
"default": false
},
{
"name": "1.0.2",
"id": "1.0.2.RELEASE",
"default": false
}
], "defaults": {
"groupId": "org.test",
"artifactId": "demo",
"version": "0.0.1-SNAPSHOT",
"name": "demo",
"description": "Demo project for Spring Boot",
"packageName": "demo",
"packaging": "jar",
"javaVersion": "1.7",
"language": "java",
"bootVersion": "1.1.8.RELEASE"
}}
{
"_links": {
"maven-build": {
"href": "http://localhost:8080/pom.xml?style={dependencies}{&type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"maven-project": {
"href": "http://localhost:8080/starter.zip?style={dependencies}{&type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"gradle-build": {
"href": "http://localhost:8080/build.gradle?style={dependencies}{&type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
},
"gradle-project": {
"href": "http://localhost:8080/starter.zip?style={dependencies}{&type,packaging,javaVersion,language,bootVersion,groupId,artifactId,version,name,description,packageName}",
"templated": true
}
},
"dependencies": {
"type": "hierarchical-multi-select",
"values": [
{
"name": "Core",
"values": [
{
"name": "Security",
"id": "security",
"description": "Security description"
},
{
"name": "AOP",
"id": "aop"
}
]
},
{
"name": "Data",
"values": [
{
"name": "JDBC",
"id": "jdbc"
},
{
"name": "JPA",
"id": "data-jpa"
},
{
"name": "MongoDB",
"id": "data-mongodb"
}
]
}
]
},
"type": {
"type": "action",
"values": [
{
"id": "maven-build",
"name": "Maven POM",
"action": "/pom.xml",
"tags": {
"build": "maven",
"format": "build"
}
},
{
"id": "maven-project",
"name": "Maven Project",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
}
},
{
"id": "maven-project-2",
"name": "Another Maven Project",
"action": "/starter.zip",
"tags": {
"build": "maven",
"format": "project"
}
},
{
"id": "gradle-build",
"name": "Gradle Config",
"action": "/build.gradle",
"tags": {
"build": "gradle",
"format": "build"
}
},
{
"id": "gradle-project",
"name": "Gradle Project",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
}
},
{
"id": "gradle-project-2",
"name": "Another Gradle Project",
"action": "/starter.zip",
"tags": {
"build": "gradle",
"format": "project"
}
}
]
},
"packaging": {
"type": "single-select",
"default": "jar",
"values": [
{
"id": "jar",
"name": "Jar"
},
{
"id": "war",
"name": "War"
}
]
},
"javaVersion": {
"type": "single-select",
"default": "1.7",
"values": [
{
"id": "1.6",
"name": "1.6"
},
{
"id": "1.7",
"name": "1.7"
},
{
"id": "1.8",
"name": "1.8"
}
]
},
"language": {
"type": "single-select",
"default": "java",
"values": [
{
"id": "groovy",
"name": "Groovy"
},
{
"id": "java",
"name": "Java"
}
]
},
"bootVersion": {
"type": "single-select",
"default": "1.1.8.RELEASE",
"values": [
{
"id": "1.2.0.BUILD-SNAPSHOT",
"name": "1.2.0 (SNAPSHOT)"
},
{
"id": "1.1.8.RELEASE",
"name": "1.1.8"
},
{
"id": "1.1.8.BUILD-SNAPSHOT",
"name": "1.1.8 (SNAPSHOT)"
},
{
"id": "1.0.2.RELEASE",
"name": "1.0.2"
}
]
},
"groupId": {
"type": "text",
"default": "org.test"
},
"artifactId": {
"type": "text",
"default": "demo"
},
"version": {
"type": "text",
"default": "0.0.1-SNAPSHOT"
},
"name": {
"type": "text",
"default": "demo"
},
"description": {
"type": "text",
"default": "Demo project for Spring Boot"
},
"packageName": {
"type": "text",
"default": "demo"
}
}