Skip to content

Commit cd59a6b

Browse files
authored
release 3.1.0 (#245)
* release 3.1.0: update to Spring Boot 3
1 parent 83645c9 commit cd59a6b

8 files changed

Lines changed: 64 additions & 28 deletions

File tree

.github/workflows/main.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@ jobs:
1010
build-main:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v6
1414

15-
- name: Set up JDK 11
16-
uses: actions/setup-java@v4
15+
- name: Set up JDK 17
16+
uses: actions/setup-java@v5
1717
with:
1818
distribution: 'temurin'
19-
java-version: '11'
19+
java-version: '17'
2020
cache: 'maven'
2121

2222
- name: Build and test
2323
run: mvn clean verify -P dev
2424

2525
- name: Publish test report
26-
uses: dorny/test-reporter@v1
26+
uses: dorny/test-reporter@v3
2727
if: (success() || failure()) && github.actor != 'dependabot[bot]'
2828
with:
2929
name: Test report
3030
path: '**/surefire-reports/**/*.xml'
3131
reporter: java-junit
3232

3333
- name: Publish test coverage
34-
uses: actions/upload-artifact@v4
34+
uses: actions/upload-artifact@v7
3535
if: success() || failure()
3636
with:
3737
name: test-coverage

checkstyle.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
<property name="scope" value="public"/>
6363
</module>
6464
<module name="JavadocVariable">
65-
<property name="scope" value="public"/>
65+
<property name="accessModifiers" value="public"/>
6666
</module>
6767
<module name="JavadocStyle"/>
6868

pom.xml

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>ru.curs</groupId>
66
<artifactId>spring-boot-starter-celesta</artifactId>
7-
<version>3.0.2-SNAPSHOT</version>
7+
<version>3.1.0-SNAPSHOT</version>
88
<name>spring-boot-starter-celesta</name>
99
<description>Celesta integration with Spring Boot</description>
1010
<packaging>jar</packaging>
@@ -45,19 +45,20 @@
4545
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4646

4747
<!--dependency versions -->
48-
<celesta.version>8.1.0</celesta.version>
49-
<checkstyle.version>10.21.1</checkstyle.version>
50-
<spring.boot.version>2.7.18</spring.boot.version>
48+
<celesta.version>8.2.0</celesta.version>
49+
<checkstyle.version>10.26.1</checkstyle.version>
50+
<spring.boot.version>3.5.15</spring.boot.version>
5151

5252
<!--plugin versions -->
53-
<spotbugs.maven.plugin.version>4.8.6.6</spotbugs.maven.plugin.version>
53+
<spotbugs.maven.plugin.version>4.9.8.5</spotbugs.maven.plugin.version>
5454
<maven.checkstyle.plugin.version>3.6.0</maven.checkstyle.plugin.version>
55-
<maven.compiler.plugin.version>3.13.0</maven.compiler.plugin.version>
55+
<maven.compiler.plugin.version>3.15.0</maven.compiler.plugin.version>
5656
<maven.jar.plugin.version>3.4.2</maven.jar.plugin.version>
57+
<maven.resources.plugin.version>3.5.0</maven.resources.plugin.version>
5758
<maven.javadoc.plugin.version>3.11.2</maven.javadoc.plugin.version>
5859
<maven.site.plugin.version>3.21.0</maven.site.plugin.version>
5960
<maven.source.plugin.version>3.3.1</maven.source.plugin.version>
60-
<maven.surefire.plugin.version>3.5.2</maven.surefire.plugin.version>
61+
<maven.surefire.plugin.version>3.5.6</maven.surefire.plugin.version>
6162
</properties>
6263

6364
<distributionManagement>
@@ -124,19 +125,31 @@
124125
<dependency>
125126
<groupId>org.slf4j</groupId>
126127
<artifactId>slf4j-simple</artifactId>
127-
<version>2.0.16</version>
128+
<version>2.0.18</version>
128129
<scope>test</scope>
129130
</dependency>
130131
</dependencies>
131132

132133
<build>
133134
<plugins>
135+
<plugin>
136+
<groupId>org.apache.maven.plugins</groupId>
137+
<artifactId>maven-resources-plugin</artifactId>
138+
<version>${maven.resources.plugin.version}</version>
139+
<configuration>
140+
<!-- Keep VCS placeholder files (e.g. testScore/.gitignore) so that
141+
otherwise-empty resource directories are still copied to the
142+
classpath. Without this, default excludes drop .gitignore and the
143+
testScore directory disappears, breaking score-path resolution. -->
144+
<addDefaultExcludes>false</addDefaultExcludes>
145+
</configuration>
146+
</plugin>
134147
<plugin>
135148
<groupId>org.apache.maven.plugins</groupId>
136149
<artifactId>maven-compiler-plugin</artifactId>
137150
<version>${maven.compiler.plugin.version}</version>
138151
<configuration>
139-
<release>11</release>
152+
<release>17</release>
140153
<encoding>utf-8</encoding>
141154
<compilerArgs>
142155
<arg>-Werror</arg>
@@ -146,7 +159,7 @@
146159
<plugin>
147160
<groupId>org.jacoco</groupId>
148161
<artifactId>jacoco-maven-plugin</artifactId>
149-
<version>0.8.12</version>
162+
<version>0.8.15</version>
150163
<executions>
151164
<execution>
152165
<goals>
@@ -186,7 +199,7 @@
186199
<artifactId>maven-javadoc-plugin</artifactId>
187200
<version>${maven.javadoc.plugin.version}</version>
188201
<configuration>
189-
<source>8</source>
202+
<source>17</source>
190203
<show>public</show>
191204
<attach>true</attach>
192205
<maxmemory>1024m</maxmemory>

src/main/java/ru/curs/celesta/spring/boot/autoconfigure/CelestaAutoConfiguration.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import org.springframework.beans.factory.ObjectProvider;
44
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.boot.autoconfigure.AutoConfiguration;
56
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
67
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
78
import org.springframework.boot.context.properties.EnableConfigurationProperties;
89
import org.springframework.boot.context.properties.PropertyMapper;
910
import org.springframework.context.annotation.Bean;
10-
import org.springframework.context.annotation.Configuration;
1111
import org.springframework.context.annotation.EnableAspectJAutoProxy;
1212
import org.springframework.core.io.Resource;
1313
import org.springframework.core.io.ResourceLoader;
@@ -24,6 +24,7 @@
2424
import javax.sql.DataSource;
2525
import java.io.File;
2626
import java.io.IOException;
27+
import java.io.UncheckedIOException;
2728
import java.util.ArrayList;
2829
import java.util.Arrays;
2930
import java.util.List;
@@ -35,7 +36,7 @@
3536
*
3637
* @since 1.0.0
3738
*/
38-
@Configuration
39+
@AutoConfiguration
3940
@EnableConfigurationProperties(CelestaProperties.class)
4041
@EnableAspectJAutoProxy
4142
public class CelestaAutoConfiguration {
@@ -118,6 +119,8 @@ public Celesta celesta(CelestaProperties celestaProperties, ConnectionPool conne
118119
.to(x -> properties.put("skip.dbupdate", String.valueOf(x)));
119120
map.from(celestaProperties::isForceDbInitialize)
120121
.to(x -> properties.put("force.dbinitialize", String.valueOf(x)));
122+
map.from(celestaProperties::isLogLogins)
123+
.to(x -> properties.put("log.logins", String.valueOf(x)));
121124

122125
return Celesta.createInstance(properties, connectionPool);
123126
}
@@ -150,7 +153,7 @@ private File getFileFromResource(Resource resource) {
150153
try {
151154
return resource.getFile();
152155
} catch (IOException ex) {
153-
throw new RuntimeException(ex); // This should never happen though
156+
throw new UncheckedIOException(ex); // This should never happen though
154157
}
155158
}
156159

src/main/java/ru/curs/celesta/spring/boot/autoconfigure/CelestaProperties.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class CelestaProperties {
1717
private H2Properties h2;
1818
private boolean skipDbUpdate = false;
1919
private boolean forceDbInitialize = false;
20+
private boolean logLogins = false;
2021
private LinkedHashSet<String> celestaScan;
2122

2223
public final String getScorePath() {
@@ -59,6 +60,14 @@ public final void setForceDbInitialize(boolean forceDbInitialize) {
5960
this.forceDbInitialize = forceDbInitialize;
6061
}
6162

63+
public final boolean isLogLogins() {
64+
return logLogins;
65+
}
66+
67+
public final void setLogLogins(boolean logLogins) {
68+
this.logLogins = logLogins;
69+
}
70+
6271
public final LinkedHashSet<String> getCelestaScan() {
6372
return celestaScan;
6473
}

src/main/resources/META-INF/spring.factories renamed to src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
21
ru.curs.celesta.spring.boot.autoconfigure.CelestaAutoConfiguration

src/test/java/ru/curs/celesta/spring/boot/autoconfigure/CelestaAutoConfigurationTest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
import javax.sql.DataSource;
1111
import java.io.File;
12+
import java.sql.Connection;
1213
import java.sql.SQLException;
14+
import java.sql.Statement;
1315
import java.util.Properties;
1416

1517
import static org.junit.jupiter.api.Assertions.*;
@@ -33,19 +35,23 @@ void testBeanRegistration() {
3335
Properties p = celesta.getSetupProperties();
3436

3537
assertAll(
36-
() -> assertEquals(4, p.size()),
38+
() -> assertEquals(5, p.size()),
3739
() -> assertEquals("true", p.getProperty("h2.in-memory")),
3840
() -> assertEquals("false", p.getProperty("h2.referential.integrity")),
3941
() -> assertEquals("false", p.getProperty("skip.dbupdate")),
40-
() -> assertEquals("false", p.getProperty("force.dbinitialize"))
42+
() -> assertEquals("false", p.getProperty("force.dbinitialize")),
43+
() -> assertEquals("false", p.getProperty("log.logins"))
4144
);
4245
shutDownH2(celesta);
4346
}
4447
}));
4548
}
4649

4750
private void shutDownH2(Celesta celesta) throws SQLException {
48-
celesta.getConnectionPool().get().createStatement().execute("SHUTDOWN");
51+
try (Connection connection = celesta.getConnectionPool().get();
52+
Statement statement = connection.createStatement()) {
53+
statement.execute("SHUTDOWN");
54+
}
4955
}
5056

5157

@@ -72,7 +78,7 @@ void testBeanRegistrationWithFullConfiguration() {
7278
Properties p = celesta.getSetupProperties();
7379

7480
assertAll(
75-
() -> assertEquals(9, p.size()),
81+
() -> assertEquals(10, p.size()),
7682
() -> assertEquals(
7783
"jdbc:h2:mem:celesta;DB_CLOSE_DELAY=-1",
7884
p.getProperty("rdbms.connection.url")
@@ -84,6 +90,7 @@ void testBeanRegistrationWithFullConfiguration() {
8490
() -> assertEquals("1234", p.getProperty("h2.port")),
8591
() -> assertEquals("true", p.getProperty("skip.dbupdate")),
8692
() -> assertEquals("true", p.getProperty("force.dbinitialize")),
93+
() -> assertEquals("true", p.getProperty("log.logins")),
8794
() -> assertEquals(
8895
"ru.curs.celesta.spring.boot,ru.curs.celesta.spring",
8996
p.getProperty("celestaScan")
@@ -133,7 +140,7 @@ void testRegistrationWithExternalConnectionPool() {
133140
try (Celesta celesta = context.getBean(Celesta.class)) {
134141
//Celesta bean is registered
135142
assertNotNull(context.getBean(Celesta.class));
136-
assertTrue(celesta.getConnectionPool() instanceof DatasourceConnectionPool);
143+
assertInstanceOf(DatasourceConnectionPool.class, celesta.getConnectionPool());
137144
shutDownH2(celesta);
138145
}
139146
}));

src/test/java/ru/curs/celesta/transaction/CelestaTransactionTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import ru.curs.celesta.dbutils.IProfiler;
1414
import ru.curs.celesta.spring.boot.autoconfigure.CelestaAutoConfiguration;
1515

16+
import java.sql.Connection;
1617
import java.sql.SQLException;
18+
import java.sql.Statement;
1719

1820
import static org.junit.jupiter.api.Assertions.assertEquals;
1921
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -113,7 +115,10 @@ public void rollback(){
113115
}
114116

115117
private void shutDownH2(Celesta celesta) throws SQLException {
116-
celesta.getConnectionPool().get().createStatement().execute("SHUTDOWN");
118+
try (Connection connection = celesta.getConnectionPool().get();
119+
Statement statement = connection.createStatement()) {
120+
statement.execute("SHUTDOWN");
121+
}
117122
}
118123

119124
@Test

0 commit comments

Comments
 (0)