This is an automated email from the ASF dual-hosted git repository.
pefernan pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 509d51cbb5 incubator-kie-issues#1615: Fix Kie Flyway execution in
Windows (#3776)
509d51cbb5 is described below
commit 509d51cbb54a2224ce273a27c07daa9f0f09734c
Author: Pere Fernández <[email protected]>
AuthorDate: Thu Nov 14 13:26:23 2024 +0100
incubator-kie-issues#1615: Fix Kie Flyway execution in Windows (#3776)
---
.../impl/DefaultKieModuleFlywayConfigLoader.java | 5 +--
.../flyway/integration/KieFlywayConfiguration.java | 29 -------------
.../flyway/integration/KieFlywayNamedModule.java | 18 ++++++++-
.../kie/flyway/integration/KieFlywayRunner.java | 15 ++++---
.../integration/KieFlywayRunnerConfiguration.java} | 15 +++++--
.../initializer/KieFlywayInitializerTest.java | 14 +++----
.../DefaultKieModuleFlywayConfigLoaderTest.java | 14 ++++---
.../flyway/integration/KieFlywayRunnerTest.java | 34 ++++++++--------
.../integration/TestKieFlywayConfiguration.java | 47 ----------------------
.../org/kie/flyway/test/AbstractKieFlywayTest.java | 40 +++++++++---------
.../flyway/quarkus/KieFlywayQuarkusRecorder.java | 14 ++++++-
.../quarkus/KieFlywayQuarkusRuntimeConfig.java | 22 +---------
.../springboot/KieFlywaySpringbootInitializer.java | 12 +++++-
.../springboot/KieFlywaySpringbootProperties.java | 8 ++--
14 files changed, 117 insertions(+), 170 deletions(-)
diff --git
a/addons/common/flyway/src/main/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoader.java
b/addons/common/flyway/src/main/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoader.java
index 71665bc63d..986d9eada6 100644
---
a/addons/common/flyway/src/main/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoader.java
+++
b/addons/common/flyway/src/main/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoader.java
@@ -19,7 +19,6 @@
package org.kie.flyway.initializer.impl;
-import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
@@ -33,9 +32,7 @@ import org.slf4j.LoggerFactory;
public class DefaultKieModuleFlywayConfigLoader implements
KieModuleFlywayConfigLoader {
- public static String KIE_FLYWAY_DESCRIPTOR_FILE_NAME =
"kie-flyway.properties";
-
- public static String KIE_FLYWAY_DESCRIPTOR_FILE_LOCATION = "META-INF" +
File.separator + KIE_FLYWAY_DESCRIPTOR_FILE_NAME;
+ public static String KIE_FLYWAY_DESCRIPTOR_FILE_LOCATION =
"META-INF/kie-flyway.properties";
public static final String MODULE_PREFIX = "module.";
public static final String MODULE_NAME_KEY = MODULE_PREFIX + "name";
diff --git
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayConfiguration.java
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayConfiguration.java
deleted file mode 100644
index c99dba53b8..0000000000
---
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayConfiguration.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.flyway.integration;
-
-import java.util.Map;
-
-public interface KieFlywayConfiguration<T extends KieFlywayNamedModule> {
-
- boolean isEnabled();
-
- Map<String, T> getModules();
-}
diff --git
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayNamedModule.java
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayNamedModule.java
index e3ebe1b6a0..3b4d064445 100644
---
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayNamedModule.java
+++
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayNamedModule.java
@@ -19,7 +19,21 @@
package org.kie.flyway.integration;
-public interface KieFlywayNamedModule {
+public class KieFlywayNamedModule {
- boolean isEnabled();
+ private final String name;
+ private final boolean enabled;
+
+ public KieFlywayNamedModule(String name, boolean enabled) {
+ this.name = name;
+ this.enabled = enabled;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isEnabled() {
+ return enabled;
+ }
}
diff --git
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunner.java
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunner.java
index 47d55a96e6..ddc68b35d0 100644
---
a/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunner.java
+++
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunner.java
@@ -20,7 +20,6 @@
package org.kie.flyway.integration;
import java.util.Collection;
-import java.util.Map;
import java.util.Objects;
import javax.sql.DataSource;
@@ -34,18 +33,18 @@ public class KieFlywayRunner {
private static final Logger LOGGER =
LoggerFactory.getLogger(KieFlywayRunner.class);
private final ClassLoader classLoader;
- private final KieFlywayConfiguration<? extends KieFlywayNamedModule>
configuration;
+ private final KieFlywayRunnerConfiguration configuration;
- private KieFlywayRunner(KieFlywayConfiguration<? extends
KieFlywayNamedModule> configuration) {
+ private KieFlywayRunner(KieFlywayRunnerConfiguration configuration) {
this(configuration, Thread.currentThread().getContextClassLoader());
}
- protected KieFlywayRunner(KieFlywayConfiguration<? extends
KieFlywayNamedModule> configuration, ClassLoader classLoader) {
+ protected KieFlywayRunner(KieFlywayRunnerConfiguration configuration,
ClassLoader classLoader) {
this.configuration = configuration;
this.classLoader = classLoader;
}
- public static KieFlywayRunner get(KieFlywayConfiguration<? extends
KieFlywayNamedModule> configuration) {
+ public static KieFlywayRunner get(KieFlywayRunnerConfiguration
configuration) {
return new KieFlywayRunner(configuration);
}
@@ -60,9 +59,9 @@ public class KieFlywayRunner {
assertValue(dataSource, "Kie Flyway: Cannot run Kie Flyway migration
default datasource is null");
Collection<String> excludedModules = configuration.getModules()
- .entrySet()
- .stream().filter(entry -> !entry.getValue().isEnabled())
- .map(Map.Entry::getKey)
+ .stream()
+ .filter(module -> !module.isEnabled())
+ .map(KieFlywayNamedModule::getName)
.toList();
KieFlywayInitializer.builder()
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayNamedModule.java
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunnerConfiguration.java
similarity index 70%
rename from
addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayNamedModule.java
rename to
addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunnerConfiguration.java
index 8eea404acc..81ebbee4b9 100644
---
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayNamedModule.java
+++
b/addons/common/flyway/src/main/java/org/kie/flyway/integration/KieFlywayRunnerConfiguration.java
@@ -19,16 +19,23 @@
package org.kie.flyway.integration;
-public class TestKieFlywayNamedModule implements KieFlywayNamedModule {
+import java.util.Collection;
- private boolean enabled;
+public class KieFlywayRunnerConfiguration {
- public TestKieFlywayNamedModule(boolean enabled) {
+ private final boolean enabled;
+ private final Collection<KieFlywayNamedModule> modules;
+
+ public KieFlywayRunnerConfiguration(boolean enabled,
Collection<KieFlywayNamedModule> modules) {
this.enabled = enabled;
+ this.modules = modules;
}
- @Override
public boolean isEnabled() {
return enabled;
}
+
+ public Collection<KieFlywayNamedModule> getModules() {
+ return modules;
+ }
}
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/initializer/KieFlywayInitializerTest.java
b/addons/common/flyway/src/test/java/org/kie/flyway/initializer/KieFlywayInitializerTest.java
index 425c3b32c9..16ca985ba0 100644
---
a/addons/common/flyway/src/test/java/org/kie/flyway/initializer/KieFlywayInitializerTest.java
+++
b/addons/common/flyway/src/test/java/org/kie/flyway/initializer/KieFlywayInitializerTest.java
@@ -22,7 +22,6 @@ package org.kie.flyway.initializer;
import java.util.*;
import java.util.stream.Stream;
-import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
@@ -37,6 +36,7 @@ import
org.kie.kogito.testcontainers.KogitoPostgreSqlContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.kie.flyway.test.models.TestModels.*;
@Testcontainers
@@ -71,17 +71,17 @@ public class KieFlywayInitializerTest extends
AbstractKieFlywayTest {
@ParameterizedTest
@MethodSource("getDataSources")
public void testTestKieFlywayInitializerBuilderValidations(TestDataSource
dataSource) {
- Assertions.assertThatThrownBy(() -> KieFlywayInitializer.builder()
+ assertThatThrownBy(() -> KieFlywayInitializer.builder()
.build()).isInstanceOf(KieFlywayException.class)
- .hasMessage("Cannot create KieFlywayInitializer migration,
dataSource is null.");
+ .hasMessage("Cannot create KieFlywayInitializer
migration, dataSource is null.");
classLoader.addKieFlywayModule("initializers/kie-flyway.no.locations.properties");
- Assertions.assertThatThrownBy(() -> KieFlywayInitializer.builder()
+ assertThatThrownBy(() -> KieFlywayInitializer.builder()
.withDatasource(dataSource.getDataSource())
.withClassLoader(classLoader).build().migrate())
- .isInstanceOf(KieFlywayException.class)
- .hasMessageContaining("Cannot run Flyway migration for module
`no-locations`, cannot find SQL Script locations for db");
+ .isInstanceOf(KieFlywayException.class)
+ .hasMessageContaining("Cannot run Flyway migration for
module `no-locations`, cannot find SQL Script locations for db");
}
@ParameterizedTest
@@ -92,7 +92,7 @@ public class KieFlywayInitializerTest extends
AbstractKieFlywayTest {
classLoader.addKieFlywayModule("initializers/kie-flyway.duplicated2.properties");
classLoader.addKieFlywayModule("initializers/kie-flyway.duplicated2.properties");
- Assertions.assertThatThrownBy(() -> {
+ assertThatThrownBy(() -> {
KieFlywayInitializer.builder()
.withDatasource(dataSource.getDataSource())
.withClassLoader(classLoader)
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoaderTest.java
b/addons/common/flyway/src/test/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoaderTest.java
index 139f48c649..1fc30bac49 100644
---
a/addons/common/flyway/src/test/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoaderTest.java
+++
b/addons/common/flyway/src/test/java/org/kie/flyway/initializer/impl/DefaultKieModuleFlywayConfigLoaderTest.java
@@ -21,13 +21,15 @@ package org.kie.flyway.initializer.impl;
import java.util.Collection;
-import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.kie.flyway.KieFlywayException;
import org.kie.flyway.model.KieFlywayModuleConfig;
import org.kie.flyway.test.utils.TestClassLoader;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
public class DefaultKieModuleFlywayConfigLoaderTest {
private static final String H2_LOCATIONS =
"classpath:kie-flyway/db/test/h2";
@@ -48,10 +50,10 @@ public class DefaultKieModuleFlywayConfigLoaderTest {
Collection<KieFlywayModuleConfig> configs =
flywayConfigLoader.loadModuleConfigs();
- Assertions.assertThat(configs)
+ assertThat(configs)
.hasSize(1);
- Assertions.assertThat(configs.iterator().next())
+ assertThat(configs.iterator().next())
.isNotNull()
.hasFieldOrPropertyWithValue("module", "test")
.returns(H2_LOCATIONS, kieFlywayModuleConfig ->
kieFlywayModuleConfig.getDBScriptLocations("h2")[0])
@@ -63,7 +65,7 @@ public class DefaultKieModuleFlywayConfigLoaderTest {
public void testEmptyConfigFile() {
testClassLoader.addKieFlywayModule("initializers/kie-flyway.empty.properties");
- Assertions.assertThatThrownBy(() ->
flywayConfigLoader.loadModuleConfigs())
+ assertThatThrownBy(() -> flywayConfigLoader.loadModuleConfigs())
.isInstanceOf(KieFlywayException.class)
.hasMessage("Could not load ModuleFlywayConfig")
.cause()
@@ -75,7 +77,7 @@ public class DefaultKieModuleFlywayConfigLoaderTest {
public void testWrongLocationsFormat() {
testClassLoader.addKieFlywayModule("initializers/kie-flyway.wrong.format.properties");
- Assertions.assertThatThrownBy(() ->
flywayConfigLoader.loadModuleConfigs())
+ assertThatThrownBy(() -> flywayConfigLoader.loadModuleConfigs())
.isInstanceOf(KieFlywayException.class)
.hasMessage("Could not load ModuleFlywayConfig")
.cause()
@@ -87,7 +89,7 @@ public class DefaultKieModuleFlywayConfigLoaderTest {
public void testWrongResourceFile() {
testClassLoader.addKieFlywayModule("wrong content");
- Assertions.assertThatThrownBy(() ->
flywayConfigLoader.loadModuleConfigs())
+ assertThatThrownBy(() -> flywayConfigLoader.loadModuleConfigs())
.isInstanceOf(KieFlywayException.class)
.hasMessage("Could not load ModuleFlywayConfig");
}
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/KieFlywayRunnerTest.java
b/addons/common/flyway/src/test/java/org/kie/flyway/integration/KieFlywayRunnerTest.java
index bd510d9994..ae0109b686 100644
---
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/KieFlywayRunnerTest.java
+++
b/addons/common/flyway/src/test/java/org/kie/flyway/integration/KieFlywayRunnerTest.java
@@ -19,11 +19,11 @@
package org.kie.flyway.integration;
-import java.util.HashMap;
+import java.util.ArrayList;
+import java.util.List;
import javax.sql.DataSource;
-import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.*;
import org.kie.flyway.KieFlywayException;
import org.kie.flyway.test.AbstractKieFlywayTest;
@@ -31,6 +31,7 @@ import org.kie.flyway.test.dataSources.H2TestDataSource;
import org.kie.flyway.test.dataSources.TestDataSource;
import org.kie.flyway.test.utils.TestClassLoader;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.kie.flyway.test.models.TestModels.*;
import static org.mockito.Mockito.mock;
@@ -44,27 +45,27 @@ public class KieFlywayRunnerTest extends
AbstractKieFlywayTest {
}
private TestClassLoader testClassLoader;
- private TestKieFlywayConfiguration testConfiguration;
@BeforeEach
public void init() {
testClassLoader = new
TestClassLoader(this.getClass().getClassLoader());
- testConfiguration = new TestKieFlywayConfiguration(true, new
HashMap<>());
}
@Test
public void testValidations() {
- Assertions.assertThatThrownBy(() ->
KieFlywayRunner.get(null).runFlyway(null))
+ assertThatThrownBy(() -> KieFlywayRunner.get(null).runFlyway(null))
.isInstanceOf(KieFlywayException.class)
.hasMessage("Kie Flyway: Cannot run Kie Flyway migration
configuration is null.");
- Assertions.assertThatThrownBy(() ->
KieFlywayRunner.get(testConfiguration).runFlyway(null)).isInstanceOf(KieFlywayException.class)
+ KieFlywayRunnerConfiguration config = new
KieFlywayRunnerConfiguration(true, new ArrayList<>());
+
+ assertThatThrownBy(() ->
KieFlywayRunner.get(config).runFlyway(null)).isInstanceOf(KieFlywayException.class)
.hasMessage("Kie Flyway: Cannot run Kie Flyway migration
default datasource is null");
// Mocking DataSource to make sure we cannot resolve dbType.
DataSource mockedDS = mock(DataSource.class);
- Assertions.assertThatThrownBy(() ->
KieFlywayRunner.get(testConfiguration).runFlyway(mockedDS))
+ assertThatThrownBy(() ->
KieFlywayRunner.get(config).runFlyway(mockedDS))
.isInstanceOf(KieFlywayException.class)
.hasMessage("Kie Flyway: Couldn't extract database product
name from datasource.");
}
@@ -75,9 +76,9 @@ public class KieFlywayRunnerTest extends
AbstractKieFlywayTest {
testClassLoader.addKieFlywayModule("initializers/kie-flyway.customers.properties");
testClassLoader.addKieFlywayModule("initializers/kie-flyway.guitars.properties");
- testConfiguration.setEnabled(false);
+ KieFlywayRunnerConfiguration config = new
KieFlywayRunnerConfiguration(false, new ArrayList<>());
- TestKieFlywayRunner.get(testConfiguration, testClassLoader)
+ TestKieFlywayRunner.get(config, testClassLoader)
.runFlyway(TEST_DATA_SOURCE.getDataSource());
verifyTableDoesntExist("customers", TEST_DATA_SOURCE);
@@ -89,13 +90,12 @@ public class KieFlywayRunnerTest extends
AbstractKieFlywayTest {
@Test
@Order(1)
public void testFlywayMigrationsWithExclusions() {
-
- testConfiguration.getModules().put("guitars", new
TestKieFlywayNamedModule(false));
-
testClassLoader.addKieFlywayModule("initializers/kie-flyway.customers.properties");
testClassLoader.addKieFlywayModule("initializers/kie-flyway.guitars.properties");
- TestKieFlywayRunner.get(testConfiguration, testClassLoader)
+ KieFlywayRunnerConfiguration config = new
KieFlywayRunnerConfiguration(true, List.of(new KieFlywayNamedModule("guitars",
false)));
+
+ TestKieFlywayRunner.get(config, testClassLoader)
.runFlyway(TEST_DATA_SOURCE.getDataSource());
validateKieFlywayIndex("customers",
EXPECTED_CUSTOMERS_MIGRATIONS.stream().limit(3).toList(), TEST_DATA_SOURCE);
@@ -113,7 +113,9 @@ public class KieFlywayRunnerTest extends
AbstractKieFlywayTest {
testClassLoader.addKieFlywayModule("initializers/kie-flyway.customers2.properties");
testClassLoader.addKieFlywayModule("initializers/kie-flyway.guitars.properties");
- TestKieFlywayRunner.get(testConfiguration, testClassLoader)
+ KieFlywayRunnerConfiguration config = new
KieFlywayRunnerConfiguration(true, new ArrayList<>());
+
+ TestKieFlywayRunner.get(config, testClassLoader)
.runFlyway(TEST_DATA_SOURCE.getDataSource());
validateKieFlywayIndex("customers", EXPECTED_CUSTOMERS_MIGRATIONS,
TEST_DATA_SOURCE);
@@ -130,11 +132,11 @@ public class KieFlywayRunnerTest extends
AbstractKieFlywayTest {
public static class TestKieFlywayRunner extends KieFlywayRunner {
- protected TestKieFlywayRunner(KieFlywayConfiguration<? extends
KieFlywayNamedModule> configuration, ClassLoader classLoader) {
+ protected TestKieFlywayRunner(KieFlywayRunnerConfiguration
configuration, ClassLoader classLoader) {
super(configuration, classLoader);
}
- public static KieFlywayRunner get(TestKieFlywayConfiguration
configuration, ClassLoader classLoader) {
+ public static KieFlywayRunner get(KieFlywayRunnerConfiguration
configuration, ClassLoader classLoader) {
return new TestKieFlywayRunner(configuration, classLoader);
}
}
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayConfiguration.java
b/addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayConfiguration.java
deleted file mode 100644
index 1d20272a08..0000000000
---
a/addons/common/flyway/src/test/java/org/kie/flyway/integration/TestKieFlywayConfiguration.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.flyway.integration;
-
-import java.util.Map;
-
-public class TestKieFlywayConfiguration implements
KieFlywayConfiguration<TestKieFlywayNamedModule> {
-
- private boolean enabled;
- private Map<String, TestKieFlywayNamedModule> modules;
-
- public TestKieFlywayConfiguration(boolean enabled, Map<String,
TestKieFlywayNamedModule> modules) {
- this.enabled = enabled;
- this.modules = modules;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
-
- @Override
- public boolean isEnabled() {
- return enabled;
- }
-
- @Override
- public Map<String, TestKieFlywayNamedModule> getModules() {
- return modules;
- }
-}
diff --git
a/addons/common/flyway/src/test/java/org/kie/flyway/test/AbstractKieFlywayTest.java
b/addons/common/flyway/src/test/java/org/kie/flyway/test/AbstractKieFlywayTest.java
index 3a6ff7fa3f..1ee734a683 100644
---
a/addons/common/flyway/src/test/java/org/kie/flyway/test/AbstractKieFlywayTest.java
+++
b/addons/common/flyway/src/test/java/org/kie/flyway/test/AbstractKieFlywayTest.java
@@ -24,13 +24,13 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Collection;
-import org.assertj.core.api.Assertions;
import org.kie.flyway.initializer.KieFlywayInitializerTest;
import org.kie.flyway.test.dataSources.TestDataSource;
import org.kie.flyway.test.models.Customer;
import org.kie.flyway.test.models.Guitar;
import org.kie.flyway.test.models.KieFlywayMigration;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.kie.flyway.test.models.TestModels.EXPECTED_GUITARS;
public abstract class AbstractKieFlywayTest {
@@ -48,15 +48,15 @@ public abstract class AbstractKieFlywayTest {
PreparedStatement stmt =
con.prepareStatement(KieFlywayInitializerTest.MODULE_MIGRATIONS_QUERY_TEMPLATE.formatted(moduleName));)
{
stmt.setString(1, migration.version());
try (ResultSet rs = stmt.executeQuery()) {
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isTrue();
- Assertions.assertThat(rs.getString("version"))
+ assertThat(rs.getString("version"))
.isEqualTo(migration.version());
- Assertions.assertThat(rs.getString("description"))
+ assertThat(rs.getString("description"))
.isEqualTo(migration.description().formatted(dataSource.getDbType()));
- Assertions.assertThat(rs.getBoolean("success"))
+ assertThat(rs.getBoolean("success"))
.isEqualTo(true);
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isFalse();
}
} catch (Exception ex) {
@@ -70,18 +70,18 @@ public abstract class AbstractKieFlywayTest {
ResultSet rs = stmt.executeQuery()) {
for (Customer customer : expectedCustomers) {
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isTrue();
- Assertions.assertThat(rs.getInt("id"))
+ assertThat(rs.getInt("id"))
.isEqualTo(customer.id());
- Assertions.assertThat(rs.getString("name"))
+ assertThat(rs.getString("name"))
.isEqualTo(customer.name());
- Assertions.assertThat(rs.getString("last_name"))
+ assertThat(rs.getString("last_name"))
.isEqualTo(customer.lastName());
- Assertions.assertThat(rs.getString("email"))
+ assertThat(rs.getString("email"))
.isEqualTo(customer.email());
}
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isFalse();
} catch (Exception ex) {
throw new RuntimeException(ex);
@@ -94,19 +94,19 @@ public abstract class AbstractKieFlywayTest {
ResultSet rs = stmt.executeQuery()) {
for (Guitar guitar : EXPECTED_GUITARS) {
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isTrue();
- Assertions.assertThat(rs.getInt("id"))
+ assertThat(rs.getInt("id"))
.isEqualTo(guitar.id());
- Assertions.assertThat(rs.getString("brand"))
+ assertThat(rs.getString("brand"))
.isEqualTo(guitar.brand());
- Assertions.assertThat(rs.getString("model"))
+ assertThat(rs.getString("model"))
.isEqualTo(guitar.model());
- Assertions.assertThat(rs.getInt("rating"))
+ assertThat(rs.getInt("rating"))
.isEqualTo(guitar.rating());
}
- Assertions.assertThat(rs.next())
+ assertThat(rs.next())
.isFalse();
} catch (Exception ex) {
throw new RuntimeException(ex);
@@ -118,8 +118,8 @@ public abstract class AbstractKieFlywayTest {
PreparedStatement stmt =
con.prepareStatement(QUERY_QUERY_TABLE_EXISTS);) {
stmt.setString(1, tableName);
try (ResultSet rs = stmt.executeQuery()) {
- Assertions.assertThat(rs.next()).isTrue();
- Assertions.assertThat(rs.getInt("count")).isEqualTo(0);
+ assertThat(rs.next()).isTrue();
+ assertThat(rs.getInt("count")).isEqualTo(0);
}
} catch (Exception ex) {
throw new RuntimeException(ex);
diff --git
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
index 13d4c84161..f5dbb0dce8 100644
---
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
+++
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
@@ -19,9 +19,13 @@
package org.kie.flyway.quarkus;
+import java.util.Collection;
+
import javax.sql.DataSource;
+import org.kie.flyway.integration.KieFlywayNamedModule;
import org.kie.flyway.integration.KieFlywayRunner;
+import org.kie.flyway.integration.KieFlywayRunnerConfiguration;
import io.quarkus.agroal.runtime.DataSources;
import io.quarkus.arc.Arc;
@@ -42,7 +46,15 @@ public class KieFlywayQuarkusRecorder {
DataSources agroalDatasourceS =
Arc.container().select(DataSources.class).get();
DataSource dataSource = agroalDatasourceS.getDataSource(defaultDSName);
- KieFlywayRunner.get(config.getValue())
+ KieFlywayQuarkusRuntimeConfig runtimeConfig = config.getValue();
+
+ Collection<KieFlywayNamedModule> kieFlywayNamedModules =
runtimeConfig.modules.entrySet()
+ .stream()
+ .map(entry -> new KieFlywayNamedModule(entry.getKey(),
entry.getValue().enabled))
+ .toList();
+
+ KieFlywayRunnerConfiguration kieFlywayConfig = new
KieFlywayRunnerConfiguration(runtimeConfig.enabled, kieFlywayNamedModules);
+ KieFlywayRunner.get(kieFlywayConfig)
.runFlyway(dataSource);
}
}
diff --git
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
index 5819fa3a7c..ae6e2ad70b 100644
---
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
+++
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
@@ -21,16 +21,13 @@ package org.kie.flyway.quarkus;
import java.util.Map;
-import org.kie.flyway.integration.KieFlywayConfiguration;
-import org.kie.flyway.integration.KieFlywayNamedModule;
-
import io.quarkus.runtime.annotations.*;
/**
* Configuration for the Kie Flyway initializer
*/
@ConfigRoot(prefix = "kie", name = "flyway", phase = ConfigPhase.RUN_TIME)
-public class KieFlywayQuarkusRuntimeConfig implements
KieFlywayConfiguration<KieFlywayQuarkusRuntimeConfig.KieQuarkusFlywayNamedModule>
{
+public class KieFlywayQuarkusRuntimeConfig {
/**
* Enables the execution of the Flyway initializer during the application
startup
@@ -44,28 +41,13 @@ public class KieFlywayQuarkusRuntimeConfig implements
KieFlywayConfiguration<Kie
@ConfigItem(name = "modules")
Map<String, KieQuarkusFlywayNamedModule> modules;
- @Override
- public boolean isEnabled() {
- return enabled;
- }
-
- @Override
- public Map<String, KieQuarkusFlywayNamedModule> getModules() {
- return modules;
- }
-
@ConfigGroup
- public static class KieQuarkusFlywayNamedModule implements
KieFlywayNamedModule {
+ public static class KieQuarkusFlywayNamedModule {
/**
* Enables the execution of the Flyway initializer for a specific Kie
module
*/
@ConfigItem(name = "enabled", defaultValue = "true")
boolean enabled;
-
- @Override
- public boolean isEnabled() {
- return enabled;
- }
}
}
diff --git
a/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootInitializer.java
b/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootInitializer.java
index dff89d58c2..184a7f8c3f 100644
---
a/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootInitializer.java
+++
b/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootInitializer.java
@@ -19,9 +19,13 @@
package org.kie.flyway.springboot;
+import java.util.Collection;
+
import javax.sql.DataSource;
+import org.kie.flyway.integration.KieFlywayNamedModule;
import org.kie.flyway.integration.KieFlywayRunner;
+import org.kie.flyway.integration.KieFlywayRunnerConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
@@ -40,7 +44,13 @@ public class KieFlywaySpringbootInitializer implements
InitializingBean, Ordered
@Override
public void afterPropertiesSet() {
- KieFlywayRunner.get(properties)
+
+ Collection<KieFlywayNamedModule> kieFlywayNamedModules =
properties.getModules().entrySet()
+ .stream()
+ .map(entry -> new KieFlywayNamedModule(entry.getKey(),
entry.getValue().isEnabled()))
+ .toList();
+
+ KieFlywayRunner.get(new
KieFlywayRunnerConfiguration(properties.isEnabled(), kieFlywayNamedModules))
.runFlyway(dataSource);
}
diff --git
a/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootProperties.java
b/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootProperties.java
index 3c89ad447d..c65da4a34b 100644
---
a/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootProperties.java
+++
b/springboot/addons/flyway/src/main/java/org/kie/flyway/springboot/KieFlywaySpringbootProperties.java
@@ -22,13 +22,11 @@ package org.kie.flyway.springboot;
import java.util.HashMap;
import java.util.Map;
-import org.kie.flyway.integration.KieFlywayConfiguration;
-import org.kie.flyway.integration.KieFlywayNamedModule;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "kie.flyway")
-public class KieFlywaySpringbootProperties implements
KieFlywayConfiguration<KieFlywaySpringbootProperties.KieFlywaySpringbootNamedModule>
{
- private boolean enabled = true;
+public class KieFlywaySpringbootProperties {
+ private boolean enabled = false;
private Map<String, KieFlywaySpringbootNamedModule> modules = new
HashMap<>();
@@ -48,7 +46,7 @@ public class KieFlywaySpringbootProperties implements
KieFlywayConfiguration<Kie
this.modules = modules;
}
- public static class KieFlywaySpringbootNamedModule implements
KieFlywayNamedModule {
+ public static class KieFlywaySpringbootNamedModule {
private boolean enabled = true;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]