[ 
https://issues.apache.org/jira/browse/SCXML-226?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14317195#comment-14317195
 ] 

Ate Douma commented on SCXML-226:
---------------------------------

[~hiu.phail] Thank you for this contribution!
Your timing is perfect :)
I've actually been working the last few days on an improvement in exactly the 
same area, although so far only concerning #_parent support.
I do like your patch and it definitely helps! 
Your changes for the #_parent target in general match those of mine 
(high-level), but there are a few differences...  

My changes (for #_parent) are more elaborate  because I also added additional 
support for setting up the child SCXMLExecutor.
A child SCXMLExecutor should (as a default) also 'share' the same 
SCXMLSemantics implementation, EventDispatcher, and ErrorReporter.
This requires that the Invoker (SimpleSCXMLInvoker) gets a reference to the 
'parent' SCXMLExecutor passed in.
All this resulted in a few other changes, one of which was dropping the no 
longer useful (too limiting) InvokerManager interface!

Long story short: I am about to commit *my* changes for #_parent target support 
first, and I think those changes will 'align' with your current usages.
As said: there are some more API changes and some different from your patch, 
but I think it should be easy to adjust to those.

Once I've committed those, I'll rework your patch for the #_invokeid support 
and merge that in as well.
If the end result is not providing or somehow limiting in what you 
need/expected, just let me know and we can work out further adjustments or 
enhancements.

Thanks again for your contribution, and I'm looking forward for more :)

Regards, Ate

> Support of special send targets #_parent and #_invokeid
> -------------------------------------------------------
>
>                 Key: SCXML-226
>                 URL: https://issues.apache.org/jira/browse/SCXML-226
>             Project: Commons SCXML
>          Issue Type: Bug
>    Affects Versions: 0.5, 0.6, 0.7, 0.8, 0.9
>            Reporter: Michael Goerlich
>            Assignee: Ate Douma
>             Fix For: 2.0
>
>         Attachments: fix_invoke_special_targets
>
>
> Currently it is not possible to use #_parent and #_invokeid to allow 
> communication between two scxml instances where one invoked the other. 
> Due to the last changes the _ioprocessors variable was introduced. If the 
> target of a <send> may reference to an entry in the _ioprocessors map, then 
> it should be possible to forward events directly to the registered 
> SCXMLIOProcessor instance.
> Given this the invoker must supply a SCXMLIOProcessor for the parent to 
> register within the its SCXMLExecutionContext map as #_invokeId and the 
> invoker must register the parent SCXMLIOProcessor as #_parent within the 
> execution context of the SCXMLExecutor. As well as this the EventDispatcher 
> must take the SCXMLIOProcessor registered for the target from _ioprocessors.
> Based on my assumptions I tried to implement this and uploaded the patch to: 
> http://pastebin.com/t855Ugs1 . Hope it helps.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to