Permalink
Comparing changes
Open a pull request
- 2 commits
- 1 file changed
- 0 commit comments
- 2 contributors
Commits on Apr 12, 2019
…ures generated by Galleon The ReadFeatureDescriptionHandler is assuming that requestProperties variable is not empty to process the fixed requirements of the registrations capabilities Jira issue: https://issues.jboss.org/browse/WFCORE-4416
Commits on Apr 14, 2019
[WFCORE-4416] Some capabilities requirements are not recorded in features generated by Galleon
Unified
Split
Showing
with
43 additions
and 42 deletions.
- +43 −42 ...roller/src/main/java/org/jboss/as/controller/operations/global/ReadFeatureDescriptionHandler.java
| @@ -736,10 +736,10 @@ private void addRequiredCapabilities(ModelNode feature, | ||
| final ImmutableManagementResourceRegistration registration, | ||
| ModelNode requestProperties, CapabilityScope scope, boolean isProfile, | ||
| Set<String> capabilities, Map<String, String> featureParamMappings) { | ||
| final Map<String, ModelNode> required = new TreeMap<>(); | ||
| if (requestProperties.isDefined()) { | ||
| List<Property> request = requestProperties.asPropertyList(); | ||
| if (!request.isEmpty()) { | ||
| Map<String, ModelNode> required = new TreeMap<>(); | ||
| boolean filteredOut = false; | ||
| for (String cap : capabilities) { | ||
| if (cap.startsWith("org.wildfly.domain.server-config.")) { | ||
| @@ -784,51 +784,52 @@ private void addRequiredCapabilities(ModelNode feature, | ||
| } | ||
| } | ||
| }} | ||
| Set<CapabilityReferenceRecorder> resourceRequirements = registration.getRequirements(); | ||
| if (!resourceRequirements.isEmpty()) { | ||
| PathAddress aliasAddress = createAliasPathAddress(registration, registration.getPathAddress()); | ||
| for (CapabilityReferenceRecorder requirement : resourceRequirements) { | ||
| String[] segments = requirement.getRequirementPatternSegments(null, aliasAddress); | ||
| String[] dynamicElements; | ||
| if (segments == null || segments.length == 0) { | ||
| dynamicElements = null; | ||
| } else { | ||
| dynamicElements = new String[segments.length]; | ||
| for (int i = 0; i < segments.length; i++) { | ||
| dynamicElements[i] = "$" + segments[i]; | ||
| } | ||
| } | ||
| String baseRequirementName; | ||
| if (isProfile) { | ||
| baseRequirementName = PROFILE_PREFIX + requirement.getBaseRequirementName(); | ||
| } else { | ||
| baseRequirementName = requirement.getBaseRequirementName(); | ||
| } | ||
| ModelNode capability = new ModelNode(); | ||
| if (dynamicElements == null) { | ||
| capability.get(NAME).set(baseRequirementName); | ||
| } else { | ||
| capability.get(NAME).set(RuntimeCapability.buildDynamicCapabilityName(baseRequirementName, dynamicElements)); | ||
| } | ||
| required.put(capability.get(NAME).asString(), capability); | ||
| } | ||
| } | ||
|
|
||
| Set<CapabilityReferenceRecorder> resourceRequirements = registration.getRequirements(); | ||
| if (!resourceRequirements.isEmpty()) { | ||
| PathAddress aliasAddress = createAliasPathAddress(registration, registration.getPathAddress()); | ||
| for (CapabilityReferenceRecorder requirement : resourceRequirements) { | ||
| String[] segments = requirement.getRequirementPatternSegments(null, aliasAddress); | ||
| String[] dynamicElements; | ||
| if (segments == null || segments.length == 0) { | ||
| dynamicElements = null; | ||
| } else { | ||
| dynamicElements = new String[segments.length]; | ||
| for (int i = 0; i < segments.length; i++) { | ||
| dynamicElements[i] = "$" + segments[i]; | ||
| } | ||
| } | ||
| // WFLY-4164 record the fixed requirements of the registration's capabilities | ||
| for (RuntimeCapability<?> regCap : registration.getCapabilities()) { | ||
| for (String capReq : regCap.getRequirements()) { | ||
| if (!required.containsKey(capReq)) { | ||
| ModelNode capability = new ModelNode(); | ||
| capability.get(NAME).set(capReq); | ||
| required.put(capReq, capability); | ||
| } | ||
| } | ||
| String baseRequirementName; | ||
| if (isProfile) { | ||
| baseRequirementName = PROFILE_PREFIX + requirement.getBaseRequirementName(); | ||
| } else { | ||
| baseRequirementName = requirement.getBaseRequirementName(); | ||
| } | ||
| if (!required.isEmpty()) { | ||
| ModelNode requiresList = feature.get(REQUIRES); | ||
| for (ModelNode req : required.values()) { | ||
| requiresList.add(req); | ||
| } | ||
| ModelNode capability = new ModelNode(); | ||
| if (dynamicElements == null) { | ||
| capability.get(NAME).set(baseRequirementName); | ||
| } else { | ||
| capability.get(NAME).set(RuntimeCapability.buildDynamicCapabilityName(baseRequirementName, dynamicElements)); | ||
| } | ||
| required.put(capability.get(NAME).asString(), capability); | ||
| } | ||
| } | ||
| // WFLY-4164 record the fixed requirements of the registration's capabilities | ||
| for (RuntimeCapability<?> regCap : registration.getCapabilities()) { | ||
| for (String capReq : regCap.getRequirements()) { | ||
| if (!required.containsKey(capReq)) { | ||
| ModelNode capability = new ModelNode(); | ||
| capability.get(NAME).set(capReq); | ||
| required.put(capReq, capability); | ||
| } | ||
| } | ||
| } | ||
| if (!required.isEmpty()) { | ||
| ModelNode requiresList = feature.get(REQUIRES); | ||
| for (ModelNode req : required.values()) { | ||
| requiresList.add(req); | ||
| } | ||
| } | ||
| } | ||