Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
e04c1a0
sqlite object cache first try
milt Jun 18, 2026
78b4838
ignore sqlite files
milt Jun 18, 2026
d6a0cd6
Merge branch 'main' into sql_cache
milt Jun 22, 2026
6b7e8b3
Merge remote-tracking branch 'origin/target_processing' into sql_cach…
milt Jun 29, 2026
eeecc60
Merge branch 'main' into sql_cache_sync
milt Jun 29, 2026
aa79cce
Merge pull request #16 from yetanalytics/sql_cache_sync
milt Jun 29, 2026
af3fab5
use FOMXML
milt Jun 29, 2026
00ee4df
whoops also the tests
milt Jun 29, 2026
8f94b74
wire up
milt Jun 29, 2026
8840f0b
prevent typey loopey
milt Jun 29, 2026
a21f979
add a cache-backed query to the xapi config
milt Jun 30, 2026
219c271
Merge main into sql_cache
milt Jul 1, 2026
a3d3c1d
DI wrapping ObjectCache for SQL object cache
milt Jul 1, 2026
84cb59d
remove one-arg constructor
milt Jul 1, 2026
dea2303
FomCatalog spring bean
milt Jul 1, 2026
fef0683
one-arg constructor for fomcatalog and make it a component
milt Jul 1, 2026
01198f0
update silly test
milt Jul 1, 2026
9fd8b93
Merge pull request #20 from yetanalytics/sql_cache_di
milt Jul 2, 2026
4afd549
Merge branch 'main' into sql_cache
milt Jul 2, 2026
2b59635
allow user to specify explicit list of tracked sim objects
milt Jul 2, 2026
d777618
cache lookups scoped by trigger
milt Jul 3, 2026
f9d1d6f
strict throw on nulls by default with explicit nullables
milt Jul 7, 2026
a1b7be2
Merge branch 'main' into sql_cache
milt Jul 7, 2026
f552dfe
Merge branch 'sql_cache' into sql_cache_explicit_nulls
milt Jul 7, 2026
cbb7e10
Merge pull request #26 from yetanalytics/sql_cache_explicit_nulls
milt Jul 7, 2026
96cf107
use adorable names FOM and make more interesting demo
milt Jul 7, 2026
89c49cd
Merge branch 'main' into sql_cache
milt Jul 7, 2026
9fa08d0
basic config doc
milt Jul 8, 2026
90b900b
remove dup stuff and link to xapi config doc in readme
milt Jul 8, 2026
f3081c9
whoops, forgot some extra info on cache
milt Jul 9, 2026
72d6acb
remove pre-di null object guard
milt Jul 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
.vscode/
target/
logs/
*.sqlite
lib/
32 changes: 2 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,36 +20,8 @@ fom=config/HlaFedereplFOM.xml

#### xAPI Config

*Section in progress...*

The sample `xapi-config.json` reflects the current state of compatible configuration options. `statementTriggers` is an array of "triggers" which fire on a specific interaction or object update from the RTI. The trigger contains criteria (not yet implemented) and also a statement template which allows for the generation and storage of a valid xAPI statement. The statement template contains "injection" syntax which allow the insertion of details from the tiggering RTI update or values from an object cache (in progress) to be used as values in the statement.

##### Criteria
*Section in progress...*

##### Injections
*Section in progress...*

##### LRS Configuration
The `lrs` section contains the details for connecting to a valid Learning Record Store (LRS), and will be used to initialize a client which will write the resulting statements from the Federate to that LRS.

Example:

```
...
"lrs": {
"host": "http://localhost:8080/xapi",
"key": "my_key",
"secret": "my_secret",
"batch": 50
}
```

The frequency of the buffer being cleared and statement being actually posted can be changed with a java property when running the jar:

```
java -Dxapi.buffer.clear-rate=5000 ...
```
The sample `xapi-config.json` reflects the current state of compatible configuration options.
See the [HLA xAPI Adapter xAPI Configuration Reference](doc/xapi-config.md) for a full configuration reference.

### Vendoring Portico

Expand Down
38 changes: 23 additions & 15 deletions config/xapi-config.json
Comment thread
milt marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,38 @@
"statementTriggers": [
{
"type": "Interaction",
"class": "EntityMoved",
"class": "EntityAte",
"criteria": [["this", "key1"], "=", "thing1"],
"lookups": {
"predator": {
"class": "SimEntity",
"criteria": [["EntityId"], "=", ["this", ["PredatorId"]]]
},
"prey": {
"class": "SimEntity",
"criteria": [["EntityId"], "=", ["this", ["PreyId"]]]
}
},
"statement": {
"actor": {
"objectType": "Agent",
"name": ["this", ["EntityId"]],
"name": "<<[\"lookup\", \"predator\", [\"FirstName\"]]>> <<[\"lookup\", \"predator\", [\"LastName\"]]>>",
"account": {
"homePage": "https://homepage.system.io",
"name": ["this", ["EntityId"]]
}
},
"context": {
"extensions":{
"https://yetanalytics.com/extensions/from-position": "[<<[\"this\", [\"FromPosition\", \"X\"]]>>, <<[\"this\", [\"FromPosition\", \"Y\"]]>>]"
"homePage": "https://hla-federepl.example/entities",
"name": ["this", ["PredatorId"]]
}
},
"result": {
"response": "[<<[\"this\", [\"ToPosition\", \"X\"]]>>, <<[\"this\", [\"ToPosition\", \"Y\"]]>>]"
},
"verb": {
"id": "http://yetanalytics.com/verbs/moved"
"id": "http://example.com/verbs/ate",
"display": {"en-US": "Ate"}
},
"object": {
"id": "http://yetanalytics.com/objects/7"
"objectType": "Agent",
"name": "<<[\"lookup\", \"prey\", [\"FirstName\"]]>> <<[\"lookup\", \"prey\", [\"LastName\"]]>>",
"account": {
"homePage": "https://hla-federepl.example/entities",
"name": ["this", ["PreyId"]]
}
}
}
}
Expand All @@ -36,5 +44,5 @@
"secret": "my_secret",
"batch": 35,
"maxRetries": 3
}
}
}
Loading
Loading