Additional visibility changes needed in new Java code

This commit is contained in:
Dave Syer
2017-01-26 14:28:38 +00:00
committed by Stephane Nicoll
parent ad6430b92a
commit 1385e82eb5
14 changed files with 58 additions and 48 deletions

View File

@@ -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);
} }

View File

@@ -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) + ".",

View File

@@ -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);

View File

@@ -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;
} }

View File

@@ -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();

View File

@@ -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;
}
} }

View File

@@ -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;
} }

View File

@@ -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());

View File

@@ -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() {

View File

@@ -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;
} }
} }

View File

@@ -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) {

View File

@@ -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;
} }
} }

View File

@@ -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()
} }

View File

@@ -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 {