Raymond had to adjust the binding-ws-calculator test case where we are
calling references from within an @Init method which was deadlocking. In
this case the reference/service interface is over web services. The problem
is that the CompositeActivator is written so that each component is started
completely and one after another and hence target service bindings are not
necessarily active when the first @Init is run, e.g. in
CompositeActivator.start(Component component)...

For each component
  start reference provider
  start service provider
  start implementation provider
  start scoped component - Whic in turn calls @Init method

Which I think should be

For each component
  start reference provider
  start service provider
  start implementation provider

For each component
  start scoped component

In order that all the implementations and reference/service bindings are
started before any @Init methods run.

I'm saying this based on the assumption that it's valid to call injected
references from within methods marked as @Init. The Java common annotations
and APIs say's that @Init must be called after injection is complete. It
doesn't explcitly say that you can use the injected references but I don't
see how you can stop developers doing this if injection is complete.

Simon

Reply via email to