Skip to content

Commit e0cbb0c

Browse files
use spring props annotation processor (#15)
1 parent b89d16c commit e0cbb0c

File tree

5 files changed

+335
-142
lines changed

5 files changed

+335
-142
lines changed

build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
23
import org.gradle.api.tasks.testing.logging.TestLogEvent
34

@@ -28,6 +29,10 @@ dependencyManagement {
2829
}
2930

3031
dependencies {
32+
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
33+
annotationProcessor(libs.lombok)
34+
compileOnly(libs.lombok)
35+
3136
implementation(libs.log4jdbc)
3237
implementation("jakarta.annotation:jakarta.annotation-api")
3338
implementation("org.springframework.boot:spring-boot-autoconfigure")
@@ -73,6 +78,13 @@ tasks.jacocoTestReport {
7378
xml.required = true
7479
html.required = true
7580
}
81+
classDirectories.setFrom(
82+
files(classDirectories.files.map {
83+
fileTree(it) {
84+
exclude("**/Log4jdbcProperties*")
85+
}
86+
})
87+
)
7688
}
7789

7890
pmd {

src/main/java/ru/vasiand/spring/boot/log4jdbc/Log4jdbcAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@
66
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
77
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
88
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
9+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
910
import org.springframework.context.annotation.Bean;
1011

1112
/**
1213
* {@link EnableAutoConfiguration Auto-configuration} for log4jdbc.
1314
*
1415
*/
1516
@AutoConfiguration(after = DataSourceAutoConfiguration.class)
17+
@EnableConfigurationProperties(Log4jdbcProperties.class)
1618
@ConditionalOnClass(DataSourceSpy.class)
1719
@ConditionalOnProperty(name = "log4jdbc.spy.enabled", havingValue = "true", matchIfMissing = true)
1820
public class Log4jdbcAutoConfiguration {
21+
1922
@Bean
2023
public static Log4jdbcBeanPostProcessor log4jdbcBeanPostProcessor() {
2124
return new Log4jdbcBeanPostProcessor();

src/main/java/ru/vasiand/spring/boot/log4jdbc/Log4jdbcBeanPostProcessor.java

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828

2929
import javax.sql.DataSource;
3030

31+
import static ru.vasiand.spring.boot.log4jdbc.Log4jdbcProperties.PROPERTIES;
32+
3133
/**
3234
* A {@link BeanPostProcessor} implementation that sets up log4jdbc logging.
3335
*
@@ -37,28 +39,6 @@ public class Log4jdbcBeanPostProcessor implements BeanPostProcessor {
3739
@Autowired
3840
private Environment environment;
3941

40-
private static final String[] PROPERTIES_TO_COPY = {
41-
"log4jdbc.auto.load.popular.drivers",
42-
"log4jdbc.debug.stack.prefix",
43-
"log4jdbc.drivers",
44-
"log4jdbc.dump.booleanastruefalse",
45-
"log4jdbc.dump.fulldebugstacktrace",
46-
"log4jdbc.dump.sql.addsemicolon",
47-
"log4jdbc.dump.sql.create",
48-
"log4jdbc.dump.sql.delete",
49-
"log4jdbc.dump.sql.insert",
50-
"log4jdbc.dump.sql.maxlinelength",
51-
"log4jdbc.dump.sql.select",
52-
"log4jdbc.dump.sql.update",
53-
"log4jdbc.log4j2.properties.file",
54-
"log4jdbc.sqltiming.error.threshold",
55-
"log4jdbc.sqltiming.warn.threshold",
56-
"log4jdbc.statement.warn",
57-
"log4jdbc.suppress.generated.keys.exception",
58-
"log4jdbc.trim.sql",
59-
"log4jdbc.trim.sql.extrablanklines",
60-
};
61-
6242
@Override
6343
public Object postProcessBeforeInitialization(final Object bean, final String beanName) throws BeansException {
6444
if (bean instanceof DataSource) {
@@ -78,7 +58,7 @@ public Object postProcessAfterInitialization(final Object bean, final String bea
7858
public void postConstruct() {
7959
// Log4jdbc only reads configuration from system properties, so copy relevant environment property to system properties
8060
// See net.sf.log4jdbc.Properties.getProperties()
81-
for (final String property : PROPERTIES_TO_COPY) {
61+
for (final String property : PROPERTIES) {
8262
if (this.environment.containsProperty(property)) {
8363
System.setProperty(property, this.environment.getRequiredProperty(property));
8464
}

0 commit comments

Comments
 (0)