User development, A new message was posted in the thread "Circular Dependencies and Semi-Resolve":
http://community.jboss.org/message/530202#530202 Author : Adrian Brock Profile : http://community.jboss.org/people/[email protected] Message: -------------------------------------------------------------- https://jira.jboss.org/jira/browse/JBKERNEL-109 I've committed a prototype for circular dependencies. This involved three main changes: 1) The ability to "semiResolve" a dependency which means that you know what you want to depend on, but it is not in the correct state yet. However, if the only thing that is stopping it moving to the correct state is a circular dependency (i.e. other things in the semi-resolved state) then it will upgraded to fully resolved. 2) Change AbstractDependencyItem to use an enum for the three different types of resolved states, resolved, semi-resolved and unresolved and track the different types in AbstractDependencyInfo for optimized processing of the different types. 3) A change in AbstractController to introduce an "uninstalling" set like the "installing" set, to avoid recursive when uninstalling contexts that have circular dependencies. Caveats: * I haven't looked at adding ON_DEMAND processing, although it should be simple to add? * The semi-resolved handling only looks at contexts in the previous state to what you require. If they are in any earlier state then they are unresovled until they progress to the previous state. This avoids having to do a complicated determination on whether there is a path to break the circular dependency, rather than just advancing all the related semi-resolved contexts to the next state. Its usage should be trivial: public MyDependencyItem extends AbstractDependencyItem { public boolean resolve(Controller) { // Determine the context we want to be semi-resolved on ControllerContext ctx = ...; if (ctx == null) return false; // Pass the handling to AbstractDependencyItem return semiResolve(ctx); } } -------------------------------------------------------------- To reply to this message visit the message page: http://community.jboss.org/message/530202#530202
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
