4.4 KiB
4.4 KiB
Configuration
Configuration is loaded from classpath properties files in src/main/resources/config:
application.propertiesfor runtime behaviorlogger.propertiesfor logging behavior
AppConfigValidator performs startup validation and fails fast on invalid settings.
application.properties
Core runtime keys
| Key | Required | Description |
|---|---|---|
mqtt.broker.url |
yes | MQTT broker URI (tcp://..., ssl://..., ws://..., wss://...) |
mqtt.client.id |
yes | MQTT client ID |
mqtt.topic |
yes | MQTT topic to subscribe to |
streaming.url |
yes | URL for embedded streaming view (http/https) |
animation.output.path |
yes | Target path for animation JSON output |
app.mode |
no | Generic runtime mode flag |
Optional simulator keys (mqtt_sim.*)
These become required/validated when mqtt_sim.enabled=true.
| Key | Description |
|---|---|
mqtt_sim.enabled |
Enable Python simulator startup |
python.path |
Python executable path |
mqtt_sim.script |
Simulator script path |
mqtt_sim.broker |
Broker host passed to simulator |
mqtt_sim.port |
Broker port passed to simulator |
mqtt_sim.topic |
Simulator publish topic |
mqtt_sim.qos |
QoS (0-2) |
mqtt_sim.interval_seconds |
Publish interval in seconds |
mqtt_sim.username / mqtt_sim.password |
Optional broker auth |
mqtt_sim.start_id |
Optional starting _id |
mqtt_sim.client_id |
Optional simulator client id |
mqtt_sim.log_file |
Optional simulator log path |
Optional Unreal keys (unreal.*)
These become required/validated when unreal.enabled=true.
| Key | Description |
|---|---|
unreal.enabled |
Enable Unreal startup flow |
unreal.executable |
PowerShell launcher script path |
unreal.signalling_server.script |
Signalling server BAT path |
unreal.target.executable |
Unreal executable path passed to script |
unreal.target.working_dir |
Unreal working directory passed to script |
unreal.target.args |
Unreal launch arguments |
unreal.pid.dir |
Optional PID output directory for script |
unreal.pid.file |
PID file used for shutdown cleanup |
unreal.signalling.pid.file |
Signalling PID file used for cleanup |
unreal.startup.delay.seconds |
Delay before Unreal launch in script |
Process startup health checks
| Key | Description | Default |
|---|---|---|
process.startup.healthcheck.enabled |
Enable startup health checks for managed processes | true |
process.startup.healthcheck.timeout.millis |
Health-check timeout | 10000 |
process.startup.healthcheck.poll.millis |
Poll interval | 250 |
logger.properties
| Key | Description | Typical value |
|---|---|---|
logger.level |
Minimum log level | DEBUG |
logger.file.enabled |
Toggle file logging | true |
logger.file |
Log file path | logs/application.log |
logger.max.size.mb |
Rotation threshold in MB | 10 |
Validation Behavior
The validator checks:
- URI format and scheme for MQTT broker URL
- non-empty required keys
- numeric ranges (
port, QoS, timeout/poll values, delays) - file/directory existence for enabled integrations
- optional quote handling and invalid path syntax
Any validation errors are grouped and thrown as a single startup exception.
Script Environment Mapping
mqtt_simulator.py
App config keys are forwarded as environment variables:
mqtt_sim.broker->MQTT_SIM_BROKERmqtt_sim.port->MQTT_SIM_PORTmqtt_sim.topic->MQTT_SIM_TOPICmqtt_sim.username->MQTT_SIM_USERNAMEmqtt_sim.password->MQTT_SIM_PASSWORDmqtt_sim.qos->MQTT_SIM_QOSmqtt_sim.interval_seconds->MQTT_SIM_INTERVAL_SECONDSmqtt_sim.start_id->MQTT_SIM_START_IDmqtt_sim.client_id->MQTT_SIM_CLIENT_IDmqtt_sim.log_file->MQTT_SIM_LOG_FILE
start_avatar.ps1
App config keys are forwarded as environment variables:
unreal.target.executable->VGA_UE_EXEunreal.target.args->VGA_UE_ARGSunreal.target.working_dir->VGA_UE_WORKDIRunreal.signalling_server.script->VGA_SIGNALLING_BATunreal.startup.delay.seconds->VGA_SIGNALLING_DELAYunreal.pid.dir(or PID parent fallback) ->VGA_PID_DIR
Practical Recommendation
For first-time local runs, keep:
mqtt_sim.enabled=false
unreal.enabled=false
Then enable integrations incrementally after validating local paths and dependencies.