diff --git a/mule-migration-tool-library/src/main/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessful.java b/mule-migration-tool-library/src/main/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessful.java index c17b17a08..5c0188ee9 100644 --- a/mule-migration-tool-library/src/main/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessful.java +++ b/mule-migration-tool-library/src/main/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessful.java @@ -20,6 +20,7 @@ import static com.mulesoft.tools.migration.step.util.XmlDslUtils.getContainerElement; import static com.mulesoft.tools.migration.step.util.XmlDslUtils.getFlowExceptionHandlingElement; import static com.mulesoft.tools.migration.step.util.XmlDslUtils.removeAttribute; +import static java.lang.Integer.parseInt; /** * Migrate Until Successful @@ -80,8 +81,14 @@ public void execute(Element element, MigrationReport report) throws RuntimeExcep } if (element.getAttribute("secondsBetweenRetries") != null) { - Integer retries = Integer.valueOf(element.getAttributeValue("secondsBetweenRetries")) * 1000; - element.setAttribute("millisBetweenRetries", retries.toString()); + String retries = element.getAttributeValue("secondsBetweenRetries"); + try { + retries = String.valueOf(parseInt(retries) * 1000); + } catch (NumberFormatException nfe) { + String propertyName = retries.startsWith("${") ? retries.substring(2, retries.length() - 1) : retries; + report.report("untilSuccessful.secondsBetweenRetries", element, element, propertyName); + } + element.setAttribute("millisBetweenRetries", retries); removeAttribute(element, "secondsBetweenRetries"); } diff --git a/mule-migration-tool-library/src/main/resources/report.yaml b/mule-migration-tool-library/src/main/resources/report.yaml index 75cfbcf09..5071302e6 100644 --- a/mule-migration-tool-library/src/main/resources/report.yaml +++ b/mule-migration-tool-library/src/main/resources/report.yaml @@ -724,6 +724,11 @@ untilSuccessful: message: Threading Profile is no longer needed in Mule 4. docLinks: - https://docs.mulesoft.com/mule-runtime/4.3/intro-engine + secondsBetweenRetries: + type: WARN + message: "Update the property '{prop}' to specify the period between retries in milliseconds." + docLinks: + - https://docs.mulesoft.com/mule-runtime/4.3/migration-core-until-successful json: mapper: diff --git a/mule-migration-tool-library/src/test/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessfulTest.java b/mule-migration-tool-library/src/test/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessfulTest.java index ebc96dab7..127559960 100644 --- a/mule-migration-tool-library/src/test/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessfulTest.java +++ b/mule-migration-tool-library/src/test/java/com/mulesoft/tools/migration/library/mule/steps/core/UntilSuccessfulTest.java @@ -49,7 +49,9 @@ public static Object[] params() { "until-successful-04", // TODO MMT-258 // "until-successful-05", - "until-successful-06" + "until-successful-06", + "until-successful-07", + "until-successful-08" }; } diff --git a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07-original.xml b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07-original.xml index 31d72cc84..e642d5ade 100644 --- a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07-original.xml +++ b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07-original.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> - + diff --git a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07.xml b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07.xml index a259d3fd2..9e987ac53 100644 --- a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07.xml +++ b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-07.xml @@ -7,6 +7,5 @@ - diff --git a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08-original.xml b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08-original.xml new file mode 100644 index 000000000..ceb372992 --- /dev/null +++ b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08-original.xml @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08.xml b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08.xml new file mode 100644 index 000000000..3540fda76 --- /dev/null +++ b/mule-migration-tool-library/src/test/resources/mule/apps/core/until-successful-08.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/mule-migration-tool-tests/src/test/java/com/mulesoft/tools/migration/integration/UntilSuccessfulMigrationTestCase.java b/mule-migration-tool-tests/src/test/java/com/mulesoft/tools/migration/integration/UntilSuccessfulMigrationTestCase.java index 19df441e1..adb4de33a 100644 --- a/mule-migration-tool-tests/src/test/java/com/mulesoft/tools/migration/integration/UntilSuccessfulMigrationTestCase.java +++ b/mule-migration-tool-tests/src/test/java/com/mulesoft/tools/migration/integration/UntilSuccessfulMigrationTestCase.java @@ -34,6 +34,6 @@ public UntilSuccessfulMigrationTestCase(String appToMigrate) { @Test public void test() throws Exception { - simpleCase(appToMigrate, "-M-DhttpPort=" + httpPort.getValue()); + simpleCase(appToMigrate, "-M-DhttpPort=" + httpPort.getValue(), "-M-Dsecs=30"); } } diff --git a/mule-migration-tool-tests/src/test/resources/e2e/until-successful-01/src/main/app/mule-config.xml b/mule-migration-tool-tests/src/test/resources/e2e/until-successful-01/src/main/app/mule-config.xml index 4ec570124..24bd72866 100644 --- a/mule-migration-tool-tests/src/test/resources/e2e/until-successful-01/src/main/app/mule-config.xml +++ b/mule-migration-tool-tests/src/test/resources/e2e/until-successful-01/src/main/app/mule-config.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> - +