mirror of
https://gitee.com/dcren/initializr.git
synced 2025-11-09 02:45:00 +08:00
Make sure to use InitializrMetadataProvider consistently
The auto-configuration was exposing a InitializrMetadata bean which is wrong since InitializrMetadataProvider is the sole responsible to provide it.
This commit is contained in:
@@ -22,7 +22,6 @@ import com.google.common.cache.CacheBuilder
|
||||
import io.spring.initializr.generator.ProjectGenerationMetricsListener
|
||||
import io.spring.initializr.generator.ProjectGenerator
|
||||
import io.spring.initializr.generator.ProjectResourceLocator
|
||||
import io.spring.initializr.metadata.InitializrMetadata
|
||||
import io.spring.initializr.metadata.InitializrMetadataBuilder
|
||||
import io.spring.initializr.metadata.InitializrMetadataProvider
|
||||
import io.spring.initializr.metadata.InitializrProperties
|
||||
@@ -92,15 +91,10 @@ class InitializrAutoConfiguration {
|
||||
return new ProjectResourceLocator()
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
InitializrMetadata initializrMetadata(InitializrProperties properties) {
|
||||
InitializrMetadataBuilder.fromInitializrProperties(properties).build()
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(InitializrMetadataProvider)
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrMetadata metadata) {
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrProperties properties) {
|
||||
def metadata = InitializrMetadataBuilder.fromInitializrProperties(properties).build()
|
||||
new DefaultInitializrMetadataProvider(metadata)
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ package io.spring.initializr.generator
|
||||
|
||||
import groovy.util.logging.Slf4j
|
||||
import io.spring.initializr.metadata.Dependency
|
||||
import io.spring.initializr.metadata.InitializrMetadata
|
||||
import io.spring.initializr.metadata.InitializrMetadataProvider
|
||||
import io.spring.initializr.util.Version
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
@@ -42,7 +42,7 @@ class ProjectGenerator {
|
||||
private static final VERSION_1_3_0_M1 = Version.parse('1.3.0.M1')
|
||||
|
||||
@Autowired
|
||||
InitializrMetadata metadata
|
||||
InitializrMetadataProvider metadataProvider
|
||||
|
||||
@Autowired
|
||||
ProjectResourceLocator projectResourceLocator = new ProjectResourceLocator()
|
||||
@@ -173,7 +173,7 @@ class ProjectGenerator {
|
||||
protected Map initializeModel(ProjectRequest request) {
|
||||
Assert.notNull request.bootVersion, 'boot version must not be null'
|
||||
def model = [:]
|
||||
request.resolve(metadata)
|
||||
request.resolve(metadataProvider.get())
|
||||
|
||||
// request resolved so we can log what has been requested
|
||||
def dependencies = request.resolvedDependencies
|
||||
|
||||
@@ -18,6 +18,8 @@ package io.spring.initializr.generator
|
||||
|
||||
import io.spring.initializr.metadata.BillOfMaterials
|
||||
import io.spring.initializr.metadata.Dependency
|
||||
import io.spring.initializr.metadata.InitializrMetadata
|
||||
import io.spring.initializr.metadata.InitializrMetadataProvider
|
||||
import io.spring.initializr.test.GradleBuildAssert
|
||||
import io.spring.initializr.test.InitializrMetadataTestBuilder
|
||||
import io.spring.initializr.test.PomAssert
|
||||
@@ -50,7 +52,7 @@ class ProjectGeneratorTests {
|
||||
void setup() {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('test', 'web', 'security', 'data-jpa', 'aop', 'batch', 'integration').build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
projectGenerator.tmpdir = folder.newFolder().absolutePath
|
||||
}
|
||||
|
||||
@@ -108,7 +110,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||
.addDependencyGroup('test', dependency).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
def request = createProjectRequest('thymeleaf')
|
||||
generateMavenPom(request)
|
||||
@@ -123,7 +125,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||
.addDependencyGroup('test', dependency).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
def request = createProjectRequest('thymeleaf')
|
||||
request.packaging = 'war'
|
||||
@@ -154,7 +156,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||
.addDependencyGroup('test', dependency).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
def request = createProjectRequest('thymeleaf')
|
||||
request.packaging = 'war'
|
||||
@@ -276,7 +278,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||
.addDependencyGroup('foo', whatever).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('whatever', 'data-jpa', 'web')
|
||||
generateMavenPom(request).hasDependency(whatever)
|
||||
.hasSpringBootStarterDependency('data-jpa')
|
||||
@@ -296,7 +298,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||
.addDependencyGroup('foo', whatever).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('whatever', 'data-jpa', 'web')
|
||||
generateGradleBuild(request)
|
||||
.contains("compile('org.springframework.boot:spring-boot-starter-web')")
|
||||
@@ -316,7 +318,7 @@ class ProjectGeneratorTests {
|
||||
.addDependencyGroup('database', h2)
|
||||
.addDependencyGroup('container', servlet)
|
||||
.addDependencyGroup('test', hamcrest).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('hamcrest', 'h2', 'servlet-api', 'data-jpa', 'web')
|
||||
generateMavenPom(request).hasDependency(h2).hasDependency(hamcrest).hasDependency(servlet)
|
||||
.hasSpringBootStarterDependency('data-jpa')
|
||||
@@ -335,7 +337,7 @@ class ProjectGeneratorTests {
|
||||
.addDependencyGroup('database', h2)
|
||||
.addDependencyGroup('container', servlet)
|
||||
.addDependencyGroup('test', hamcrest).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('hamcrest', 'h2', 'servlet-api', 'data-jpa', 'web')
|
||||
generateGradleBuild(request)
|
||||
.contains("compile('org.springframework.boot:spring-boot-starter-web')")
|
||||
@@ -375,7 +377,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo)
|
||||
.addBom('foo-bom', 'org.acme', 'foo-bom', '1.2.3').build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo')
|
||||
generateMavenPom(request).hasDependency(foo)
|
||||
.hasBom('org.acme', 'foo-bom', '1.2.3')
|
||||
@@ -388,7 +390,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('group', foo, bar)
|
||||
.addBom('the-bom', 'org.acme', 'the-bom', '1.2.3').build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo', 'bar')
|
||||
generateMavenPom(request).hasDependency(foo)
|
||||
.hasBom('org.acme', 'the-bom', '1.2.3')
|
||||
@@ -404,7 +406,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo)
|
||||
.addBom('the-bom', bom).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
// First version
|
||||
def request = createProjectRequest('foo')
|
||||
@@ -430,7 +432,7 @@ class ProjectGeneratorTests {
|
||||
.addBom('the-bom', bom)
|
||||
.addRepository('foo-repo', 'repo', 'http://example.com/foo', true)
|
||||
.addRepository('bar-repo', 'repo', 'http://example.com/bar', false).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
// Second version
|
||||
def request = createProjectRequest('foo')
|
||||
@@ -448,7 +450,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo)
|
||||
.addBom('foo-bom', 'org.acme', 'foo-bom', '1.2.3').build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo')
|
||||
generateGradleBuild(request)
|
||||
.contains("dependencyManagement {")
|
||||
@@ -462,7 +464,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo)
|
||||
.addRepository('foo-repo', 'foo', 'http://example.com/repo', false).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo')
|
||||
generateMavenPom(request).hasDependency(foo)
|
||||
.hasRepository('foo-repo', 'foo', 'http://example.com/repo', false)
|
||||
@@ -475,7 +477,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('group', foo, bar)
|
||||
.addRepository('the-repo', 'repo', 'http://example.com/repo', true).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo', 'bar')
|
||||
generateMavenPom(request).hasDependency(foo)
|
||||
.hasRepository('the-repo', 'repo', 'http://example.com/repo', true)
|
||||
@@ -488,7 +490,7 @@ class ProjectGeneratorTests {
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo)
|
||||
.addRepository('foo-repo', 'foo', 'http://example.com/repo', false).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
def request = createProjectRequest('foo')
|
||||
generateGradleBuild(request)
|
||||
.hasRepository('http://example.com/repo')
|
||||
@@ -499,7 +501,7 @@ class ProjectGeneratorTests {
|
||||
def foo = new Dependency(id: 'foo', groupId: 'org.foo', artifactId: 'custom-my-starter')
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
def request = createProjectRequest('foo')
|
||||
generateMavenPom(request)
|
||||
@@ -514,7 +516,7 @@ class ProjectGeneratorTests {
|
||||
foo.starter = false
|
||||
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup('foo', foo).build()
|
||||
projectGenerator.metadata = metadata
|
||||
applyMetadata(metadata)
|
||||
|
||||
def request = createProjectRequest('foo')
|
||||
generateMavenPom(request)
|
||||
@@ -542,9 +544,18 @@ class ProjectGeneratorTests {
|
||||
|
||||
ProjectRequest createProjectRequest(String... styles) {
|
||||
def request = new ProjectRequest()
|
||||
request.initialize(projectGenerator.metadata)
|
||||
request.initialize(projectGenerator.metadataProvider.get())
|
||||
request.style.addAll Arrays.asList(styles)
|
||||
request
|
||||
}
|
||||
|
||||
private void applyMetadata(InitializrMetadata metadata) {
|
||||
projectGenerator.metadataProvider = new InitializrMetadataProvider() {
|
||||
@Override
|
||||
InitializrMetadata get() {
|
||||
return metadata
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2014-2015 the original author or authors.
|
||||
* Copyright 2012-2015 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.
|
||||
@@ -18,8 +18,9 @@ package io.spring.initializr.metrics
|
||||
|
||||
import io.spring.initializr.generator.ProjectGenerationMetricsListener
|
||||
import io.spring.initializr.generator.ProjectRequest
|
||||
import io.spring.initializr.metadata.InitializrMetadata
|
||||
import io.spring.initializr.metadata.InitializrMetadataBuilder
|
||||
import io.spring.initializr.metadata.InitializrMetadataProvider
|
||||
import io.spring.initializr.metadata.InitializrProperties
|
||||
import io.spring.initializr.test.OfflineInitializrMetadataProvider
|
||||
import io.spring.initializr.test.RedisRunning
|
||||
import org.junit.Before
|
||||
@@ -81,7 +82,8 @@ public class MetricsExportTests {
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrMetadata metadata) {
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrProperties properties) {
|
||||
def metadata = InitializrMetadataBuilder.fromInitializrProperties(properties).build()
|
||||
new OfflineInitializrMetadataProvider(metadata)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,9 @@ package io.spring.initializr.web
|
||||
import java.nio.charset.Charset
|
||||
|
||||
import io.spring.initializr.mapper.InitializrMetadataVersion
|
||||
import io.spring.initializr.metadata.InitializrMetadata
|
||||
import io.spring.initializr.metadata.InitializrMetadataBuilder
|
||||
import io.spring.initializr.metadata.InitializrMetadataProvider
|
||||
import io.spring.initializr.metadata.InitializrProperties
|
||||
import io.spring.initializr.test.OfflineInitializrMetadataProvider
|
||||
import io.spring.initializr.test.ProjectAssert
|
||||
import org.json.JSONObject
|
||||
@@ -215,7 +216,8 @@ abstract class AbstractInitializrControllerIntegrationTests {
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrMetadata metadata) {
|
||||
InitializrMetadataProvider initializrMetadataProvider(InitializrProperties properties) {
|
||||
def metadata = InitializrMetadataBuilder.fromInitializrProperties(properties).build()
|
||||
new OfflineInitializrMetadataProvider(metadata)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user