usnistgov / ucef-meta

WebGME Federate and Experiment Designer
MIT License
3 stars 3 forks source link

Align Federates Exporter with Deployment Exporter for Java Federates #3

Closed MartyBurns closed 6 years ago

MartyBurns commented 6 years ago

Version information

commit 26cbe2e631e60491611923604eb50a0170f1502d

Observed behavior

When you make a federation, export both generated and deployment projects the built files cannot run together simply without edits

Expected behavior

You should be able to create a simple federate or federation, compile it, and run it without additional file edits. Then you can modify behavior.

Steps to reproduce issue

Create federation seed Add java federate Add interaction Do code generation Extract downloaded zip files mvn clean install in each extract root directory in the deployment folder run fed manager: mvn exec:java -P FederationManagerExecJava in the federate_generated/java-federates/federate-impl/federate/target directory run federate (repeat for each federate): java -Dlog4j.configurationFile=conf/log4j2.xml -jar Federate-0.1.0-SNAPSHOT.jar -federationId=PingPongProject -configFile=conf/FederateConfig.json Then start the experiment with: curl -X POST http://localhost:8083/fedmgr --data '{"action": "START"}' -H "Content-Type: application/json"

tpr1 commented 6 years ago

If the intent is to align the behavior, then the bind address requires a bit of work.

A new option should be added to the federates exporter to specify the bind address: https://github.com/usnistgov/ucef-meta/blob/6087f0877ac33d7dcb97125aea2c4c8fbcfe5299/src/plugins/DeploymentExporter/metadata.json#L71-L84

The federates exporter plugin should store the bindAddress in some class: https://github.com/usnistgov/ucef-meta/blob/6087f0877ac33d7dcb97125aea2c4c8fbcfe5299/src/plugins/DeploymentExporter/DeploymentExporter.js#L90

And pass that class to the RID template: https://github.com/usnistgov/ucef-meta/blob/6087f0877ac33d7dcb97125aea2c4c8fbcfe5299/src/plugins/DeploymentExporter/DeploymentExporter.js#L400-L401

And use that bind address in the output: https://github.com/usnistgov/ucef-meta/blob/6087f0877ac33d7dcb97125aea2c4c8fbcfe5299/src/plugins/DeploymentExporter/Templates/rti.rid.ejs#L171

https://github.com/usnistgov/ucef-meta/commit/98a8a68a55a04ee6e316231b7527a27528a67ffc relies on the default value of the deployment exporter; the generated code can easily use a different value for it.

MartyBurns commented 6 years ago

Following Tom's comment, I have implemented the setting of bindaddress.