mirror of
https://gitee.com/dcren/initializr.git
synced 2025-11-28 09:22:41 +08:00
Additional visibility changes needed in new Java code
This commit is contained in:
committed by
Stephane Nicoll
parent
ad6430b92a
commit
1385e82eb5
@@ -32,7 +32,7 @@ import io.spring.initializr.metadata.InitializrMetadataProvider;
|
|||||||
public class InitializrActuatorEndpointsAutoConfiguration {
|
public class InitializrActuatorEndpointsAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
BomRangesInfoContributor bomRangesInfoContributor(
|
public BomRangesInfoContributor bomRangesInfoContributor(
|
||||||
InitializrMetadataProvider metadataProvider) {
|
InitializrMetadataProvider metadataProvider) {
|
||||||
return new BomRangesInfoContributor(metadataProvider);
|
return new BomRangesInfoContributor(metadataProvider);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ import io.spring.initializr.actuate.metric.ProjectGenerationMetricsListener;
|
|||||||
public class InitializrMetricsConfiguration {
|
public class InitializrMetricsConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
ProjectGenerationMetricsListener metricsListener(CounterService counterService) {
|
public ProjectGenerationMetricsListener metricsListener(
|
||||||
|
CounterService counterService) {
|
||||||
return new ProjectGenerationMetricsListener(counterService);
|
return new ProjectGenerationMetricsListener(counterService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,20 +57,12 @@ public class InitializrMetricsConfiguration {
|
|||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
@EnableConfigurationProperties(MetricsProperties.class)
|
@EnableConfigurationProperties(MetricsProperties.class)
|
||||||
@Configuration
|
@Configuration
|
||||||
public static class MetricsExportConfiguration {
|
protected static class MetricsExportConfiguration {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RedisConnectionFactory connectionFactory;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MetricsProperties metrics;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ApplicationContext context;
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ExportMetricWriter
|
@ExportMetricWriter
|
||||||
MetricWriter writer() {
|
public MetricWriter writer(RedisConnectionFactory connectionFactory,
|
||||||
|
MetricsProperties metrics, ApplicationContext context) {
|
||||||
return new RedisMetricRepository(connectionFactory,
|
return new RedisMetricRepository(connectionFactory,
|
||||||
metrics.getPrefix() + metrics.getId(context.getId()) + "."
|
metrics.getPrefix() + metrics.getId(context.getId()) + "."
|
||||||
+ ObjectUtils.getIdentityHexString(context) + ".",
|
+ ObjectUtils.getIdentityHexString(context) + ".",
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class InitializrStatsAutoConfiguration {
|
|||||||
private StatsProperties statsProperties;
|
private StatsProperties statsProperties;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
ProjectGenerationStatPublisher projectRequestStatHandler(
|
public ProjectGenerationStatPublisher projectRequestStatHandler(
|
||||||
InitializrMetadataProvider provider) {
|
InitializrMetadataProvider provider) {
|
||||||
return new ProjectGenerationStatPublisher(
|
return new ProjectGenerationStatPublisher(
|
||||||
new ProjectRequestDocumentFactory(provider), statsProperties,
|
new ProjectRequestDocumentFactory(provider), statsProperties,
|
||||||
@@ -57,7 +57,7 @@ class InitializrStatsAutoConfiguration {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean(name = "statsRetryTemplate")
|
@ConditionalOnMissingBean(name = "statsRetryTemplate")
|
||||||
RetryTemplate statsRetryTemplate() {
|
public RetryTemplate statsRetryTemplate() {
|
||||||
RetryTemplate retryTemplate = new RetryTemplate();
|
RetryTemplate retryTemplate = new RetryTemplate();
|
||||||
ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy();
|
ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy();
|
||||||
backOffPolicy.setInitialInterval(3000L);
|
backOffPolicy.setInitialInterval(3000L);
|
||||||
|
|||||||
@@ -53,14 +53,14 @@ public class MetricsProperties {
|
|||||||
@Value("${spring.metrics.export.default.delayMillis:5000}")
|
@Value("${spring.metrics.export.default.delayMillis:5000}")
|
||||||
private long rateMillis = 5000L;
|
private long rateMillis = 5000L;
|
||||||
|
|
||||||
String getPrefix() {
|
public String getPrefix() {
|
||||||
if (prefix.endsWith(".")) {
|
if (prefix.endsWith(".")) {
|
||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
return prefix + ".";
|
return prefix + ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
String getId(String defaultValue) {
|
public String getId(String defaultValue) {
|
||||||
if (StringUtils.hasText(id)) return id;
|
if (StringUtils.hasText(id)) return id;
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,16 +56,16 @@ public class MetricsExportTests {
|
|||||||
public RedisRunning running = new RedisRunning();
|
public RedisRunning running = new RedisRunning();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ProjectGenerationMetricsListener listener;
|
private ProjectGenerationMetricsListener listener;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("writer")
|
@Qualifier("writer")
|
||||||
MetricWriter writer;
|
private MetricWriter writer;
|
||||||
|
|
||||||
RedisMetricRepository repository;
|
private RedisMetricRepository repository;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() {
|
public void init() throws Exception {
|
||||||
repository = (RedisMetricRepository) writer;
|
repository = (RedisMetricRepository) writer;
|
||||||
repository.findAll().forEach(it -> {
|
repository.findAll().forEach(it -> {
|
||||||
repository.reset(it.getName());
|
repository.reset(it.getName());
|
||||||
@@ -83,10 +83,10 @@ public class MetricsExportTests {
|
|||||||
@Configuration
|
@Configuration
|
||||||
@EnableAutoConfiguration
|
@EnableAutoConfiguration
|
||||||
@EnableConfigurationProperties(InitializrProperties.class)
|
@EnableConfigurationProperties(InitializrProperties.class)
|
||||||
static class Config {
|
protected static class Config {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
InitializrMetadataProvider initializrMetadataProvider(
|
public InitializrMetadataProvider initializrMetadataProvider(
|
||||||
InitializrProperties properties) {
|
InitializrProperties properties) {
|
||||||
InitializrMetadata metadata = InitializrMetadataBuilder
|
InitializrMetadata metadata = InitializrMetadataBuilder
|
||||||
.fromInitializrProperties(properties).build();
|
.fromInitializrProperties(properties).build();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder;
|
|||||||
*/
|
*/
|
||||||
abstract class AbstractInitializrStatTests {
|
abstract class AbstractInitializrStatTests {
|
||||||
|
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder
|
private final InitializrMetadata metadata = InitializrMetadataTestBuilder
|
||||||
.withDefaults()
|
.withDefaults()
|
||||||
.addDependencyGroup("core", "security", "validation", "aop")
|
.addDependencyGroup("core", "security", "validation", "aop")
|
||||||
.addDependencyGroup("web", "web", "data-rest", "jersey")
|
.addDependencyGroup("web", "web", "data-rest", "jersey")
|
||||||
@@ -45,4 +45,8 @@ abstract class AbstractInitializrStatTests {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public InitializrMetadata getMetadata() {
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,32 +184,32 @@ public class MainControllerStatsIntegrationTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
static class StatsMockController {
|
protected static class StatsMockController {
|
||||||
|
|
||||||
private final List<Content> stats = new ArrayList<>();
|
private final List<Content> stats = new ArrayList<>();
|
||||||
|
|
||||||
@RequestMapping(path = "/elastic/test/my-entity", method = RequestMethod.POST)
|
@RequestMapping(path = "/elastic/test/my-entity", method = RequestMethod.POST)
|
||||||
void handleProjectRequestDocument(RequestEntity<String> input) {
|
public void handleProjectRequestDocument(RequestEntity<String> input) {
|
||||||
String authorization = input.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
|
String authorization = input.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
|
||||||
Content content = new Content(authorization, input.getBody());
|
Content content = new Content(authorization, input.getBody());
|
||||||
this.stats.add(content);
|
this.stats.add(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(path = "/elastic-error/test/my-entity", method = RequestMethod.POST)
|
@RequestMapping(path = "/elastic-error/test/my-entity", method = RequestMethod.POST)
|
||||||
void handleExpectedError() {
|
public void handleExpectedError() {
|
||||||
throw new IllegalStateException("Expected exception");
|
throw new IllegalStateException("Expected exception");
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Content {
|
public static class Content {
|
||||||
|
|
||||||
public Content(String authorization, String body) {
|
public Content(String authorization, String body) {
|
||||||
this.authorization = authorization;
|
this.authorization = authorization;
|
||||||
json = body;
|
json = body;
|
||||||
}
|
}
|
||||||
|
|
||||||
String authorization;
|
private String authorization;
|
||||||
|
|
||||||
String json;
|
private String json;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class ProjectGenerationStatPublisherTests extends AbstractInitializrStatT
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
this.properties = createProperties();
|
this.properties = createProperties();
|
||||||
ProjectRequestDocumentFactory documentFactory =
|
ProjectRequestDocumentFactory documentFactory =
|
||||||
new ProjectRequestDocumentFactory(createProvider(metadata));
|
new ProjectRequestDocumentFactory(createProvider(getMetadata()));
|
||||||
this.retryTemplate = new RetryTemplate();
|
this.retryTemplate = new RetryTemplate();
|
||||||
this.statPublisher = new ProjectGenerationStatPublisher(documentFactory, properties, retryTemplate);
|
this.statPublisher = new ProjectGenerationStatPublisher(documentFactory, properties, retryTemplate);
|
||||||
mockServer = MockRestServiceServer.createServer(this.statPublisher.getRestTemplate());
|
mockServer = MockRestServiceServer.createServer(this.statPublisher.getRestTemplate());
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import io.spring.initializr.generator.ProjectRequest;
|
|||||||
public class ProjectRequestDocumentFactoryTests extends AbstractInitializrStatTests {
|
public class ProjectRequestDocumentFactoryTests extends AbstractInitializrStatTests {
|
||||||
|
|
||||||
private final ProjectRequestDocumentFactory factory =
|
private final ProjectRequestDocumentFactory factory =
|
||||||
new ProjectRequestDocumentFactory(createProvider(metadata));
|
new ProjectRequestDocumentFactory(createProvider(getMetadata()));
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createDocumentForSimpleProject() {
|
public void createDocumentForSimpleProject() {
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ public class MetricsAssert {
|
|||||||
|
|
||||||
public MetricsAssert hasValue(long value, String... metrics) {
|
public MetricsAssert hasValue(long value, String... metrics) {
|
||||||
Arrays.asList(metrics).forEach(it -> {
|
Arrays.asList(metrics).forEach(it -> {
|
||||||
Long actual = counterService.values.get(it);
|
Long actual = counterService.getValues().get(it);
|
||||||
if (actual == null) {
|
if (actual == null) {
|
||||||
fail("Metric '" + it + "' not found, got '"
|
fail("Metric '" + it + "' not found, got '"
|
||||||
+ counterService.values.keySet() + "'");
|
+ counterService.getValues().keySet() + "'");
|
||||||
}
|
}
|
||||||
assertEquals("Wrong value for metric " + it, value, actual.longValue());
|
assertEquals("Wrong value for metric " + it, value, actual.longValue());
|
||||||
});
|
});
|
||||||
@@ -49,15 +49,15 @@ public class MetricsAssert {
|
|||||||
public MetricsAssert hasNoValue(String... metrics) {
|
public MetricsAssert hasNoValue(String... metrics) {
|
||||||
Arrays.asList(metrics).forEach(it -> {
|
Arrays.asList(metrics).forEach(it -> {
|
||||||
assertEquals("Metric '" + it + "' should not be registered", null,
|
assertEquals("Metric '" + it + "' should not be registered", null,
|
||||||
counterService.values.get(it));
|
counterService.getValues().get(it));
|
||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MetricsAssert metricsCount(int count) {
|
public MetricsAssert metricsCount(int count) {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"Wrong number of metrics, got '" + counterService.values.keySet() + "'",
|
"Wrong number of metrics, got '" + counterService.getValues().keySet() + "'",
|
||||||
count, counterService.values.size());
|
count, counterService.getValues().size());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
|
|||||||
*/
|
*/
|
||||||
public class RedisRunning extends TestWatcher {
|
public class RedisRunning extends TestWatcher {
|
||||||
|
|
||||||
JedisConnectionFactory connectionFactory;
|
private JedisConnectionFactory connectionFactory;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Statement apply(Statement base, Description description) {
|
public Statement apply(Statement base, Description description) {
|
||||||
|
|||||||
@@ -28,25 +28,29 @@ import org.springframework.boot.actuate.metrics.CounterService;
|
|||||||
*/
|
*/
|
||||||
public class TestCounterService implements CounterService {
|
public class TestCounterService implements CounterService {
|
||||||
|
|
||||||
final Map<String, Long> values = new HashMap<>();
|
private final Map<String, Long> values = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void increment(String metricName) {
|
public void increment(String metricName) {
|
||||||
Long value = values.get(metricName);
|
Long value = getValues().get(metricName);
|
||||||
Long valueToSet = value!=null ? ++value : 1;
|
Long valueToSet = value!=null ? ++value : 1;
|
||||||
values.put(metricName, valueToSet);
|
getValues().put(metricName, valueToSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void decrement(String metricName) {
|
public void decrement(String metricName) {
|
||||||
Long value = values.get(metricName);
|
Long value = getValues().get(metricName);
|
||||||
Long valueToSet = value!=null ? +--value : -1;
|
Long valueToSet = value!=null ? +--value : -1;
|
||||||
values.put(metricName, valueToSet);
|
getValues().put(metricName, valueToSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reset(String metricName) {
|
public void reset(String metricName) {
|
||||||
values.put(metricName, 0L);
|
getValues().put(metricName, 0L);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Long> getValues() {
|
||||||
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package io.spring.initializr.metadata
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude
|
import com.fasterxml.jackson.annotation.JsonInclude
|
||||||
import groovy.transform.ToString
|
import groovy.transform.ToString
|
||||||
|
import io.spring.initializr.metadata.BillOfMaterials.Mapping;
|
||||||
import io.spring.initializr.util.InvalidVersionException
|
import io.spring.initializr.util.InvalidVersionException
|
||||||
import io.spring.initializr.util.Version
|
import io.spring.initializr.util.Version
|
||||||
import io.spring.initializr.util.VersionParser
|
import io.spring.initializr.util.VersionParser
|
||||||
@@ -69,6 +70,10 @@ class BillOfMaterials {
|
|||||||
|
|
||||||
final List<Mapping> mappings = []
|
final List<Mapping> mappings = []
|
||||||
|
|
||||||
|
static BillOfMaterials create(String groupId, String artifactId, String version) {
|
||||||
|
new BillOfMaterials(groupId: groupId, artifactId: artifactId, version: version)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the version placeholder to use for this instance. If a version
|
* Determine the version placeholder to use for this instance. If a version
|
||||||
* property is defined, this returns the reference for the property. Otherwise
|
* property is defined, this returns the reference for the property. Otherwise
|
||||||
@@ -130,6 +135,10 @@ class BillOfMaterials {
|
|||||||
|
|
||||||
private VersionRange range
|
private VersionRange range
|
||||||
|
|
||||||
|
static Mapping create(String versionRange, String version) {
|
||||||
|
new Mapping(versionRange: versionRange, version: version)
|
||||||
|
}
|
||||||
|
|
||||||
String determineVersionRangeRequirement() {
|
String determineVersionRangeRequirement() {
|
||||||
range.toString()
|
range.toString()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,20 +16,20 @@
|
|||||||
|
|
||||||
package io.spring.initializr.web
|
package io.spring.initializr.web
|
||||||
|
|
||||||
import org.junit.runner.RunWith
|
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
|
||||||
|
import io.spring.initializr.web.AbstractInitializrIntegrationTests.Config
|
||||||
|
|
||||||
|
import org.junit.runner.RunWith
|
||||||
import org.springframework.boot.context.embedded.LocalServerPort
|
import org.springframework.boot.context.embedded.LocalServerPort
|
||||||
import org.springframework.boot.test.context.SpringBootTest
|
import org.springframework.boot.test.context.SpringBootTest
|
||||||
import org.springframework.test.context.junit4.SpringRunner
|
import org.springframework.test.context.junit4.SpringRunner
|
||||||
|
|
||||||
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stephane Nicoll
|
* @author Stephane Nicoll
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
@SpringBootTest(classes = Config, webEnvironment = RANDOM_PORT)
|
||||||
abstract class AbstractFullStackInitializrIntegrationTests
|
abstract class AbstractFullStackInitializrIntegrationTests
|
||||||
extends AbstractInitializrIntegrationTests {
|
extends AbstractInitializrIntegrationTests {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user