/** * 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(); }
if (state == null || state.equals(item.getWhenRequired())) if (item.isResolved() == false)
if (item.isResolved()) ControllerState dependentState = item.getDependentState(); if (dependentState == null || dependentState.equals(fromState)) if (item.unresolved(this)) getContexts(item.getName(), dependents); if (dependents.isEmpty() == false) ControllerState whenRequired = item.getWhenRequired(); if (whenRequired == null) whenRequired = stateModel.getInitialState(); if (item.isResolved()) ControllerState whenRequired = item.getWhenRequired(); if (whenRequired == null || whenRequired.equals(fromState)) Object iDependOn = item.getIDependOn(); if (item.unresolved(this)) ControllerContext dependency = getContext(iDependOn, item.getDependentState()); if (dependency != null)
for (DependencyItem item : dependsInfo.getIDependOn(null)) if (item.isResolved() == false) Object iDependOn = item.getIDependOn(); if (iDependOn == null) actualStateString = "** UNRESOLVED " + item.toHumanReadableString() + " **"; ControllerContext other = controller.getContext(item.getIDependOn(), null); if (other == null) actualStateString = "** NOT FOUND **"; ControllerState requiredState = item.getWhenRequired(); String requiredStateString = requiredState.getStateString(); int required = states.indexOf(requiredState);
for (DependencyItem item : depends) ControllerState dependentState = item.getDependentState(); if (dependentState == null) dependentState = ControllerState.INSTALLED; Object iDependOn = item.getIDependOn(); iDependOn == null ? String.format("unresolved (%s)", item.toHumanReadableString()) : other == null ? "not found" :
public void unresolved(DependencyItem item) { if (tracking) { ControllerState whenRequired = item.getWhenRequired(); Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved; if (unresolved == null) { this.unresolved = new ConcurrentHashMap<ControllerState, Set<DependencyItem>>(); unresolved = this.unresolved; } Set<DependencyItem> items = unresolved.get(whenRequired); if (items == null) { items = new ConcurrentSet<DependencyItem>(); unresolved.put(whenRequired, items); } items.add(item); removeSemiResolved(item, whenRequired); } }
Object name = item.getIDependOn(); if (name == null) continue;
ResolvedState result = checkSemiResolvedIsFullyResolved(other, item.getDependentState(), alreadyChecked); if (result != ResolvedState.RESOLVED) return result;
if (tracking) if (dependency.isResolved() == false) ControllerState whenRequired = dependency.getWhenRequired(); Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved; if (unresolved == null)
public void semiResolved(DependencyItem item) { if (tracking) { ControllerState whenRequired = item.getWhenRequired(); Map<ControllerState, Set<DependencyItem>> semiResolved = this.semiResolved; if (semiResolved == null) { this.semiResolved = new ConcurrentHashMap<ControllerState, Set<DependencyItem>>(); semiResolved = this.semiResolved; } Set<DependencyItem> items = semiResolved.get(whenRequired); if (items == null) { items = new ConcurrentSet<DependencyItem>(); semiResolved.put(whenRequired, items); } items.add(item); removeUnresolved(item, whenRequired); } }
/** * 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(); }
public void resolved(DependencyItem item) { if (tracking) { ControllerState whenRequired = item.getWhenRequired(); removeUnresolved(item, whenRequired); removeSemiResolved(item, whenRequired); } }
public void removeIDependOn(DependencyItem dependency) { Set<DependencyItem> iDependOn = this.iDependOn; if (iDependOn == null) return; iDependOn.remove(dependency); flushJBossObjectCache(); if (dependency instanceof TrackingDependencyItem) { ((TrackingDependencyItem) dependency).setDependencyInfo(null); if (tracking) { ControllerState whenRequired = dependency.getWhenRequired(); removeUnresolved(dependency, whenRequired); } } }