@Override public ServiceName getCapabilityServiceName(String capabilityName, CapabilityScope scope, Class<?> serviceType) { // Here we can't know the dependent name. So this can only be called when resolution is complete. assert resolutionContext.resolutionComplete; readLock.lock(); try { RuntimeCapabilityRegistration reg = getCapabilityRegistration(capabilityName, scope); RuntimeCapability<?> cap = reg.getCapability(); return cap.getCapabilityServiceName(serviceType); } finally { readLock.unlock(); } }
void removeCapability(String capabilityName, Step step) { assert isControllingThread(); assertStageModel(currentStage); ensureLocalCapabilityRegistry(); CapabilityScope context = createCapabilityContext(step.address); RuntimeCapabilityRegistration capReg = managementModel.getCapabilityRegistry().removeCapability(capabilityName, context, step.address); if (capReg != null) { RuntimeCapability capability = capReg.getCapability(); for (String required : capability.getRequirements()) { removeRequirement(required, context, step); } removedCapabilities.put(capReg.getCapabilityId(), step); } }
removeReg = new RuntimeCapabilityRegistration(candidate.getCapability(), candidate.getCapabilityScope(), rp); pendingRemoveCapabilities.put(capabilityId, removeReg); } else {
void removeCapability(String capabilityName, Step step) { assert isControllingThread(); assertStageModel(currentStage); ensureLocalCapabilityRegistry(); CapabilityScope context = createCapabilityContext(step.address); RuntimeCapabilityRegistration capReg = managementModel.getCapabilityRegistry().removeCapability(capabilityName, context, step.address); if (capReg != null) { RuntimeCapability capability = capReg.getCapability(); for (String required : capability.getRequirements()) { removeRequirement(required, context, step); } removedCapabilities.put(capReg.getCapabilityId(), step); } }
removeReg = new RuntimeCapabilityRegistration(candidate.getCapability(), candidate.getCapabilityScope(), rp); pendingRemoveCapabilities.put(capabilityId, removeReg); } else {
@Override public ServiceName getCapabilityServiceName(String capabilityName, CapabilityScope scope, Class<?> serviceType) { // Here we can't know the dependent name. So this can only be called when resolution is complete. assert resolutionContext.resolutionComplete; readLock.lock(); try { RuntimeCapabilityRegistration reg = getCapabilityRegistration(capabilityName, scope); RuntimeCapability<?> cap = reg.getCapability(); return cap.getCapabilityServiceName(serviceType); } finally { readLock.unlock(); } }
if (!Objects.equals(capabilityRegistration.getCapability(), currentRegistration.getCapability()) || !currentRegistration.getCapability().isAllowMultipleRegistrations() || !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), for (String req : capabilityRegistration.getCapability().getRequirements()) { registerRequirement(new RuntimeRequirementRegistration(req, capabilityId.getName(), capabilityId.getScope(), rp));
@Override public <T> T getCapabilityRuntimeAPI(String capabilityName, CapabilityScope scope, Class<T> apiType) { // Here we can't know the dependent name. So this can only be called when resolution is complete. assert resolutionContext.resolutionComplete; readLock.lock(); try { RuntimeCapabilityRegistration reg = getCapabilityRegistration(capabilityName, scope); Object api = reg.getCapability().getRuntimeAPI(); if (api == null) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityDoesNotExposeRuntimeAPI(capabilityName); } return apiType.cast(api); } finally { readLock.unlock(); } }
if (!Objects.equals(capabilityRegistration.getCapability(), currentRegistration.getCapability()) || !currentRegistration.getCapability().isAllowMultipleRegistrations() || !currentRegistration.addRegistrationPoint(rp)) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityAlreadyRegisteredInContext(capabilityId.getName(), for (String req : capabilityRegistration.getCapability().getRequirements()) { registerRequirement(new RuntimeRequirementRegistration(req, capabilityId.getName(), capabilityId.getScope(), rp));
@Override public <T> T getCapabilityRuntimeAPI(String capabilityName, CapabilityScope scope, Class<T> apiType) { // Here we can't know the dependent name. So this can only be called when resolution is complete. assert resolutionContext.resolutionComplete; readLock.lock(); try { RuntimeCapabilityRegistration reg = getCapabilityRegistration(capabilityName, scope); Object api = reg.getCapability().getRuntimeAPI(); if (api == null) { throw ControllerLogger.MGMT_OP_LOGGER.capabilityDoesNotExposeRuntimeAPI(capabilityName); } return apiType.cast(api); } finally { readLock.unlock(); } }