Skip to content

Commit 2270bdb

Browse files
authored
Fully switch to gradle dependency management (#806)
* Add pom validation test cases * Fully convert dependency management to gradle's version catalog
1 parent 1fe17f3 commit 2270bdb

File tree

19 files changed

+173
-60
lines changed

19 files changed

+173
-60
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: pom validation
2+
on: [push, pull_request]
3+
jobs:
4+
test:
5+
name: test (JDK ${{ matrix.java }})
6+
runs-on: ubuntu-latest
7+
timeout-minutes: 10
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
java: [ '1.8', '11.x', '17' ] # LTS's.
12+
steps:
13+
- name: actions/setup-java@v1 (JDK ${{ matrix.java }})
14+
uses: actions/setup-java@v1
15+
with:
16+
java-version: ${{ matrix.java }}
17+
architecture: x64
18+
- uses: actions/checkout@v1
19+
- run: |
20+
mkdir -p ~/.gradle
21+
echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties
22+
- run: python3 tests/maven-pom-validation-test.py
23+

build.gradle.kts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,6 @@ subprojects {
6464
group = rootProject.group
6565
version = rootProject.version
6666

67-
dependencies {
68-
implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
69-
annotationProcessor(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
70-
}
71-
7267
tasks.named("compileJava") {
7368
inputs.files(tasks.named("processResources"))
7469
}

gradle/libs.versions.toml

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,61 @@
22
jsonwebtoken = "0.11.5"
33
retrofit2 = "2.9.0"
44
jjwt = "0.11.5"
5+
jackson = "2.13.3"
6+
assertj = "3.22.0"
7+
junit = "5.8.2"
8+
slf4j = "1.7.36"
9+
json-path = "2.7.0"
10+
mockito = "4.5.1"
11+
okhttp3 = "4.9.3"
512

613
[libraries]
714
retrofit2-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit2" }
815
retrofit2-converter-jackson = { module = "com.squareup.retrofit2:converter-jackson", version.ref = "retrofit2" }
916
guava = { group = "com.google.guava", name = "guava", version = "31.1-jre" }
1017
system-lambda = { group = "com.github.stefanbirkner", name = "system-lambda", version = "1.2.1" }
11-
wiremock = { group = "com.github.tomakehurst", name = "wiremock-jre8", version = "2.33.2" }
1218
jjwt-api = { module = "io.jsonwebtoken:jjwt-api", version.ref = "jjwt" }
1319
jjwt-impl = { module = "io.jsonwebtoken:jjwt-impl", version.ref = "jjwt" }
1420
jjwt-jackson = { module = "io.jsonwebtoken:jjwt-jackson", version.ref = "jjwt" }
21+
lombok = { module = "org.projectlombok:lombok", version = "1.18.24" }
22+
23+
okhttp3-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp3" }
24+
25+
jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
26+
jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" }
27+
jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
28+
jackson-module-parameter-names = { module = "com.fasterxml.jackson.module:jackson-module-parameter-names", version.ref = "jackson" }
29+
30+
findbugs-jsr305 = { module = "com.google.code.findbugs:jsr305", version = "3.0.2" }
31+
32+
javax-servlet-api = { module = "javax.servlet:javax.servlet-api", version = "4.0.1" }
33+
34+
# logging
35+
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
36+
jul-to-slf4j = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" }
37+
38+
# tests
39+
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
40+
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
41+
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
42+
junit-vintage-engine = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "junit" }
43+
json-path = { module = "com.jayway.jsonpath:json-path", version.ref = "json-path" }
44+
json-path-assert = { module = "com.jayway.jsonpath:json-path-assert", version.ref = "json-path" }
45+
jsonassert = { module = "org.skyscreamer:jsonassert", version = "1.5.1" }
46+
commons-io = { module = "commons-io:commons-io", version = "2.11.0" }
47+
reflections = { module = "org.reflections:reflections", version = "0.10.2" }
48+
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
49+
mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" }
50+
spring-test = { module = "org.springframework:spring-test", version = "5.3.22" }
51+
wiremock = { group = "com.github.tomakehurst", name = "wiremock-jre8", version = "2.33.2" }
52+
1553

1654
[bundles]
1755
retrofit2 = ["retrofit2-converter-jackson", "retrofit2-retrofit"]
18-
56+
tests = [
57+
"assertj-core",
58+
"junit-jupiter-api", "junit-jupiter-params", "junit-vintage-engine",
59+
"slf4j-api",
60+
"json-path", "json-path-assert", "jsonassert",
61+
"mockito-core", "mockito-junit-jupiter",
62+
]

line-bot-api-client/build.gradle.kts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,21 @@ tasks.check { dependsOn(integrationTest) }
4848

4949
dependencies {
5050
api(project(":line-bot-model"))
51-
implementation("org.slf4j:slf4j-api")
52-
implementation("com.squareup.okhttp3:logging-interceptor")
51+
implementation(libs.slf4j.api)
52+
implementation(libs.okhttp3.logging.interceptor)
5353
implementation(libs.bundles.retrofit2)
5454

55-
testCompileOnly("org.projectlombok:lombok")
56-
testAnnotationProcessor("org.projectlombok:lombok")
55+
testCompileOnly(libs.lombok)
56+
testAnnotationProcessor(libs.lombok)
5757

5858
testImplementation(libs.system.lambda)
5959
testImplementation(libs.wiremock)
60-
testImplementation("org.springframework.boot:spring-boot-starter-test")
60+
testImplementation(libs.bundles.tests)
61+
testImplementation(libs.jul.to.slf4j)
6162

62-
integrationTestCompileOnly("org.projectlombok:lombok")
63-
integrationTestAnnotationProcessor("org.projectlombok:lombok")
63+
integrationTestImplementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
64+
integrationTestCompileOnly(libs.lombok)
65+
integrationTestAnnotationProcessor(libs.lombok)
6466
integrationTestImplementation(libs.guava)
6567
integrationTestImplementation(libs.jjwt.api)
6668
integrationTestImplementation(libs.jjwt.jackson)

line-bot-cli/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import org.springframework.boot.gradle.tasks.bundling.BootJar
1919
apply(plugin = "org.springframework.boot")
2020

2121
dependencies {
22+
implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
23+
2224
implementation(project(":line-bot-spring-boot"))
2325
implementation(project(":line-bot-api-client"))
2426
implementation("org.springframework.boot:spring-boot-starter-web")

line-bot-model/build.gradle.kts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
*/
1616

1717
dependencies {
18-
api("com.fasterxml.jackson.core:jackson-databind") // Provide configured ObjectMapper.
19-
implementation("com.fasterxml.jackson.core:jackson-annotations")
20-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
21-
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names")
22-
implementation("com.google.code.findbugs:jsr305:3.0.2")
18+
api(libs.jackson.databind) // Provide configured ObjectMapper.
19+
implementation(libs.jackson.annotations)
20+
implementation(libs.jackson.datatype.jsr310)
21+
implementation(libs.jackson.module.parameter.names)
22+
implementation(libs.findbugs.jsr305)
2323

24-
testImplementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
25-
testImplementation("com.fasterxml.jackson.module:jackson-module-parameter-names")
2624
testImplementation(libs.guava)
27-
testImplementation("org.springframework.boot:spring-boot-starter-test")
25+
testImplementation(libs.reflections)
26+
testImplementation(libs.commons.io)
27+
testImplementation(libs.bundles.tests)
2828
}

line-bot-model/src/test/java/com/linecorp/bot/model/event/CallbackRequestTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
import java.util.List;
2727
import java.util.stream.Collectors;
2828

29+
import org.apache.commons.io.IOUtils;
2930
import org.junit.jupiter.api.Test;
30-
import org.springframework.util.StreamUtils;
3131

3232
import com.fasterxml.jackson.databind.ObjectMapper;
3333

@@ -68,7 +68,7 @@ interface RequestTester {
6868

6969
private void parse(String resourceName, RequestTester callback) throws IOException {
7070
try (InputStream resource = getClass().getClassLoader().getResourceAsStream(resourceName)) {
71-
String json = StreamUtils.copyToString(resource, StandardCharsets.UTF_8);
71+
String json = IOUtils.toString(resource, StandardCharsets.UTF_8);
7272
ObjectMapper objectMapper = TestUtil.objectMapperWithProductionConfiguration(false);
7373
CallbackRequest callbackRequest = objectMapper.readValue(json, CallbackRequest.class);
7474

line-bot-model/src/test/java/com/linecorp/bot/model/event/ReplyEventTest.java

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616

1717
package com.linecorp.bot.model.event;
1818

19-
import static java.util.stream.Collectors.toList;
2019
import static org.assertj.core.api.Assertions.assertThat;
20+
import static org.reflections.scanners.Scanners.SubTypes;
2121

22+
import java.util.ArrayList;
2223
import java.util.List;
2324

2425
import org.junit.jupiter.api.Test;
25-
import org.springframework.beans.factory.config.BeanDefinition;
26-
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
27-
import org.springframework.util.ClassUtils;
26+
import org.reflections.Reflections;
2827

2928
import com.google.common.base.Preconditions;
3029

@@ -40,7 +39,7 @@ public void eventWithReplyTokenShouldBeImplementReplySupportTest() {
4039
log.info("eventClasses = {}", eventClasses);
4140

4241
for (Class<?> eventClass : eventClasses) {
43-
final boolean hasReplyTokenMethod = ClassUtils.hasMethod(eventClass, "getReplyToken");
42+
final boolean hasReplyTokenMethod = hasMethod(eventClass, "getReplyToken");
4443

4544
if (hasReplyTokenMethod) {
4645
assertThat(ReplyEvent.class)
@@ -49,23 +48,19 @@ public void eventWithReplyTokenShouldBeImplementReplySupportTest() {
4948
}
5049
}
5150

52-
private static List<Class<?>> getAllEventClass() {
53-
ClassPathScanningCandidateComponentProvider scanningProvider =
54-
new ClassPathScanningCandidateComponentProvider(false);
55-
scanningProvider
56-
.addIncludeFilter((metadataReader, metadataReaderFactory) -> true);
51+
private static boolean hasMethod(Class<?> clazz, String method) {
52+
try {
53+
clazz.getMethod(method);
54+
return true;
55+
} catch (NoSuchMethodException e) {
56+
return false;
57+
}
58+
}
5759

58-
return scanningProvider.findCandidateComponents(Event.class.getPackage().getName())
59-
.stream()
60-
.map(BeanDefinition::getBeanClassName)
61-
.map(className -> {
62-
try {
63-
return (Class<?>) Class.forName(className);
64-
} catch (ClassNotFoundException e) {
65-
throw new RuntimeException(e);
66-
}
67-
})
68-
.filter(Event.class::isAssignableFrom)
69-
.collect(toList());
60+
private static List<Class<?>> getAllEventClass() {
61+
return new ArrayList<>(
62+
new Reflections(Event.class.getPackage().getName())
63+
.get(SubTypes.of(Event.class).asClass())
64+
);
7065
}
7166
}

line-bot-model/src/test/java/com/linecorp/bot/model/message/flex/FlexDeserializeSerializeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import static java.lang.ClassLoader.getSystemResource;
2020
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
21-
import static org.springframework.util.StreamUtils.copyToString;
2221

2322
import java.io.FileInputStream;
2423
import java.nio.charset.StandardCharsets;
@@ -27,6 +26,7 @@
2726
import java.nio.file.Paths;
2827
import java.util.stream.Stream;
2928

29+
import org.apache.commons.io.IOUtils;
3030
import org.junit.jupiter.api.DynamicTest;
3131
import org.junit.jupiter.api.TestFactory;
3232
import org.skyscreamer.jsonassert.JSONAssert;
@@ -59,7 +59,7 @@ private DynamicTest testResource(final Path resource) {
5959
return dynamicTest(resource.getFileName().toString(), () -> {
6060
final FileInputStream fileInputStream = new FileInputStream(resource.toFile());
6161

62-
final String json = copyToString(fileInputStream, StandardCharsets.UTF_8);
62+
final String json = IOUtils.toString(fileInputStream, StandardCharsets.UTF_8);
6363
log.debug("JSON : {}", json);
6464

6565
final FlexContainer flexContainer = mapper.readValue(json, FlexContainer.class);

line-bot-model/src/test/java/com/linecorp/bot/model/response/demographics/GetFriendsDemographicsResponseTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818

1919
import static java.lang.ClassLoader.getSystemResourceAsStream;
2020
import static org.assertj.core.api.Assertions.assertThat;
21-
import static org.springframework.util.StreamUtils.copyToByteArray;
2221

2322
import java.io.IOException;
2423

24+
import org.apache.commons.io.IOUtils;
2525
import org.junit.jupiter.api.Test;
2626

2727
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -38,7 +38,7 @@ public class GetFriendsDemographicsResponseTest {
3838

3939
@Test
4040
public void reconstructTest() throws IOException {
41-
final byte[] bytes = copyToByteArray(getSystemResourceAsStream("friends-demographics.json"));
41+
final byte[] bytes = IOUtils.toByteArray(getSystemResourceAsStream("friends-demographics.json"));
4242

4343
// Do
4444
final GetFriendsDemographicsResponse deserialized =

0 commit comments

Comments
 (0)