Simon Nash wrote:
Simon Laws wrote:
OK Simon thanks for the update. I've a few things to check in today
also so no particular rush.
I had a quick look and I can't find examples of callbacks being tested
in the distributed domain over binding.sca. We have a few examples
successfully using binding.ws as you say.
Simon
After a marathon debugging session, I found the major cause of this
problem. There is code in RuntimeSCAReferenceBindingProvider to
use a distributed provider if it thinks the reference target is
remote. This logic is also used to decide whether or not a start()
call to the generic/local provider should also call start() on the
distributed provider. For regular references, this logic works OK
because the target is known at start() time. For a callback reference
the target is not known at start() time and the current code assumes
that these references are local, so it does not call start() on the
distributed provider. When a remote callback is made at runtime, the
distributed provider is used for this but it doesn't work because it
was not started correctly.
I have a fix for this that allows a simple test to run. As I was
debugging the problem, I came across a few other issues in the
domain manager configuration code for <binding.sca>, which I have
worked around temporarily so that I could make progress with this
showstopper bug.
Getting all of this straightened out and working properly for
the SCA binding is likely to take me a couple more days. I should
be able to clean up and commit my current set of changes tomorrow
(Thursday) evening. At that time I'll send another note saying
what has been fixed and what is still not working properly.
Simon
I have committed this fix as revision r799472. There are still some
issues with the URI generation algorithm for forward references and
callbacks (in some cases, the URIs might not be unique) but this
is a separate problem which I think can be fixed in the release
after 1.5.1. I will open a new JIRA to track this.
So from my perspective, 1.5.1 is now ready to go.
Simon