From 0f39267a197e1e6ba08dfffa2d9df774fe25c6fe Mon Sep 17 00:00:00 2001 From: Jakub Klimek Date: Sat, 27 Jan 2024 12:07:10 +0100 Subject: [PATCH] refactor: #2366 Change h2 database usage to in mem (#2776) * fix: Change h2 database usage to in mem (#2366) * #2366 Add delay option --- dao/src/main/java/com/iluwatar/dao/App.java | 2 +- .../com/iluwatar/dao/DbCustomerDaoTest.java | 2 +- .../java/com/iluwatar/domainmodel/App.java | 2 +- .../src/main/resources/application.properties | 2 +- .../com/iluwatar/repository/AppConfig.java | 2 +- .../src/main/resources/applicationContext.xml | 2 +- serialized-entity/README.md | 2 +- .../com/iluwatar/serializedentity/App.java | 2 +- .../iluwatar/serializedentity/AppTest.java | 24 +++++++++++++++++++ .../java/com/iluwatar/tablemodule/App.java | 2 +- .../tablemodule/UserTableModuleTest.java | 2 +- .../com/iluwatar/transactionscript/App.java | 2 +- .../transactionscript/HotelDaoImplTest.java | 2 +- .../iluwatar/transactionscript/HotelTest.java | 2 +- 14 files changed, 37 insertions(+), 13 deletions(-) diff --git a/dao/src/main/java/com/iluwatar/dao/App.java b/dao/src/main/java/com/iluwatar/dao/App.java index 20d1db063..f0d19749c 100644 --- a/dao/src/main/java/com/iluwatar/dao/App.java +++ b/dao/src/main/java/com/iluwatar/dao/App.java @@ -44,7 +44,7 @@ import org.h2.jdbcx.JdbcDataSource; */ @Slf4j public class App { - private static final String DB_URL = "jdbc:h2:~/dao"; + private static final String DB_URL = "jdbc:h2:mem:dao;DB_CLOSE_DELAY=-1"; private static final String ALL_CUSTOMERS = "customerDao.getAllCustomers(): "; /** diff --git a/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java b/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java index 666c7634c..cfa7e9882 100644 --- a/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java +++ b/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java @@ -49,7 +49,7 @@ import org.mockito.Mockito; */ class DbCustomerDaoTest { - private static final String DB_URL = "jdbc:h2:~/dao"; + private static final String DB_URL = "jdbc:h2:mem:dao;DB_CLOSE_DELAY=-1"; private DbCustomerDao dao; private final Customer existingCustomer = new Customer(1, "Freddy", "Krueger"); diff --git a/domain-model/src/main/java/com/iluwatar/domainmodel/App.java b/domain-model/src/main/java/com/iluwatar/domainmodel/App.java index 89c848f66..aade9924a 100644 --- a/domain-model/src/main/java/com/iluwatar/domainmodel/App.java +++ b/domain-model/src/main/java/com/iluwatar/domainmodel/App.java @@ -49,7 +49,7 @@ import org.joda.money.Money; */ public class App { - public static final String H2_DB_URL = "jdbc:h2:~/test"; + public static final String H2_DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; public static final String CREATE_SCHEMA_SQL = "CREATE TABLE CUSTOMERS (name varchar primary key, money decimal);" diff --git a/layers/src/main/resources/application.properties b/layers/src/main/resources/application.properties index fad9b72a5..233a9db6c 100644 --- a/layers/src/main/resources/application.properties +++ b/layers/src/main/resources/application.properties @@ -2,7 +2,7 @@ spring.main.web-application-type=none #datasource settings -spring.datasource.url=jdbc:h2:~/databases/cake +spring.datasource.url=jdbc:h2:mem:databases-cake spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=sa diff --git a/repository/src/main/java/com/iluwatar/repository/AppConfig.java b/repository/src/main/java/com/iluwatar/repository/AppConfig.java index ea93c2108..995c790b6 100644 --- a/repository/src/main/java/com/iluwatar/repository/AppConfig.java +++ b/repository/src/main/java/com/iluwatar/repository/AppConfig.java @@ -54,7 +54,7 @@ public class AppConfig { public DataSource dataSource() { var basicDataSource = new BasicDataSource(); basicDataSource.setDriverClassName("org.h2.Driver"); - basicDataSource.setUrl("jdbc:h2:~/databases/person"); + basicDataSource.setUrl("jdbc:h2:mem:databases-person"); basicDataSource.setUsername("sa"); basicDataSource.setPassword("sa"); return basicDataSource; diff --git a/repository/src/main/resources/applicationContext.xml b/repository/src/main/resources/applicationContext.xml index 0de00f39f..718b6b6e6 100644 --- a/repository/src/main/resources/applicationContext.xml +++ b/repository/src/main/resources/applicationContext.xml @@ -30,7 +30,7 @@ - + diff --git a/serialized-entity/README.md b/serialized-entity/README.md index a994aa19c..d18a2c83e 100644 --- a/serialized-entity/README.md +++ b/serialized-entity/README.md @@ -136,7 +136,7 @@ methods to read and deserialize data items to `Country` objects. ```java @Slf4j public class App { - private static final String DB_URL = "jdbc:h2:~/test"; + private static final String DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; private App() { diff --git a/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java b/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java index c86102a82..7f1f46905 100644 --- a/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java +++ b/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java @@ -48,7 +48,7 @@ import org.h2.jdbcx.JdbcDataSource; */ @Slf4j public class App { - private static final String DB_URL = "jdbc:h2:~/test"; + private static final String DB_URL = "jdbc:h2:mem:testdb"; private App() { diff --git a/serialized-entity/src/test/java/com/iluwatar/serializedentity/AppTest.java b/serialized-entity/src/test/java/com/iluwatar/serializedentity/AppTest.java index 52ac9cd6e..a15557d5f 100644 --- a/serialized-entity/src/test/java/com/iluwatar/serializedentity/AppTest.java +++ b/serialized-entity/src/test/java/com/iluwatar/serializedentity/AppTest.java @@ -1,3 +1,27 @@ +/* + * This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt). + * + * The MIT License + * Copyright © 2014-2022 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package com.iluwatar.serializedentity; import org.junit.jupiter.api.Test; diff --git a/table-module/src/main/java/com/iluwatar/tablemodule/App.java b/table-module/src/main/java/com/iluwatar/tablemodule/App.java index 632b4019d..1c528df8a 100644 --- a/table-module/src/main/java/com/iluwatar/tablemodule/App.java +++ b/table-module/src/main/java/com/iluwatar/tablemodule/App.java @@ -45,7 +45,7 @@ import org.h2.jdbcx.JdbcDataSource; */ @Slf4j public final class App { - private static final String DB_URL = "jdbc:h2:~/test"; + private static final String DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; /** * Private constructor. diff --git a/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java b/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java index a9dc41b3e..f45c20176 100644 --- a/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java +++ b/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java @@ -36,7 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; class UserTableModuleTest { - private static final String DB_URL = "jdbc:h2:~/test"; + private static final String DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; private static DataSource createDataSource() { var dataSource = new JdbcDataSource(); diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java index 0525e6e64..909943ce4 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java @@ -46,7 +46,7 @@ import org.slf4j.LoggerFactory; */ public class App { - private static final String H2_DB_URL = "jdbc:h2:~/test"; + private static final String H2_DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java index ae288c703..2f587397d 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java @@ -49,7 +49,7 @@ import org.mockito.Mockito; */ class HotelDaoImplTest { - private static final String DB_URL = "jdbc:h2:~/test"; + private static final String DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; private HotelDaoImpl dao; private Room existingRoom = new Room(1, "Single", 50, false); diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java index 1274a542a..e8a7f6a0b 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java @@ -39,7 +39,7 @@ import org.junit.jupiter.api.Test; */ class HotelTest { - private static final String H2_DB_URL = "jdbc:h2:~/test"; + private static final String H2_DB_URL = "jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"; private Hotel hotel; private HotelDaoImpl dao;