From a69f432437986c7ed2793c9b0e71bd8597d3d1f4 Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Mon, 20 Nov 2023 21:17:36 +0900 Subject: [PATCH 1/7] First commit to add the NDT property --- .../lflang/target/property/NDTProperty.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 core/src/main/java/org/lflang/target/property/NDTProperty.java diff --git a/core/src/main/java/org/lflang/target/property/NDTProperty.java b/core/src/main/java/org/lflang/target/property/NDTProperty.java new file mode 100644 index 0000000000..9b360b6c15 --- /dev/null +++ b/core/src/main/java/org/lflang/target/property/NDTProperty.java @@ -0,0 +1,44 @@ +package org.lflang.target.property; + +import org.lflang.MessageReporter; +import org.lflang.ast.ASTUtils; +import org.lflang.lf.Element; +import org.lflang.target.property.type.LoggingType; +import org.lflang.target.property.type.LoggingType.LogLevel; + +/** + * FIXME: Add the NDT property. + */ +public final class NDTProperty extends TargetProperty { + + /** Singleton target property instance. */ + public static final NDTProperty INSTANCE = new NDTProperty(); + + private NDTProperty() { + super(new LoggingType()); + } + + @Override + public LogLevel initialValue() { + return LogLevel.getDefault(); + } + + @Override + protected LogLevel fromAst(Element node, MessageReporter reporter) { + return fromString(ASTUtils.elementToSingleString(node), reporter); + } + + protected LogLevel fromString(String string, MessageReporter reporter) { + return LogLevel.valueOf(string.toUpperCase()); + } + + @Override + public Element toAstElement(LogLevel value) { + return ASTUtils.toElement(value.toString()); + } + + @Override + public String name() { + return "disabled"; + } +} From 5a44ace8cc8366d9c1c616af94711ebe037fe18a Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Mon, 20 Nov 2023 21:17:55 +0900 Subject: [PATCH 2/7] Update reactor-c --- core/src/main/resources/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/c/reactor-c b/core/src/main/resources/lib/c/reactor-c index 25a10adb0a..7a951d8e58 160000 --- a/core/src/main/resources/lib/c/reactor-c +++ b/core/src/main/resources/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 25a10adb0a32cb4720d5e1f952280ab06927e043 +Subproject commit 7a951d8e58bdd5576221c23b95b9ab87696b9701 From 2e343d9b3fb79b4d97c9433bfbbb5a8c642b0687 Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Mon, 20 Nov 2023 21:20:03 +0900 Subject: [PATCH 3/7] Add a line to build a docker image for the RTI --- .github/actions/install-rti/install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/install-rti/install.sh b/.github/actions/install-rti/install.sh index f3560f0529..3d88303c2e 100755 --- a/.github/actions/install-rti/install.sh +++ b/.github/actions/install-rti/install.sh @@ -1,5 +1,6 @@ #!/bin/bash cd core/src/main/resources/lib/c/reactor-c/core/federated/RTI +docker build -t rti:rti -f rti.Dockerfile ../../../core/ mkdir build cd build if [[ "$OSTYPE" == "darwin"* ]]; then @@ -7,4 +8,4 @@ if [[ "$OSTYPE" == "darwin"* ]]; then fi cmake -DAUTH=ON ../ make -sudo make install +sudo make install \ No newline at end of file From 9ba1f0d94619f4e6d00da50ade4c1363ab11d903 Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Tue, 21 Nov 2023 09:25:11 +0900 Subject: [PATCH 4/7] Change the local rti image name --- .github/actions/install-rti/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/install-rti/install.sh b/.github/actions/install-rti/install.sh index 3d88303c2e..ed134f4426 100755 --- a/.github/actions/install-rti/install.sh +++ b/.github/actions/install-rti/install.sh @@ -1,6 +1,6 @@ #!/bin/bash cd core/src/main/resources/lib/c/reactor-c/core/federated/RTI -docker build -t rti:rti -f rti.Dockerfile ../../../core/ +docker build -t lflang/rti:rti -f rti.Dockerfile ../../../core/ mkdir build cd build if [[ "$OSTYPE" == "darwin"* ]]; then From 27a8d65e058989c73c86e3420520e01ca7b5269d Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Tue, 21 Nov 2023 18:44:15 +0900 Subject: [PATCH 5/7] Make NDTProperty extends BooleanProperty --- .../lflang/target/property/NDTProperty.java | 35 +++++-------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/org/lflang/target/property/NDTProperty.java b/core/src/main/java/org/lflang/target/property/NDTProperty.java index 9b360b6c15..a00f222c8b 100644 --- a/core/src/main/java/org/lflang/target/property/NDTProperty.java +++ b/core/src/main/java/org/lflang/target/property/NDTProperty.java @@ -1,44 +1,25 @@ package org.lflang.target.property; -import org.lflang.MessageReporter; -import org.lflang.ast.ASTUtils; -import org.lflang.lf.Element; -import org.lflang.target.property.type.LoggingType; -import org.lflang.target.property.type.LoggingType.LogLevel; - /** - * FIXME: Add the NDT property. + * If true, the RTI will send NDT messages to federates to reduce the number of messages. + * The default is false. */ -public final class NDTProperty extends TargetProperty { +public final class NDTProperty extends BooleanProperty { /** Singleton target property instance. */ public static final NDTProperty INSTANCE = new NDTProperty(); private NDTProperty() { - super(new LoggingType()); - } - - @Override - public LogLevel initialValue() { - return LogLevel.getDefault(); - } - - @Override - protected LogLevel fromAst(Element node, MessageReporter reporter) { - return fromString(ASTUtils.elementToSingleString(node), reporter); + super(); } - protected LogLevel fromString(String string, MessageReporter reporter) { - return LogLevel.valueOf(string.toUpperCase()); - } - - @Override - public Element toAstElement(LogLevel value) { - return ASTUtils.toElement(value.toString()); + @Repeatatable + public Boolean initialValue() { + return false; } @Override public String name() { - return "disabled"; + return "ndt"; } } From d692c6ee4ef6da322dbbd7bf5765a4eb721e3cc8 Mon Sep 17 00:00:00 2001 From: Byeong-gil Jun Date: Tue, 28 Nov 2023 10:51:46 +0900 Subject: [PATCH 6/7] Add a code for turning on the ndt option of the RTI --- .../org/lflang/federated/launcher/FedLauncherGenerator.java | 4 ++++ core/src/main/java/org/lflang/target/Target.java | 3 +++ .../src/main/java/org/lflang/target/property/NDTProperty.java | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/lflang/federated/launcher/FedLauncherGenerator.java b/core/src/main/java/org/lflang/federated/launcher/FedLauncherGenerator.java index ad8743a7c3..0666c473ee 100644 --- a/core/src/main/java/org/lflang/federated/launcher/FedLauncherGenerator.java +++ b/core/src/main/java/org/lflang/federated/launcher/FedLauncherGenerator.java @@ -40,6 +40,7 @@ import org.lflang.target.property.AuthProperty; import org.lflang.target.property.ClockSyncModeProperty; import org.lflang.target.property.ClockSyncOptionsProperty; +import org.lflang.target.property.NDTProperty; import org.lflang.target.property.TracingProperty; import org.lflang.target.property.type.ClockSyncModeType.ClockSyncMode; @@ -339,6 +340,9 @@ private String getRtiCommand(List federates, boolean isRemote) if (targetConfig.getOrDefault(AuthProperty.INSTANCE)) { commands.add(" -a \\"); } + if (targetConfig.getOrDefault(NDTProperty.INSTANCE)) { + commands.add(" --ndt \\"); + } if (targetConfig.getOrDefault(TracingProperty.INSTANCE).isEnabled()) { commands.add(" -t \\"); } diff --git a/core/src/main/java/org/lflang/target/Target.java b/core/src/main/java/org/lflang/target/Target.java index a01b863303..2ec761b7d1 100644 --- a/core/src/main/java/org/lflang/target/Target.java +++ b/core/src/main/java/org/lflang/target/Target.java @@ -45,6 +45,7 @@ import org.lflang.target.property.ExternalRuntimePathProperty; import org.lflang.target.property.FilesProperty; import org.lflang.target.property.KeepaliveProperty; +import org.lflang.target.property.NDTProperty; import org.lflang.target.property.NoRuntimeValidationProperty; import org.lflang.target.property.NoSourceMappingProperty; import org.lflang.target.property.PlatformProperty; @@ -599,6 +600,7 @@ public void initialize(TargetConfig config) { DockerProperty.INSTANCE, FilesProperty.INSTANCE, KeepaliveProperty.INSTANCE, + NDTProperty.INSTANCE, NoSourceMappingProperty.INSTANCE, PlatformProperty.INSTANCE, ProtobufsProperty.INSTANCE, @@ -633,6 +635,7 @@ public void initialize(TargetConfig config) { DockerProperty.INSTANCE, FilesProperty.INSTANCE, KeepaliveProperty.INSTANCE, + NDTProperty.INSTANCE, NoSourceMappingProperty.INSTANCE, ProtobufsProperty.INSTANCE, SchedulerProperty.INSTANCE, diff --git a/core/src/main/java/org/lflang/target/property/NDTProperty.java b/core/src/main/java/org/lflang/target/property/NDTProperty.java index a00f222c8b..6d6619595c 100644 --- a/core/src/main/java/org/lflang/target/property/NDTProperty.java +++ b/core/src/main/java/org/lflang/target/property/NDTProperty.java @@ -13,9 +13,9 @@ private NDTProperty() { super(); } - @Repeatatable + @Override public Boolean initialValue() { - return false; + return true; } @Override From e47000c6e60976749d2d7040a7284b651e4c5b24 Mon Sep 17 00:00:00 2001 From: Byeonggil Jun Date: Mon, 4 Dec 2023 16:55:04 +0900 Subject: [PATCH 7/7] Update reactor-c --- core/src/main/resources/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/c/reactor-c b/core/src/main/resources/lib/c/reactor-c index 65e30dae17..f4e531a0ed 160000 --- a/core/src/main/resources/lib/c/reactor-c +++ b/core/src/main/resources/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 65e30dae1782c3d615431d85688b9d86019faf57 +Subproject commit f4e531a0edffecbc78967a8be98535403e2b64e3