aerie icon indicating copy to clipboard operation
aerie copied to clipboard

1077 persistent anchors

Open jmdelfa opened this issue 1 year ago • 1 comments

  • Tickets addressed: Closes #1077 & Closes #1205
  • Review: By commit
  • Merge strategy: Merge (no squash)

Description

Inclusion of Persistent Anchors in Coexistence Goal. The anchor definition is optional so that backwards compatibility with older Coexistence Goals is guaranteed. An anchor can be either disabled, to the start of a directive or to its end. Implementation has focused on mitigating the impact on existing code trying to reuse as much as possible existing AERIE infrastructure. Even so, 40 classes haven been added/modified/deleted. TimeExpression has been heavily re-architected as there were many legacy relations. CoexistenceGoal and PrioritySolver have been modified to account for the indentification and resolution of conflicts related to anchors. The need for new conflict types was explored and discarded for the sake of simplicity.

Verification

Multiple tests have been added, including a dedicated TestPersistentAnchors that explores all possible combinations of anchors and existing/non-existing directives in the plan.

Documentation

No documentation is invalidated. New documentation needs to be produced to explain the anchor behaviour

Future work

This work is self contained and complete. Future extensions such as deeper control on when/how anchors are created should derive from user experience

jmdelfa avatar Apr 08 '24 21:04 jmdelfa

I'm concerned about the e2e test failure:

SchedulingTests > schedulingPostsSimResults() FAILED
    java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "gov.nasa.jpl.***.e2e.types.SchedulingResponse.datasetId()" is null
        at gov.nasa.jpl.***.e2e.SchedulingTests.schedulingPostsSimResults(SchedulingTests.java:358)

datasetId is only null if no simulation results were posted as a result of scheduling. It should not be null in this case, as the first time the plan in this test is simulated is within the scheduling run.

Mythicaeda avatar Apr 09 '24 15:04 Mythicaeda

Thanks! This had a failing test before but it passed on re-run so I think it was a fluke. Rebased & merging now.

dandelany avatar Jun 07 '24 23:06 dandelany