/** * Gets the scope in which the capability is registered. * * @return the capability scope. Will not return {@code null} */ public CapabilityScope getCapabilityScope() { return id.getScope(); }
/** * Gets the scope in which the capability is registered. * * @return the capability scope. Will not return {@code null} */ public CapabilityScope getCapabilityScope() { return id.getScope(); }
public CapabilityScope getDependentContext() { return dependentId.getScope(); }
public CapabilityScope getDependentContext() { return dependentId.getScope(); }
private Step findCapabilityRemovalStep(CapabilityId missingRequirement, boolean ignoreContext, CapabilityResolutionContext resolutionContext) { Step result = removedCapabilities.get(missingRequirement); if (result == null && !ignoreContext) { String missingName = missingRequirement.getName(); for (Map.Entry<CapabilityId, Step> entry : removedCapabilities.entrySet()) { CapabilityId removedId = entry.getKey(); if (missingName.equals(removedId.getName()) && removedId.getScope().canSatisfyRequirement(missingRequirement.getName(), missingRequirement.getScope(), resolutionContext)) { result = entry.getValue(); break; } } } return result; }
private Step findCapabilityRemovalStep(CapabilityId missingRequirement, boolean ignoreContext, CapabilityResolutionContext resolutionContext) { Step result = removedCapabilities.get(missingRequirement); if (result == null && !ignoreContext) { String missingName = missingRequirement.getName(); for (Map.Entry<CapabilityId, Step> entry : removedCapabilities.entrySet()) { CapabilityId removedId = entry.getKey(); if (missingName.equals(removedId.getName()) && removedId.getScope().canSatisfyRequirement(missingRequirement.getName(), missingRequirement.getScope(), resolutionContext)) { result = entry.getValue(); break; } } } return result; }
private RuntimeStatus getDependentCapabilityStatus(Map<String, RuntimeRequirementRegistration> dependents, CapabilityId requiror, Set<CapabilityId> examined) { RuntimeStatus result = RuntimeStatus.NORMAL; if (dependents != null) { for (String dependent : dependents.keySet()) { CapabilityScope requirorScope = requiror.getScope(); List<CapabilityScope> toCheck = requirorScope == CapabilityScope.GLOBAL ? Collections.singletonList(requirorScope) : Arrays.asList(requirorScope, CapabilityScope.GLOBAL); for (CapabilityScope scope : toCheck) { CapabilityId dependentId = new CapabilityId(dependent, scope); if (!examined.contains(dependentId)) { RuntimeStatus status = getCapabilityStatus(dependentId, examined); if (status == RuntimeStatus.RESTART_REQUIRED) { return status; // no need to check anything else } else if (status == RuntimeStatus.RELOAD_REQUIRED) { result = status; } } } } } return result; }
private RuntimeStatus getDependentCapabilityStatus(Map<String, RuntimeRequirementRegistration> dependents, CapabilityId requiror, Set<CapabilityId> examined) { RuntimeStatus result = RuntimeStatus.NORMAL; if (dependents != null) { for (String dependent : dependents.keySet()) { CapabilityScope requirorScope = requiror.getScope(); List<CapabilityScope> toCheck = requirorScope == CapabilityScope.GLOBAL ? Collections.singletonList(requirorScope) : Arrays.asList(requirorScope, CapabilityScope.GLOBAL); for (CapabilityScope scope : toCheck) { CapabilityId dependentId = new CapabilityId(dependent, scope); if (!examined.contains(dependentId)) { RuntimeStatus status = getCapabilityStatus(dependentId, examined); if (status == RuntimeStatus.RESTART_REQUIRED) { return status; // no need to check anything else } else if (status == RuntimeStatus.RELOAD_REQUIRED) { result = status; } } } } } return result; }
readLock.lock(); try { final CapabilityId capId = capabilityId.getScope() == CapabilityScope.GLOBAL ? capabilityId : new CapabilityId(capabilityId.getName(), CapabilityScope.GLOBAL); //possible registry is only in global scope CapabilityRegistration<?> reg = possibleCapabilities.get(capId); if (reg != null) { for (CapabilityRegistration<?> registration : possibleCapabilities.values()) { if (registration.getCapability().isDynamicallyNamed() && registration.getCapabilityScope().equals(capId.getScope()) && capId.getName().startsWith(registration.getCapabilityName())) { Set<RegistrationPoint> registrationPoints = registration.getRegistrationPoints();
readLock.lock(); try { final CapabilityId capId = capabilityId.getScope() == CapabilityScope.GLOBAL ? capabilityId : new CapabilityId(capabilityId.getName(), CapabilityScope.GLOBAL); //possible registry is only in global scope CapabilityRegistration<?> reg = possibleCapabilities.get(capId); if (reg != null) { for (CapabilityRegistration<?> registration : possibleCapabilities.values()) { if (registration.getCapability().isDynamicallyNamed() && registration.getCapabilityScope().equals(capId.getScope()) && capId.getName().startsWith(registration.getCapabilityName())) { Set<RegistrationPoint> registrationPoints = registration.getRegistrationPoints();
/** * This must be called with the write lock held. * @param requirement the requirement */ private void registerRequirement(RuntimeRequirementRegistration requirement) { assert writeLock.isHeldByCurrentThread(); CapabilityId dependentId = requirement.getDependentId(); if (!capabilities.containsKey(dependentId)) { throw ControllerLogger.MGMT_OP_LOGGER.unknownCapabilityInContext(dependentId.getName(), dependentId.getScope().getName()); } Map<CapabilityId, Map<String, RuntimeRequirementRegistration>> requirementMap = requirement.isRuntimeOnly() ? runtimeOnlyRequirements : requirements; Map<String, RuntimeRequirementRegistration> dependents = requirementMap.get(dependentId); if (dependents == null) { dependents = new HashMap<>(); requirementMap.put(dependentId, dependents); } RuntimeRequirementRegistration existing = dependents.get(requirement.getRequiredName()); if (existing == null) { dependents.put(requirement.getRequiredName(), requirement); } else { existing.addRegistrationPoint(requirement.getOldestRegistrationPoint()); } modified = true; }
/** * This must be called with the write lock held. * @param requirement the requirement */ private void registerRequirement(RuntimeRequirementRegistration requirement) { assert writeLock.isHeldByCurrentThread(); CapabilityId dependentId = requirement.getDependentId(); if (!capabilities.containsKey(dependentId)) { throw ControllerLogger.MGMT_OP_LOGGER.unknownCapabilityInContext(dependentId.getName(), dependentId.getScope().getName()); } Map<CapabilityId, Map<String, RuntimeRequirementRegistration>> requirementMap = requirement.isRuntimeOnly() ? runtimeOnlyRequirements : requirements; Map<String, RuntimeRequirementRegistration> dependents = requirementMap.get(dependentId); if (dependents == null) { dependents = new HashMap<>(); requirementMap.put(dependentId, dependents); } RuntimeRequirementRegistration existing = dependents.get(requirement.getRequiredName()); if (existing == null) { dependents.put(requirement.getRequiredName(), requirement); } else { existing.addRegistrationPoint(requirement.getOldestRegistrationPoint()); } modified = true; }
CapabilityId dependentId = entry.getKey(); String dependentName = dependentId.getName(); CapabilityScope dependentContext = dependentId.getScope(); Set<CapabilityScope> consistentSet = consistentSets == null ? null : consistentSets.get(dependentContext); for (RuntimeRequirementRegistration req : entry.getValue().values()) {
CapabilityId dependentId = entry.getKey(); String dependentName = dependentId.getName(); CapabilityScope dependentContext = dependentId.getScope(); Set<CapabilityScope> consistentSet = consistentSets == null ? null : consistentSets.get(dependentContext); for (RuntimeRequirementRegistration req : entry.getValue().values()) {
|| !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), rp, capabilityId.getScope().getName(), currentRegistration.getRegistrationPoints()); capabilityId.getScope(), rp)); CapabilityScope capContext = capabilityId.getScope(); knownContexts.add(capContext);
|| !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), rp, capabilityId.getScope().getName(), currentRegistration.getRegistrationPoints()); capabilityId.getScope(), rp)); CapabilityScope capContext = capabilityId.getScope(); knownContexts.add(capContext);
|| !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), capabilityId.getScope().getName());
|| !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), capabilityId.getScope().getName());