commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ate Douma (JIRA)" <>
Subject [jira] [Commented] (SCXML-101) <datamodel> not handled as global
Date Thu, 12 Feb 2015 01:35:12 GMT


Ate Douma commented on SCXML-101:

I just noticed the global datamodel (scxml root <datamodel> element) was initialized
and stored in the *root* context, not the *global* context (also and only) used as *single*
I've updated this to now also (always) use the global context, which broke several unit tests
To still allow and provide access to the initial <datamodel> data, I've added access
to the global context from the SCXMLExecutor.

NB: any current (external) usage of Commons SCXML expecting these to still be available from
the root context will have to be updated to use this global context instead.

> <datamodel> not handled as global
> ---------------------------------
>                 Key: SCXML-101
>                 URL:
>             Project: Commons SCXML
>          Issue Type: Bug
>    Affects Versions: 0.9
>            Reporter: Ingmar Kliche
>             Fix For: 2.0
> The SCXML spec says: "Logically, there is a single globally visible data model for the
entire state machine. As an authoring convenience, however, we allow <datamodel> as
a child of any <state>, thus allowing parts of the data model to be distributed throughout
the document closer to the locations where the data will be accessed. However, all instances
of the <data> element are created and initialized when the state machine is instantiated
and may be accessed from any state at any time." [1]
> There are two issues:
> 1) The current impl of commons-scxml introduced a scoping, such that <data> in
<datamodel> elements contained within a <state> are only visible in this state
and its children (due to context chain). I.e. the <datamodel> is not entirely global.
> 2) Initialization of <datamodel>'s contained in a <state> (i.e. non-root-datamodels)
take place while entering the corresponding state for the first time while creating the context
(SCXMLInstance#getContext()). But initialization of <data> elements has to take place
at state machine initialization time.
> [1]

This message was sent by Atlassian JIRA

View raw message