mirror of
https://gitee.com/dcren/initializr.git
synced 2025-11-08 18:34:58 +08:00
Add configuration meta-data
Closes gh-144
This commit is contained in:
@@ -24,6 +24,9 @@ package io.spring.initializr.metadata
|
||||
*/
|
||||
class InitializrConfiguration {
|
||||
|
||||
/**
|
||||
* Environment options.
|
||||
*/
|
||||
final Env env = new Env()
|
||||
|
||||
void validate() {
|
||||
@@ -84,17 +87,17 @@ class InitializrConfiguration {
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines additional environment settings
|
||||
* Defines additional environment settings.
|
||||
*/
|
||||
static class Env {
|
||||
|
||||
/**
|
||||
* The url of the repository servicing distribution bundle
|
||||
* The url of the repository servicing distribution bundle.
|
||||
*/
|
||||
String artifactRepository = 'https://repo.spring.io/release/'
|
||||
|
||||
/**
|
||||
* The meta-data url of the Spring Boot project
|
||||
* The meta-data url of the Spring Boot project.
|
||||
*/
|
||||
String springBootMetadataUrl = 'https://spring.io/project_metadata/spring-boot'
|
||||
|
||||
@@ -105,7 +108,7 @@ class InitializrConfiguration {
|
||||
|
||||
/**
|
||||
* The list of invalid application names. If such name is chosen or generated,
|
||||
* the {@link #fallbackApplicationName} should be used instead.
|
||||
* the "fallbackApplicationName" should be used instead.
|
||||
*/
|
||||
List<String> invalidApplicationNames = [
|
||||
'SpringApplication',
|
||||
@@ -118,12 +121,14 @@ class InitializrConfiguration {
|
||||
boolean forceSsl = true
|
||||
|
||||
/**
|
||||
* The {@link BillOfMaterials} that are referenced in this instance.
|
||||
* The "BillOfMaterials" that are referenced in this instance, identified by an
|
||||
* arbitrary identifier that can be used in the dependencies definition.
|
||||
*/
|
||||
final Map<String, BillOfMaterials> boms = [:]
|
||||
|
||||
/**
|
||||
* The {@link Repository} instances that are referenced in this instance.
|
||||
* The "Repository" instances that are referenced in this instance, identified by
|
||||
* an arbitrary identifier that can be used in the dependencies definition.
|
||||
*/
|
||||
final Map<String, Repository> repositories = [:]
|
||||
|
||||
|
||||
@@ -29,46 +29,93 @@ import org.springframework.boot.context.properties.ConfigurationProperties
|
||||
@ConfigurationProperties(prefix = 'initializr')
|
||||
class InitializrProperties extends InitializrConfiguration {
|
||||
|
||||
/**
|
||||
* Dependencies, organized in groups (i.e. themes).
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<DependencyGroup> dependencies = []
|
||||
|
||||
/**
|
||||
* Available project types.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<Type> types = []
|
||||
|
||||
/**
|
||||
* Available packaging types.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<DefaultMetadataElement> packagings = []
|
||||
|
||||
/**
|
||||
* Available java versions.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<DefaultMetadataElement> javaVersions = []
|
||||
|
||||
/**
|
||||
* Available programming languages.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<DefaultMetadataElement> languages = []
|
||||
|
||||
/**
|
||||
* Available Spring Boot versions.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final List<DefaultMetadataElement> bootVersions = []
|
||||
|
||||
/**
|
||||
* GroupId meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement groupId = new SimpleElement(value: 'com.example')
|
||||
|
||||
/**
|
||||
* ArtifactId meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement artifactId = new SimpleElement()
|
||||
|
||||
/**
|
||||
* Version meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement version = new SimpleElement(value: '0.0.1-SNAPSHOT')
|
||||
|
||||
/**
|
||||
* Name meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement name = new SimpleElement(value: 'demo')
|
||||
|
||||
/**
|
||||
* Description meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement description = new SimpleElement(value: 'Demo project for Spring Boot')
|
||||
|
||||
/**
|
||||
* Package name meta-data.
|
||||
*/
|
||||
@JsonIgnore
|
||||
final SimpleElement packageName = new SimpleElement()
|
||||
|
||||
|
||||
static class SimpleElement {
|
||||
/**
|
||||
* Element title.
|
||||
*/
|
||||
String title
|
||||
|
||||
/**
|
||||
* Element description.
|
||||
*/
|
||||
String description
|
||||
|
||||
/**
|
||||
* Element default value.
|
||||
*/
|
||||
String value
|
||||
|
||||
void apply(TextCapability capability) {
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"groups": [
|
||||
{
|
||||
"name": "initializr",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.artifact-id",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getArtifactId()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.description",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getDescription()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env",
|
||||
"type": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getEnv()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.group-id",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getGroupId()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.name",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getName()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.package-name",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getPackageName()"
|
||||
},
|
||||
{
|
||||
"name": "initializr.version",
|
||||
"type": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties",
|
||||
"sourceMethod": "getVersion()"
|
||||
}
|
||||
],
|
||||
"properties": [
|
||||
{
|
||||
"name": "initializr.artifact-id.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.artifact-id.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.artifact-id.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "demo"
|
||||
},
|
||||
{
|
||||
"name": "initializr.boot-versions",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.DefaultMetadataElement>",
|
||||
"description": "Available Spring Boot versions.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.dependencies",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.DependencyGroup>",
|
||||
"description": "Dependencies, organized in groups (i.e. themes).",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.description.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.description.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.description.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "Demo project for Spring Boot"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.artifact-repository",
|
||||
"type": "java.lang.String",
|
||||
"description": "The url of the repository servicing distribution bundle.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"defaultValue": "https://repo.spring.io/release/"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.boms",
|
||||
"type": "java.util.Map<java.lang.String,io.spring.initializr.metadata.BillOfMaterials>",
|
||||
"description": "The \"BillOfMaterials\" that are referenced in this instance, identified by an\n arbitrary identifier that can be used in the dependencies definition.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.fallback-application-name",
|
||||
"type": "java.lang.String",
|
||||
"description": "The application name to use if none could be generated.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"defaultValue": "Application"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.force-ssl",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Force SSL support. When enabled, any access using http generate https links.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.invalid-application-names",
|
||||
"type": "java.util.List<java.lang.String>",
|
||||
"description": "The list of invalid application names. If such name is chosen or generated,\n the \"fallbackApplicationName\" should be used instead.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"defaultValue": ["SpringApplication", "SpringBootApplication"]
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.repositories",
|
||||
"type": "java.util.Map<java.lang.String,io.spring.initializr.metadata.Repository>",
|
||||
"description": "The \"Repository\" instances that are referenced in this instance, identified by\n an arbitrary identifier that can be used in the dependencies definition.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env"
|
||||
},
|
||||
{
|
||||
"name": "initializr.env.spring-boot-metadata-url",
|
||||
"type": "java.lang.String",
|
||||
"description": "The meta-data url of the Spring Boot project.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrConfiguration$Env",
|
||||
"defaultValue": "https://spring.io/project_metadata/spring-boot"
|
||||
},
|
||||
{
|
||||
"name": "initializr.group-id.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.group-id.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.group-id.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "com.example"
|
||||
},
|
||||
{
|
||||
"name": "initializr.java-versions",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.DefaultMetadataElement>",
|
||||
"description": "Available java versions.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.languages",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.DefaultMetadataElement>",
|
||||
"description": "Available programming languages.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.name.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.name.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.name.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "demo"
|
||||
},
|
||||
{
|
||||
"name": "initializr.package-name.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.package-name.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.package-name.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "com.example"
|
||||
},
|
||||
{
|
||||
"name": "initializr.packagings",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.DefaultMetadataElement>",
|
||||
"description": "Available packaging types.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.types",
|
||||
"type": "java.util.List<io.spring.initializr.metadata.Type>",
|
||||
"description": "Available project types.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties"
|
||||
},
|
||||
{
|
||||
"name": "initializr.version.description",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element description.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.version.title",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element title.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement"
|
||||
},
|
||||
{
|
||||
"name": "initializr.version.value",
|
||||
"type": "java.lang.String",
|
||||
"description": "Element default value.",
|
||||
"sourceType": "io.spring.initializr.metadata.InitializrProperties$SimpleElement",
|
||||
"defaultValue": "0.0.1-SNAPSHOT"
|
||||
}
|
||||
],
|
||||
"hints": []
|
||||
}
|
||||
Reference in New Issue
Block a user