diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/ChangeOrderExtractor.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/ChangeOrderExtractor.java new file mode 100644 index 000000000..5e2c6bd01 --- /dev/null +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/ChangeOrderExtractor.java @@ -0,0 +1,78 @@ +/* + * Copyright 2025 Flamingock (https://www.flamingock.io) + * + * Licensed 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 io.flamingock.internal.common.core.preview; + +import io.flamingock.internal.common.core.error.FlamingockException; + +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class ChangeOrderExtractor { + + + // For template files: must start with _order__ (e.g., _002__whatever.yaml, _V1_2_3__whatever.yaml) + // Recommended format: _YYYYMMDD_NN__description (e.g., _20250101_01__create_users.yaml) + // Captures ORDER before double underscore separator + private static final Pattern SIMPLE_FILE_ORDER_REGEX_PATTERN = Pattern.compile("^_(.+?)__(.+)$"); + + // For class names: must have _order__ at the beginning of the class name after package + // (e.g., com.mycompany.mypackage._002__MyChange or com.mycompany.OuterClass$_V1_2_3__InnerChange) + // Captures ORDER before double underscore separator + private static final Pattern FILE_WITH_PACKAGE_ORDER_REGEX_PATTERN = Pattern.compile("[.$]_(.+?)__(.+)$"); + + private ChangeOrderExtractor() { + } + + /** + * For TemplateLoadedChange - validates order from template file name + */ + public static String extractOrderFromFile(String changeId, String fileName) { + return getOrderFromFileName(fileName, false) + .orElseThrow(() -> getFlamingockException(changeId, "fileName", "yaml")); + } + + /** + * For CodeLoadedChange - validates order from class name + */ + public static String extractOrderFromClassName(String changeId, String classPath) { + return getOrderFromFileName(classPath, true) + .orElseThrow(() -> getFlamingockException(changeId, "className", "java")); + } + + + private static Optional getOrderFromFileName(String fileName, boolean withPackage) { + if (fileName == null) { + return Optional.empty(); + } + Pattern pattern = withPackage ? FILE_WITH_PACKAGE_ORDER_REGEX_PATTERN : SIMPLE_FILE_ORDER_REGEX_PATTERN; + + Matcher matcher = pattern.matcher(fileName); + + if (matcher.find()) { + return Optional.ofNullable(matcher.group(1)); + } + + return Optional.empty(); + } + + + private static FlamingockException getFlamingockException(String changeId, String fileType, String fileExt) { + return new FlamingockException(String.format("Change[%s] : order must be present in the %s(e.g. _0001__%s.%s)", + changeId, fileType, changeId, fileExt)); + } + +} diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/CodePreviewTaskBuilder.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/CodePreviewTaskBuilder.java index 3b03ae695..5ffd30ac2 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/CodePreviewTaskBuilder.java +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/CodePreviewTaskBuilder.java @@ -20,6 +20,7 @@ import io.flamingock.api.annotations.Recovery; import io.flamingock.api.annotations.Rollback; import io.flamingock.api.annotations.TargetSystem; +import io.flamingock.internal.common.core.preview.ChangeOrderExtractor; import io.flamingock.internal.common.core.preview.CodePreviewChange; import io.flamingock.internal.common.core.preview.PreviewMethod; import io.flamingock.internal.common.core.task.RecoveryDescriptor; @@ -135,11 +136,15 @@ CodePreviewTaskBuilder setTypeElement(TypeElement typeElement) { Change changeAnnotation = typeElement.getAnnotation(Change.class); TargetSystem targetSystemAnnotation = typeElement.getAnnotation(TargetSystem.class); Recovery recoveryAnnotation = typeElement.getAnnotation(Recovery.class); + if(changeAnnotation != null) { - setId(changeAnnotation.id()); - setOrder(null);//TODO replace with order from class + String changeId = changeAnnotation.id(); + String classPath = typeElement.getQualifiedName().toString(); + String order = ChangeOrderExtractor.extractOrderFromClassName(changeId, classPath); + setId(changeId); + setOrder(order); setAuthor(changeAnnotation.author()); - setSourceClassPath(typeElement.getQualifiedName().toString()); + setSourceClassPath(classPath); setExecutionMethod(getAnnotatedMethodInfo(typeElement, Apply.class).orElse(null)); setRollbackMethod(getAnnotatedMethodInfo(typeElement, Rollback.class).orElse(null)); setBeforeExecutionMethod(getAnnotatedMethodInfo(typeElement, BeforeExecution.class).orElse(null)); diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/TemplatePreviewTaskBuilder.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/TemplatePreviewTaskBuilder.java index 14581d0a2..6334f05c9 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/TemplatePreviewTaskBuilder.java +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/preview/builder/TemplatePreviewTaskBuilder.java @@ -15,6 +15,7 @@ */ package io.flamingock.internal.common.core.preview.builder; +import io.flamingock.internal.common.core.preview.ChangeOrderExtractor; import io.flamingock.internal.common.core.template.ChangeTemplateFileContent; import io.flamingock.internal.common.core.preview.TemplatePreviewChange; import io.flamingock.internal.common.core.task.RecoveryDescriptor; @@ -31,7 +32,6 @@ class TemplatePreviewTaskBuilder implements PreviewTaskBuilder profiles = getProfiles(); + String order = ChangeOrderExtractor.extractOrderFromFile(id, fileName); + return new TemplatePreviewChange( fileName, id, @@ -147,8 +144,9 @@ private List getProfiles() { TemplatePreviewTaskBuilder setFromDefinition(ChangeTemplateFileContent templateTaskDescriptor) { + //fileName is set in "setFileName" method + //order is extract from the fileName in the "build" method setId(templateTaskDescriptor.getId()); - setOrder(templateTaskDescriptor.getOrder()); setAuthor(templateTaskDescriptor.getAuthor()); setTemplate(templateTaskDescriptor.getTemplate()); setProfilesString(templateTaskDescriptor.getProfiles()); diff --git a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/template/ChangeTemplateFileContent.java b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/template/ChangeTemplateFileContent.java index f931feeb8..0f40d82f6 100644 --- a/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/template/ChangeTemplateFileContent.java +++ b/core/flamingock-core-commons/src/main/java/io/flamingock/internal/common/core/template/ChangeTemplateFileContent.java @@ -20,7 +20,6 @@ public class ChangeTemplateFileContent { private String id; - private String order; private String author; private String template; private String profiles; //colon-separated list of profiles @@ -35,7 +34,6 @@ public ChangeTemplateFileContent() { } public ChangeTemplateFileContent(String id, - String order, String author, String template, String profiles, @@ -46,7 +44,6 @@ public ChangeTemplateFileContent(String id, TargetSystemDescriptor targetSystem, RecoveryDescriptor recovery) { this.id = id; - this.order = order; this.author = author; this.template = template; this.profiles = profiles; @@ -67,14 +64,6 @@ public void setId(String id) { this.id = id; } - public String getOrder() { - return order; - } - - public void setOrder(String order) { - this.order = order; - } - public String getAuthor() { return author; } @@ -99,7 +88,6 @@ public void setProfiles(String profiles) { this.profiles = profiles; } - public Boolean getTransactional() { return transactional; } diff --git a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilder.java b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilder.java index cdfc857a2..2c25b1a71 100644 --- a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilder.java +++ b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilder.java @@ -15,6 +15,7 @@ */ package io.flamingock.internal.core.task.loaded; +import io.flamingock.internal.common.core.preview.ChangeOrderExtractor; import io.flamingock.internal.util.StringUtil; import io.flamingock.api.annotations.Change; import io.flamingock.api.annotations.Recovery; @@ -63,7 +64,7 @@ public static boolean supportsSourceClass(Class sourceClass) { private CodeLoadedTaskBuilder setPreview(CodePreviewChange preview) { setId(preview.getId()); - setOrderInContent(preview.getOrder().orElse(null)); + setOrder(preview.getOrder().orElse(null)); setAuthor(preview.getAuthor()); setChangeClass(preview.getSource()); setRunAlways(preview.isRunAlways()); @@ -105,7 +106,7 @@ public CodeLoadedTaskBuilder setRecovery(RecoveryDescriptor recovery) { return this; } - public CodeLoadedTaskBuilder setOrderInContent(String orderInContent) { + public CodeLoadedTaskBuilder setOrder(String orderInContent) { this.orderInContent = orderInContent; return this; } @@ -163,8 +164,9 @@ public CodeLoadedChange build() { } private void setFromFlamingockChangeAnnotation(Class sourceClass, Change annotation) { - setId(annotation.id()); - setOrderInContent(null);//TODO replace with order from class + String changeId = annotation.id(); + setId(changeId); + setOrder(ChangeOrderExtractor.extractOrderFromClassName(changeId, sourceClass.getName())); setAuthor(annotation.author()); setChangeClass(sourceClass.getName()); setTransactional(annotation.transactional()); diff --git a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/LoadedTaskBuilder.java b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/LoadedTaskBuilder.java index 8e610079e..34a30b442 100644 --- a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/LoadedTaskBuilder.java +++ b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/LoadedTaskBuilder.java @@ -53,8 +53,6 @@ static CodeLoadedTaskBuilder getCodeBuilderInstance(Class sourceClass) { LoadedTaskBuilder setRecovery(RecoveryDescriptor recovery); - LoadedTaskBuilder setOrderInContent(String order); - LoadedTaskBuilder setRunAlways(boolean runAlways); LoadedTaskBuilder setTransactional(boolean transactional); diff --git a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilder.java b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilder.java index c6e8c4ab1..1c7c075a6 100644 --- a/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilder.java +++ b/core/flamingock-core/src/main/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilder.java @@ -31,7 +31,7 @@ public class TemplateLoadedTaskBuilder implements LoadedTaskBuilder profiles; @@ -76,8 +76,8 @@ public TemplateLoadedTaskBuilder setRecovery(RecoveryDescriptor recovery) { return this; } - public TemplateLoadedTaskBuilder setOrderInContent(String order) { - this.orderInContent = order; + public TemplateLoadedTaskBuilder setOrder(String order) { + this.order = order; return this; } @@ -136,8 +136,7 @@ public TemplateLoadedChange build() { Class> templateClass = ChangeTemplateManager.getTemplate(templateName) .orElseThrow(()-> new FlamingockException(String.format("Template[%s] not found. This is probably because template's name is wrong or template's library not imported", templateName))); - String order = ChangeOrderUtil.getMatchedOrderFromFile(id, orderInContent, fileName); - + return new TemplateLoadedChange( fileName, id, @@ -157,9 +156,10 @@ public TemplateLoadedChange build() { } private TemplateLoadedTaskBuilder setPreview(TemplatePreviewChange preview) { + setFileName(preview.getFileName()); setId(preview.getId()); - setOrderInContent(preview.getOrder().orElse(null)); + setOrder(preview.getOrder().orElse(null)); setAuthor(preview.getAuthor()); setTemplateName(preview.getTemplateName()); setProfiles(preview.getProfiles()); diff --git a/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilderTest.java b/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilderTest.java index 4f1237e2a..3329c1ecf 100644 --- a/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilderTest.java +++ b/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/CodeLoadedTaskBuilderTest.java @@ -37,7 +37,7 @@ void setUp() { void shouldBuildWithOrderInContentWhenOrderInContentPresentAndNoOrderInSource() { // Given builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setChangeClass("java.lang.String") // Using existing class for simplicity .setRunAlways(false) .setTransactional(true) @@ -52,47 +52,12 @@ void shouldBuildWithOrderInContentWhenOrderInContentPresentAndNoOrderInSource() assertEquals(String.class, result.getImplementationClass()); } - @Test - @DisplayName("Should build with order from source when orderInContent is null and order in source is present") - void shouldBuildWithOrderFromSourceWhenOrderInContentIsNullAndOrderInSourceIsPresent() { - // Given - builder.setId("test-id") - .setOrderInContent(null) - .setChangeClass("com.mypackage._002__MyClass") - .setRunAlways(false) - .setTransactional(true) - .setSystem(false); - - // When & Then - // This will throw ClassNotFoundException since the class doesn't exist - // But it will call the order validation before that, so we can test the order logic - RuntimeException exception = assertThrows(RuntimeException.class, () -> builder.build()); - assertInstanceOf(ClassNotFoundException.class, exception.getCause()); - } - - @Test - @DisplayName("Should build with orderInContent when orderInContent matches order in source") - void shouldBuildWithOrderInContentWhenOrderInContentMatchesOrderInSource() { - // Given - builder.setId("test-id") - .setOrderInContent("002") - .setChangeClass("java.lang._002__Test") // This will extract "002" from class name - .setRunAlways(false) - .setTransactional(true) - .setSystem(false); - - // When & Then - // This will throw ClassNotFoundException, but order validation happens first - RuntimeException exception = assertThrows(RuntimeException.class, () -> builder.build()); - assertInstanceOf(ClassNotFoundException.class, exception.getCause()); - } - @Test @DisplayName("Should throw exception when orderInContent does not match order in source") void shouldThrowExceptionWhenOrderInContentDoesNotMatchOrderInSource() { // Given builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setChangeClass("com.mypackage._002__MyClass") .setRunAlways(false) .setTransactional(true) @@ -110,7 +75,7 @@ void shouldThrowExceptionWhenOrderInContentDoesNotMatchOrderInSource() { void shouldThrowExceptionWhenBothOrderInContentAndOrderInSourceAreMissing() { // Given builder.setId("test-id") - .setOrderInContent(null) + .setOrder(null) .setChangeClass("java.lang.String") .setRunAlways(false) .setTransactional(true) @@ -128,7 +93,7 @@ void shouldThrowExceptionWhenBothOrderInContentAndOrderInSourceAreMissing() { void shouldBuildWithOrderFromSourceWhenOrderInContentIsEmptyString() { // Given builder.setId("test-id") - .setOrderInContent("") + .setOrder("") .setChangeClass("com.mypackage._004__MyClass") .setRunAlways(false) .setTransactional(true) @@ -147,7 +112,7 @@ void shouldBuildWithOrderFromSourceWhenOrderInContentIsEmptyString() { void shouldBuildWithOrderFromSourceWhenOrderInContentIsBlankString() { // Given builder.setId("test-id") - .setOrderInContent(" ") + .setOrder(" ") .setChangeClass("com.mypackage._005__MyClass") .setRunAlways(false) .setTransactional(true) @@ -166,7 +131,7 @@ void shouldBuildWithOrderFromSourceWhenOrderInContentIsBlankString() { void shouldWorkWithRealClassWhenOrderValidationPasses() { // Given - using a real class that exists builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setChangeClass("java.lang.String") .setRunAlways(false) .setTransactional(true) @@ -189,7 +154,7 @@ void shouldWorkWithRealClassWhenOrderValidationPasses() { void shouldHandleBeforeExecutionFlagCorrectly() { // Given builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setChangeClass("java.lang.String") .setBeforeExecution(true) .setRunAlways(false) diff --git a/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilderTest.java b/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilderTest.java index 261be9bc4..d8bd03cbc 100644 --- a/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilderTest.java +++ b/core/flamingock-core/src/test/java/io/flamingock/internal/core/task/loaded/TemplateLoadedTaskBuilderTest.java @@ -86,7 +86,7 @@ void shouldBuildWithOrderInContentWhenOrderInContentPresentAndNoOrderInFileName( .thenReturn(Optional.of(TestChangeTemplate.class)); builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setFileName("test-file.yml") .setTemplateName("test-template") .setRunAlways(false) @@ -116,8 +116,8 @@ void shouldBuildWithOrderFromFileNameWhenOrderInContentIsNullAndOrderInFileNameI .thenReturn(Optional.of(TestChangeTemplate.class)); builder.setId("test-id") - .setOrderInContent(null) - .setFileName("_002__test-file.yml") + .setOrder("0002") + .setFileName("_0002__test-file.yml") .setTemplateName("test-template") .setRunAlways(false) .setTransactional(true) @@ -131,9 +131,9 @@ void shouldBuildWithOrderFromFileNameWhenOrderInContentIsNullAndOrderInFileNameI TemplateLoadedChange result = builder.build(); // Then - assertEquals("002", result.getOrder().orElse(null)); + assertEquals("0002", result.getOrder().orElse(null)); assertEquals("test-id", result.getId()); - assertEquals("_002__test-file.yml", result.getFileName()); + assertEquals("_0002__test-file.yml", result.getFileName()); } } @@ -146,7 +146,7 @@ void shouldBuildWithOrderInContentWhenOrderInContentMatchesOrderInFileName() { .thenReturn(Optional.of(TestChangeTemplate.class)); builder.setId("test-id") - .setOrderInContent("003") + .setOrder("003") .setFileName("_003__test-file.yml") .setTemplateName("test-template") .setRunAlways(false); @@ -167,92 +167,6 @@ void shouldBuildWithOrderInContentWhenOrderInContentMatchesOrderInFileName() { } } - @Test - @DisplayName("Should throw exception when orderInContent does not match order in fileName") - void shouldThrowExceptionWhenOrderInContentDoesNotMatchOrderInFileName() { - // Given - try (MockedStatic mockedTemplateManager = mockStatic(ChangeTemplateManager.class)) { - mockedTemplateManager.when(() -> ChangeTemplateManager.getTemplate("test-template")) - .thenReturn(Optional.of(TestChangeTemplate.class)); - - builder.setId("test-id") - .setOrderInContent("001") - .setFileName("_002__test-file.yml") - .setTemplateName("test-template") - .setRunAlways(false); - builder.setProfiles(Collections.singletonList("test")); - builder.setTransactional(true) - .setSystem(false) - .setConfiguration(new Object()) - .setApply(new Object()) - .setRollback(new Object()); - - // When & Then - FlamingockException exception = assertThrows(FlamingockException.class, () -> builder.build()); - - - assertEquals("Change[test-id] Order mismatch: value in template order field='001' does not match order in fileName='002'", - exception.getMessage()); - } - } - - @Test - @DisplayName("Should throw exception when both orderInContent and order in fileName are missing") - void shouldThrowExceptionWhenBothOrderInContentAndOrderInFileNameAreMissing() { - // Given - try (MockedStatic mockedTemplateManager = mockStatic(ChangeTemplateManager.class)) { - mockedTemplateManager.when(() -> ChangeTemplateManager.getTemplate("test-template")) - .thenReturn(Optional.of(TestChangeTemplate.class)); - - builder.setId("test-id") - .setOrderInContent(null) - .setFileName("test-file.yml") - .setTemplateName("test-template") - .setRunAlways(false); - builder.setProfiles(Arrays.asList("test")); - builder.setTransactional(true) - .setSystem(false) - .setConfiguration(new Object()) - .setApply(new Object()) - .setRollback(new Object()); - - // When & Then - FlamingockException exception = assertThrows(FlamingockException.class, () -> builder.build()); - - assertEquals("Change[test-id] Order is required: order must be present in the template order field or in the fileName(e.g. _0001__test-id.yaml). If present in both, they must have the same value.", - exception.getMessage()); - } - } - - @Test - @DisplayName("Should throw exception when orderInContent is empty string") - void shouldBuildWithOrderFromFileNameWhenOrderInContentIsEmptyString() { - // Given - try (MockedStatic mockedTemplateManager = mockStatic(ChangeTemplateManager.class)) { - mockedTemplateManager.when(() -> ChangeTemplateManager.getTemplate("test-template")) - .thenReturn(Optional.of(TestChangeTemplate.class)); - - builder.setId("test-id") - .setOrderInContent("") - .setFileName("_004__test-file.yml") - .setTemplateName("test-template") - .setRunAlways(false); - builder.setProfiles(Arrays.asList("test")); - builder.setTransactional(true) - .setSystem(false) - .setConfiguration(new Object()) - .setApply(new Object()) - .setRollback(new Object()); - - // When - FlamingockException exception = assertThrows(FlamingockException.class, () -> builder.build()); - - // Then - assertEquals("Change[test-id] Order mismatch: value in template order field='' does not match order in fileName='004'", - exception.getMessage()); - } - } - @Test @DisplayName("Should throw exception when template is not found") void shouldThrowExceptionWhenTemplateIsNotFound() { @@ -262,7 +176,7 @@ void shouldThrowExceptionWhenTemplateIsNotFound() { .thenReturn(Optional.empty()); builder.setId("test-id") - .setOrderInContent("001") + .setOrder("001") .setFileName("test-file.yml") .setTemplateName("unknown-template"); diff --git a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_001__CreateUsersCollectionChange.java b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_0001__CreateUsersCollectionChange.java similarity index 96% rename from core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_001__CreateUsersCollectionChange.java rename to core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_0001__CreateUsersCollectionChange.java index ad57ebb19..9d21cc4cf 100644 --- a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_001__CreateUsersCollectionChange.java +++ b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/couchbase/_0001__CreateUsersCollectionChange.java @@ -24,7 +24,7 @@ import java.util.Collections; @Change(id = "create-users-collection", author = "importer", transactional = false) -public class _001__CreateUsersCollectionChange { +public class _0001__CreateUsersCollectionChange { @Apply public void execution(Bucket bucket) { diff --git a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_1__ClientInitializer.java b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0001__ClientInitializer.java similarity index 96% rename from core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_1__ClientInitializer.java rename to core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0001__ClientInitializer.java index 1174760d3..367ca23c1 100644 --- a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_1__ClientInitializer.java +++ b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0001__ClientInitializer.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-initializer", author = "mongock", transactional = false) -public class _1__ClientInitializer { +public class _0001__ClientInitializer { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_2__ClientUpdater.java b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0002__ClientUpdater.java similarity index 96% rename from core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_2__ClientUpdater.java rename to core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0002__ClientUpdater.java index d07780335..4ef57569d 100644 --- a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_2__ClientUpdater.java +++ b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/legacy/_0002__ClientUpdater.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-updater", author = "mongock", transactional = false) -public class _2__ClientUpdater { +public class _0002__ClientUpdater { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001_migration_from_mongock.yaml b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001__migration_from_mongock.yaml similarity index 94% rename from core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001_migration_from_mongock.yaml rename to core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001__migration_from_mongock.yaml index fc43bc8a9..9fca41949 100644 --- a/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001_migration_from_mongock.yaml +++ b/core/importer/flamingock-importer-couchbase-tests/src/test/java/io/flamingock/importer/couchbase/system/_0001__migration_from_mongock.yaml @@ -1,5 +1,4 @@ id: migration-from-mongock -order: 0001 transactional: false template: CouchbaseImporterChangeTemplate configuration: diff --git a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_001__CreateUsersTableChange.java b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_0001__CreateUsersTableChange.java similarity index 97% rename from core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_001__CreateUsersTableChange.java rename to core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_0001__CreateUsersTableChange.java index 39dc5459b..1b85dd4eb 100644 --- a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_001__CreateUsersTableChange.java +++ b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/dynamodb/_0001__CreateUsersTableChange.java @@ -21,7 +21,7 @@ import software.amazon.awssdk.services.dynamodb.model.*; @Change(id = "create-users-table", author = "importer") -public class _001__CreateUsersTableChange { +public class _0001__CreateUsersTableChange { @Apply public void execution(DynamoDbClient dynamoDBClient) { diff --git a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_1__ClientInitializer.java b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0001__ClientInitializer.java similarity index 96% rename from core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_1__ClientInitializer.java rename to core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0001__ClientInitializer.java index e280ee288..1a8cf9303 100644 --- a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_1__ClientInitializer.java +++ b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0001__ClientInitializer.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-initializer", author = "mongock") -public class _1__ClientInitializer { +public class _0001__ClientInitializer { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_2__ClientUpdater.java b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0002__ClientUpdater.java similarity index 96% rename from core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_2__ClientUpdater.java rename to core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0002__ClientUpdater.java index 1f321c09c..078870225 100644 --- a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_2__ClientUpdater.java +++ b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/legacy/_0002__ClientUpdater.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-updater", author = "mongock") -public class _2__ClientUpdater { +public class _0002__ClientUpdater { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001_migration_from_mongock.yaml b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001__migration_from_mongock.yaml similarity index 92% rename from core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001_migration_from_mongock.yaml rename to core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001__migration_from_mongock.yaml index a595455bf..d3b2cdeb3 100644 --- a/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001_migration_from_mongock.yaml +++ b/core/importer/flamingock-importer-dynamodb-tests/src/test/java/io/flamingock/importer/dynamodb/system/_0001__migration_from_mongock.yaml @@ -1,5 +1,4 @@ id: migration-from-mongock -order: 0001 transactional: false template: DynamoDBImporterChangeTemplate configuration: diff --git a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_1__ClientInitializer.java b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0001__ClientInitializer.java similarity index 96% rename from core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_1__ClientInitializer.java rename to core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0001__ClientInitializer.java index 479d77c7d..f36abd786 100644 --- a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_1__ClientInitializer.java +++ b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0001__ClientInitializer.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-initializer", author = "flamingock-team") -public class _1__ClientInitializer { +public class _0001__ClientInitializer { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_2__ClientUpdater.java b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0002__ClientUpdater.java similarity index 96% rename from core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_2__ClientUpdater.java rename to core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0002__ClientUpdater.java index 529359d37..6334dd80c 100644 --- a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_2__ClientUpdater.java +++ b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/legacy/_0002__ClientUpdater.java @@ -20,7 +20,7 @@ import io.mongock.api.annotations.BeforeExecution; @Change(id = "client-updater", author = "flamingock-team") -public class _2__ClientUpdater { +public class _0002__ClientUpdater { @BeforeExecution public void beforeExecution() { diff --git a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003_create_users_collections.yaml b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003__create_users_collections.yaml similarity index 93% rename from core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003_create_users_collections.yaml rename to core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003__create_users_collections.yaml index 00b2b9438..5e91a29be 100644 --- a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003_create_users_collections.yaml +++ b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0003__create_users_collections.yaml @@ -1,5 +1,4 @@ id: create-users-collection-with-index -order: 0003 #transactional: false template: MongoChangeTemplate targetSystem: diff --git a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004_seed_users.yaml b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004__seed_users.yaml similarity index 96% rename from core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004_seed_users.yaml rename to core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004__seed_users.yaml index ca66c80b8..1d2f53822 100644 --- a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004_seed_users.yaml +++ b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/mongodb/_0004__seed_users.yaml @@ -1,5 +1,4 @@ id: seed-users -order: 0004 transactional: true template: MongoChangeTemplate targetSystem: diff --git a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001_migration_from_mongock.yaml b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001__migration_from_mongock.yaml similarity index 91% rename from core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001_migration_from_mongock.yaml rename to core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001__migration_from_mongock.yaml index 66cc64067..0e3d37f0b 100644 --- a/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001_migration_from_mongock.yaml +++ b/core/importer/flamingock-importer-mongodb-tests/src/test/java/io/flamingock/importer/mongodb/system/_0001__migration_from_mongock.yaml @@ -1,5 +1,4 @@ id: migration-from-mongock -order: 0001 transactional: false template: MongoDBImporterChangeTemplate configuration: diff --git a/platform-plugins/flamingock-springboot-integration/src/test/java/io/flamingock/springboot/SpringProfileFilterTemplateTaskTest.java b/platform-plugins/flamingock-springboot-integration/src/test/java/io/flamingock/springboot/SpringProfileFilterTemplateTaskTest.java index 3468a03e1..5a6058612 100644 --- a/platform-plugins/flamingock-springboot-integration/src/test/java/io/flamingock/springboot/SpringProfileFilterTemplateTaskTest.java +++ b/platform-plugins/flamingock-springboot-integration/src/test/java/io/flamingock/springboot/SpringProfileFilterTemplateTaskTest.java @@ -109,7 +109,6 @@ private AbstractLoadedTask getTemplateLoadedChange(String profiles) { ChangeTemplateFileContent changeFileDescriptor = new ChangeTemplateFileContent( "template-base-change-id", - "1", "test-author", TemplateSimulate.class.getSimpleName(), profiles, @@ -121,7 +120,7 @@ private AbstractLoadedTask getTemplateLoadedChange(String profiles) { RecoveryDescriptor.getDefault() ); - TemplatePreviewChange preview = PreviewTaskBuilder.getTemplateBuilder("TemplateBase.yaml", changeFileDescriptor).build(); + TemplatePreviewChange preview = PreviewTaskBuilder.getTemplateBuilder("_0001__ChangeUsingTemplate.yaml", changeFileDescriptor).build(); return LoadedTaskBuilder.getInstance(preview).build(); diff --git a/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001_create_users_collections.yaml b/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001__create_users_collections.yaml similarity index 93% rename from templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001_create_users_collections.yaml rename to templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001__create_users_collections.yaml index 5c1a5da03..df6cb6c23 100644 --- a/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001_create_users_collections.yaml +++ b/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0001__create_users_collections.yaml @@ -1,5 +1,4 @@ id: create-users-collection-with-index -order: 0001 transactional: false template: MongoChangeTemplate targetSystem: diff --git a/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002_seed_users.yaml b/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002__seed_users.yaml similarity index 96% rename from templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002_seed_users.yaml rename to templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002__seed_users.yaml index ac7d9020c..1d2f53822 100644 --- a/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002_seed_users.yaml +++ b/templates/flamingock-mongodb-sync-template/src/test/java/io/flamingock/template/mongodb/changes/_0002__seed_users.yaml @@ -1,5 +1,4 @@ id: seed-users -order: 0002 transactional: true template: MongoChangeTemplate targetSystem: