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">
-
+