/** * Add a dependency * * @param item the dependency item */ protected void addIDependOn(RequirementDependencyItem item) { if (context == null) throw new IllegalStateException("No controller context"); context.getDependencyInfo().addIDependOn(item); }
/** * Remove a dependency. * * @param item the dependency item. */ protected void removeDependsOnMe(RequirementDependencyItem item) { if (context == null) return; DependencyInfo dependencyInfo = context.getDependencyInfo(); dependencyInfo.removeDependsOnMe(item); }
public DependencyInfo getDependencyInfo() { DependencyInfo dependencyInfo = delegate.getDependencyInfo(); return dependencyInfo != null ? new UnmodifiableDependencyInfo(dependencyInfo) : null; }
/** * Register a dependency with another context * * @param controller the controller * @param context the other context */ protected void addDependsOnMe(Controller controller, ControllerContext context) { DependencyInfo info = context.getDependencyInfo(); if (info != null) info.addDependsOnMe(this); }
/** * See if the context has its dependencies resolved to move to the given state. * <p/> * This method must be invoked with the write lock taken * * @param ctx The context * @param state The state we want to move to * @return true if the dependencies are resolved */ private boolean resolveDependencies(ControllerContext ctx, ControllerState state) { DependencyInfo dependencies = ctx.getDependencyInfo(); return dependencies == null || dependencies.resolveDependencies(this, state); }
/** * Remove a dependency * * @param item the dependency item */ protected void removeIDependOn(RequirementDependencyItem item) { if (context == null) throw new IllegalStateException("No controller context"); // Remove the DependsOnMe part of this item item.setResolved(ResolvedState.UNRESOLVED); // Remove the IDependOn part of this item DependencyInfo dependencyInfo = context.getDependencyInfo(); dependencyInfo.removeIDependOn(item); }
/** * Add dependency. * * @param controller the controller * @param context changed context * @param isInstallPhase install or uninstall phase */ protected void addDependency(Controller controller, ControllerContext context, boolean isInstallPhase) { if (owner instanceof ControllerContext) { ControllerContext co = (ControllerContext)owner; DependencyItem dependency = createDependencyItem(co); if (dependency != null && dependency.resolve(controller)) { context.getDependencyInfo().addDependsOnMe(dependency); co.getDependencyInfo().addIDependOn(dependency); } } }
public DependencyInfo getDependencyInfo() { ControllerContext controllerContext = getTransientAttachments().getAttachment(ControllerContext.class); if (controllerContext != null) return controllerContext.getDependencyInfo(); else { DeploymentContext parent = getParent(); if (parent == null) throw new IllegalStateException("Deployment ControllerContext has not been set"); return parent.getDependencyInfo(); } }
/** * It is lazy shutdown so remove anything that depends upon us for a requirement * We can still handle it after the classloader gets unregistered */ private void enableLazyShutdown() { ControllerContext ctx = getControllerContext(); if (ctx != null) { DependencyInfo info = ctx.getDependencyInfo(); if (info != null) { Set<DependencyItem> items = info.getDependsOnMe(RequirementDependencyItem.class); if (items != null && items.isEmpty() == false) { for (DependencyItem item : items) info.removeDependsOnMe(item); } } } } }
public DependencyInfo getDependencyInfo() { ControllerContext controllerContext = getTransientAttachments().getAttachment(ControllerContext.class); if (controllerContext != null) { return controllerContext.getDependencyInfo(); } else { DeploymentContext parent = getParent(); if (parent == null) throw new IllegalStateException("Deployment ControllerContext has not been set"); return parent.getDependencyInfo(); } }
DependencyInfo di = context.getDependencyInfo(); if (di != null)
dependent = ControllerState.getInstance(dependentState); DependencyInfo di = targetControllerContext.getDependencyInfo(); for (Object dependency : dependencies)
/** * Add optional dependency. * * @param controller the controller * @param lookup the lookup context */ protected void addOptionalDependency(Controller controller, ControllerContext lookup) { OptionalDependencyItem dependency = new OptionalDependencyItem(context.getName(), lookup.getName(), lookup.getState()); context.getDependencyInfo().addIDependOn(dependency); lookup.getDependencyInfo().addDependsOnMe(dependency); }
/** * Handle lifecycle callbacks. * * @param context the context * @param state the state * @param install is it install or uninstall * @throws Throwable for any error */ protected void handleLifecycleCallbacks(ControllerContext context, ControllerState state, boolean install) throws Throwable { DependencyInfo di = context.getDependencyInfo(); if (di != null) { List<LifecycleCallbackItem> callbacks = di.getLifecycleCallbacks(); for (LifecycleCallbackItem callback : callbacks) { if (callback.getWhenRequired().equals(state)) { if (install) callback.install(context); else callback.uninstall(context); } } } }
try DependencyInfo dependencies = context.getDependencyInfo(); if (dependencies != null) DependencyInfo otherDependencies = other.getDependencyInfo(); if (otherDependencies == null) continue;
DependencyInfo dependsInfo = context.getDependencyInfo(); for (DependencyItem item : dependsInfo.getIDependOn(null))
DependencyInfo dependencies = context.getDependencyInfo(); if (trace)
return ResolvedState.SEMI_RESOLVED; DependencyInfo info = context.getDependencyInfo();
@Override public boolean unresolved(Controller controller) { if (loader != null) { ClassLoaderPolicy policy = getPolicy(); policy.removeExtraDelegate(loader); } Object iDependOn = getIDependOn(); if (iDependOn != null) { ControllerContext context = controller.getContext(iDependOn, null); if (context != null) { DependencyInfo info = context.getDependencyInfo(); info.removeDependsOnMe(this); } } module.removeIDependOn(this); super.unresolved(controller); return false; // return false, so we don't get unwinded }
DependencyInfo dependencyInfo = context.getDependencyInfo(); if (dependencyInfo != null && dependencyInfo.isAutowireCandidate())