Skip to content

Commit be5e129

Browse files
authored
Merge pull request #11 from piomin/renovate/spring-boot
Update dependency org.springframework.boot:spring-boot-starter-parent to v2.7.7
2 parents d17af99 + 095bfb4 commit be5e129

File tree

5 files changed

+66
-20
lines changed

5 files changed

+66
-20
lines changed

.circleci/config.yml

+9-6
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@ version: 2.1
33
jobs:
44
build:
55
docker:
6-
- image: 'cimg/openjdk:17.0.5'
6+
- image: 'cimg/openjdk:17.0'
77
steps:
88
- checkout
99
- run:
1010
name: Analyze on SonarCloud
11-
command: mvn verify sonar:sonar
11+
command: mvn verify sonar:sonar -DskipTests
1212

1313
executors:
14-
j17:
15-
docker:
16-
- image: 'cimg/openjdk:17.0'
14+
machine_executor_amd64:
15+
machine:
16+
image: ubuntu-2204:2022.04.2
17+
environment:
18+
architecture: "amd64"
19+
platform: "linux/amd64"
1720

1821
orbs:
1922
maven: circleci/[email protected]
@@ -22,6 +25,6 @@ workflows:
2225
maven_test:
2326
jobs:
2427
- maven/test:
25-
executor: j17
28+
executor: machine_executor_amd64
2629
- build:
2730
context: SonarCloud

pom.xml

+27-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>2.6.1</version>
10+
<version>2.7.7</version>
1111
</parent>
1212

1313
<groupId>pl.piomin.samples</groupId>
@@ -19,6 +19,7 @@
1919
<sonar.projectKey>piomin_sample-spring-boot-on-kubernetes</sonar.projectKey>
2020
<sonar.organization>piomin</sonar.organization>
2121
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
22+
<testcontainers.version>1.17.3</testcontainers.version>
2223
</properties>
2324

2425
<dependencies>
@@ -52,12 +53,35 @@
5253
<scope>test</scope>
5354
</dependency>
5455
<dependency>
55-
<groupId>de.flapdoodle.embed</groupId>
56-
<artifactId>de.flapdoodle.embed.mongo</artifactId>
56+
<groupId>org.testcontainers</groupId>
57+
<artifactId>mongodb</artifactId>
58+
<scope>test</scope>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.testcontainers</groupId>
62+
<artifactId>junit-jupiter</artifactId>
63+
<scope>test</scope>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.instancio</groupId>
67+
<artifactId>instancio-junit</artifactId>
68+
<version>2.3.0</version>
5769
<scope>test</scope>
5870
</dependency>
5971
</dependencies>
6072

73+
<dependencyManagement>
74+
<dependencies>
75+
<dependency>
76+
<groupId>org.testcontainers</groupId>
77+
<artifactId>testcontainers-bom</artifactId>
78+
<version>${testcontainers.version}</version>
79+
<type>pom</type>
80+
<scope>import</scope>
81+
</dependency>
82+
</dependencies>
83+
</dependencyManagement>
84+
6185
<build>
6286
<plugins>
6387
<plugin>

readme.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Spring Boot on Kubernetes Demo Project [![Twitter](https://img.shields.io/twitter/follow/piotr_minkowski.svg?style=social&logo=twitter&label=Follow%20Me)](https://twitter.com/piotr_minkowski)
22

3+
[![CircleCI](https://circleci.com/gh/piomin/sample-spring-on-kubernetes.svg?style=svg)](https://circleci.com/gh/piomin/sample-spring-on-kubernetes)
4+
5+
[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-black.svg)](https://sonarcloud.io/dashboard?id=piomin_sample-spring-on-kubernetes)
6+
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=piomin_sample-spring-on-kubernetes&metric=bugs)](https://sonarcloud.io/dashboard?id=piomin_sample-spring-on-kubernetes)
7+
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=piomin_sample-spring-on-kubernetes&metric=coverage)](https://sonarcloud.io/dashboard?id=piomin_sample-spring-on-kubernetes)
8+
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=piomin_sample-spring-on-kubernetes&metric=ncloc)](https://sonarcloud.io/dashboard?id=piomin_sample-spring-on-kubernetes)
9+
310
In this project I'm demonstrating different mechanisms of deploying application on Kubernetes. The example application application is simple Spring Boot app that exposes some HTTP endpoints for CRUD operations and connects to MongoDB on cluster.
411

512
## Getting Started

src/test/java/pl/piomin/samples/springboot/kubernetes/PersonControllerTest.java

+23-8
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,39 @@
11
package pl.piomin.samples.springboot.kubernetes;
22

3-
import org.junit.jupiter.api.*;
4-
import pl.piomin.samples.springboot.kubernetes.domain.Gender;
5-
import pl.piomin.samples.springboot.kubernetes.domain.Person;
6-
3+
import org.junit.jupiter.api.MethodOrderer;
4+
import org.junit.jupiter.api.Order;
5+
import org.junit.jupiter.api.Test;
6+
import org.junit.jupiter.api.TestMethodOrder;
77
import org.springframework.beans.factory.annotation.Autowired;
88
import org.springframework.boot.test.context.SpringBootTest;
99
import org.springframework.boot.test.web.client.TestRestTemplate;
10-
import org.springframework.boot.web.server.LocalServerPort;
10+
import org.springframework.test.context.DynamicPropertyRegistry;
11+
import org.springframework.test.context.DynamicPropertySource;
12+
import org.testcontainers.containers.MongoDBContainer;
13+
import org.testcontainers.junit.jupiter.Container;
14+
import org.testcontainers.junit.jupiter.Testcontainers;
15+
import pl.piomin.samples.springboot.kubernetes.domain.Gender;
16+
import pl.piomin.samples.springboot.kubernetes.domain.Person;
1117

12-
import static org.junit.jupiter.api.Assertions.*;
18+
import static org.junit.jupiter.api.Assertions.assertEquals;
19+
import static org.junit.jupiter.api.Assertions.assertNotNull;
1320

1421
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
22+
@Testcontainers
1523
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
1624
public class PersonControllerTest {
1725

1826
private static String id;
1927

20-
@LocalServerPort
21-
int port;
28+
@Container
29+
static MongoDBContainer mongodb = new MongoDBContainer("mongo:4.4");
30+
31+
@DynamicPropertySource
32+
static void registerMongoProperties(DynamicPropertyRegistry registry) {
33+
String uri = mongodb.getConnectionString() + "/test";
34+
registry.add("spring.data.mongodb.uri", () -> uri);
35+
}
36+
2237
@Autowired
2338
TestRestTemplate restTemplate;
2439

src/test/resources/application.yml

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ spring:
44
data:
55
mongodb:
66
uri: mongodb://localhost:27071/test
7-
mongodb:
8-
embedded:
9-
version: 4.0.2
107
logging:
118
pattern:
129
console: "%d{yyyy-MM-dd HH:mm:ss} ${LOG_LEVEL_PATTERN:-%5p} %m%n"

0 commit comments

Comments
 (0)