diff --git a/CHANGELOG.md b/CHANGELOG.md index 39063166..43451b0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ * Breaking: Removed Junit 5 Vintage engine and Junit 4 (can be added in projects that need it) * Fixed vulnerabilities: CVE-2023-52428(nimbus-jose-jwt), CVE-2024-29857,CVE-2024-30171,CVE-2024-30172,CVE-2024-34447 (bouncycastle), CVE-2024-28752 (Apache CXF) * Corrected the use of @Nullable and @Nonnull annotations on created ivos and events, especially on the generated builders +* Add support for h2 embedded database # 1.35 * Update dependencies diff --git a/jpa/src/main/java/de/taimos/dvalin/jpa/config/H2Config.java b/jpa/src/main/java/de/taimos/dvalin/jpa/config/H2Config.java new file mode 100644 index 00000000..c0366f85 --- /dev/null +++ b/jpa/src/main/java/de/taimos/dvalin/jpa/config/H2Config.java @@ -0,0 +1,30 @@ +package de.taimos.dvalin.jpa.config; + +import de.taimos.daemon.spring.conditional.OnSystemProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; + +import javax.sql.DataSource; +import java.util.UUID; + +/** + * Copyright 2024 Cinovo AG
+ *
+ * + * @author fzwirn + */ +@Configuration +@OnSystemProperty(propertyName = "ds.type", propertyValue = "H2") +public class H2Config { + @Bean + public DataSource dataSource() { + EmbeddedDatabaseFactoryBean factoryBean = new EmbeddedDatabaseFactoryBean(); + // randomize database name to get a new one each time + factoryBean.setDatabaseName(UUID.randomUUID().toString()); + factoryBean.setDatabaseType(EmbeddedDatabaseType.H2); + factoryBean.afterPropertiesSet(); + return factoryBean.getObject(); + } +}