-
1. Re: Circular Dependencies and Semi-Resolve
alesj Mar 5, 2010 11:11 AM (in response to adrian.brock)Does this work out-of-the-box for multiple circular depending deployments (aka OSGi bundles, which is what we're aiming for)?
How are service's invalid configs reported -- A on B in ctor, and vice-versa?
I guess they just don't ever get resolved -- failing at check complete?
-
2. Re: Circular Dependencies and Semi-Resolve
adrian.brock Mar 5, 2010 11:24 AM (in response to alesj)alesj wrote:
Does this work out-of-the-box for multiple circular depending deployments (aka OSGi bundles, which is what we're aiming for)?
How are service's invalid configs reported -- A on B in ctor, and vice-versa?
I guess they just don't ever get resolved -- failing at check complete?
Look at the tests, e.g. testTransientComplicatedCircular(), or write a new one if you think its not handled. ;-)
I don't think I've got full coverage on the tests since there's a lot of edge-cases with the
backwards compability handling, but I've got all of the basics.
Circular dependencies will only work if the DependencyItem explicitly invokes semiResolve()
(or it has some other way of handling it). So it doesn't change anything for existing implementations.
The checkComplete() should work fine. If the circular dependency can be resolved, its DependencyItem will
be in the RESOLVED state, so it won't appear in the IncompleteDeploymentException (IDE).
If its only in the SEMI_RESOLVED state, i.e. something is missing, it will appear in the IDE.
-
3. Re: Circular Dependencies and Semi-Resolve
adrian.brock Mar 5, 2010 11:27 AM (in response to adrian.brock)
So I've still got to change the classloading's RequirementsDependencyItem to do this. ;-)adrian@jboss.org wrote:
Circular dependencies will only work if the DependencyItem explicitly invokes semiResolve()