/** * 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); }
public Set<DependencyItem> getIDependOn(Class<?> type) { return delegate.getIDependOn(type); }
public Set<DependencyItem> getUnresolvedDependencies(ControllerState state) { return delegate.getUnresolvedDependencies(state); }
/** * 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); } } }
Set<DependencyItem> dependsOnMe = dependencies.getDependsOnMe(null); if (dependsOnMe.isEmpty() == false) dependencies.removeDependsOnMe(item); Set<DependencyItem> iDependOns = dependencies.getIDependOn(null); if (iDependOns.isEmpty() == false) if (info != null) info.removeDependsOnMe(item);
if (dependencies != null) Set<DependencyItem> iDependOn = dependencies.getIDependOn(null); if (iDependOn.isEmpty() == false) continue; Set<DependencyItem> dependsOnOther = otherDependencies.getDependsOnMe(null); if (dependsOnOther.isEmpty())
public void removeIDependOn(DependencyItem dependency) { getDependencyInfo().removeIDependOn(dependency); }
/** * 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); } } } } }
if (di != null) Set<CallbackItem<?>> items = isInstallPhase ? di.getInstallItems() : di.getUninstallItems(); if (items == null || items.isEmpty()) return null;
protected Set<CallbackItem<?>> getCallbacks(DependencyInfo dependency) { return dependency.getInstallItems(); }
public Set<DependencyItem> getDependsOnMe(Class<?> type) { return delegate.getDependsOnMe(type); }
/** * 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); }
/** * 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); }
public void removeIDependOn(DependencyItem dependency) { getDependencyInfo().removeIDependOn(dependency); }
protected Set<CallbackItem<?>> getCallbacks(DependencyInfo dependency) { return dependency.getInstallItems(); }
public void addDependency(DependencyItem dependency) { getDependencyInfo().addIDependOn(dependency); }
private void removeClassContextReference() { DependencyInfo dependencyInfo = getDependencyInfo(); if (dependencyInfo != null) { // remove all dependency items that hold class ref Set<DependencyItem> dependencys = dependencyInfo.getIDependOn(ClassContextDependencyItem.class); dependencys.addAll(dependencyInfo.getIDependOn(CallbackDependencyItem.class)); for (DependencyItem di : dependencys) { // can cast because of getIDepend method impl ClassDependencyItem cdi = (ClassDependencyItem)di; cdi.clear(getController()); } } }
/** * Get the unresolved dependencies * * @param context the context * @param state the state we want to move to * @return the unresolved dependencies */ private String getUnresolvedDependencies(ServiceControllerContext context, ControllerState state) { boolean first = true; StringBuilder builder = new StringBuilder(); for (DependencyItem item : context.getDependencyInfo().getUnresolvedDependencies(null)) { if (item.isResolved() == false && item.getWhenRequired() == state) { if (first) first = false; else builder.append(' '); builder.append(item.getIDependOn()); } } return builder.toString(); }
/** * 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); }
public Set<CallbackItem<?>> getInstallItems() { return delegate.getInstallItems(); }