Skip to content

Commit 6d88aea

Browse files
committed
feat: throw error if omnetpp.ini file is missing
1 parent 695fc1c commit 6d88aea

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

fed/mosaic-omnetpp/src/main/java/org/eclipse/mosaic/fed/omnetpp/ambassador/OmnetppAmbassador.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525

2626
import org.apache.commons.lang3.ObjectUtils;
2727

28+
import java.io.FileNotFoundException;
29+
import java.nio.file.Files;
30+
import java.nio.file.Paths;
2831
import javax.annotation.Nonnull;
2932

3033
/**
@@ -43,8 +46,11 @@ public OmnetppAmbassador(AmbassadorParameter ambassadorParameter) {
4346

4447
@Nonnull
4548
@Override
46-
public FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os) {
47-
String omnetppConfigFileName = ObjectUtils.defaultIfNull(config.federateConfigurationFile, "omnetpp.ini");
49+
public FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os) throws FileNotFoundException {
50+
String omnetppConfigFileName = ObjectUtils.defaultIfNull(config.federateConfigurationFile, "omnetpp.ini"); // default // this one is required
51+
if(!Files.exists(Paths.get(this.ambassadorParameter.configuration.getParent(), omnetppConfigFileName))) {
52+
throw new FileNotFoundException(omnetppConfigFileName + " missing");
53+
}
4854
String omnetppConfigFilePath = "omnetpp-federate/simulations/" + omnetppConfigFileName;
4955
String inetSourceDirectories = "inet:omnetpp-federate/src";
5056
switch (os) {

rti/mosaic-rti-api/src/main/java/org/eclipse/mosaic/rti/api/AbstractFederateAmbassador.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
2626

27+
import java.io.FileNotFoundException;
2728
import java.io.InputStream;
2829
import java.util.concurrent.PriorityBlockingQueue;
2930
import javax.annotation.Nonnull;
@@ -210,7 +211,7 @@ public DockerFederateExecutor createDockerFederateExecutor(String imageName, CLo
210211
*/
211212
@Nonnull
212213
@Override
213-
public FederateExecutor createFederateExecutor(String host, int port, CLocalHost.OperatingSystem os) {
214+
public FederateExecutor createFederateExecutor(String host, int port, CLocalHost.OperatingSystem os) throws FileNotFoundException {
214215
log.trace("createFederateStarter(String host, int port, CLocalHost.OperatingSystem os); host: {}, port: {}, os: {}", host, port, os);
215216
return new NopFederateExecutor();
216217
}

rti/mosaic-rti-api/src/main/java/org/eclipse/mosaic/rti/api/FederateAmbassador.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.eclipse.mosaic.rti.api.parameters.FederateDescriptor;
2121
import org.eclipse.mosaic.rti.config.CLocalHost.OperatingSystem;
2222

23+
import java.io.FileNotFoundException;
2324
import java.io.InputStream;
2425
import javax.annotation.Nonnull;
2526

@@ -41,7 +42,7 @@ public interface FederateAmbassador extends Comparable<FederateAmbassador> {
4142
* @return the {@link FederateExecutor} which starts the federate
4243
*/
4344
@Nonnull
44-
FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os);
45+
FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os) throws FileNotFoundException;
4546

4647
/**
4748
* If the federate or simulator can be executed as a docker container, this method returns a

rti/mosaic-starter/src/main/java/org/eclipse/mosaic/starter/MosaicSimulation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ private FederateDescriptor loadFederate(Path scenarioDirectory, CRuntime.CFedera
374374
return descriptor;
375375
}
376376

377-
private void initializeFederate(CRuntime.CFederate federate, FederateDescriptor descriptor) {
377+
private void initializeFederate(CRuntime.CFederate federate, FederateDescriptor descriptor) throws FileNotFoundException {
378378

379379
final FederateAmbassador ambassador = descriptor.getAmbassador();
380380
final CLocalHost host = descriptor.getHost();

0 commit comments

Comments
 (0)