@Override public Integer getManagementInterfaceMajorVersion() { return version != null ? version.getMajor() : null; }
@Override public Integer getManagementInterfaceMajorVersion() { return version != null ? version.getMajor() : null; }
@Override public boolean isIgnoredResourceListAvailableAtRegistration() { return version.getMajor() >= 1 && version.getMinor() >= 4; } }
@Override public boolean isIgnoredResourceListAvailableAtRegistration() { return version.getMajor() >= 1 && version.getMinor() >= 4; }
@Override public boolean isIgnoredResourceListAvailableAtRegistration() { return version.getMajor() >= 1 && version.getMinor() >= 4; }
@Override public boolean isIgnoredResourceListAvailableAtRegistration() { return version.getMajor() >= 1 && version.getMinor() >= 4; }
private static File getDmrFile(KernelServices kernelServices, ModelVersion modelVersion, String mainSubsystemName) { File file = determineTestClassesDirectory(); for (String part : kernelServices.getTestClass().getPackage().getName().split("\\.")) { file = new File(file, part); if (!file.exists()) { file.mkdir(); } } return new File(file, mainSubsystemName + "-" + modelVersion.getMajor() + "." + modelVersion.getMinor() + "." + modelVersion.getMicro() + ".dmr"); }
private static File getDmrFile(KernelServices kernelServices, ModelVersion modelVersion, String mainSubsystemName) { File file = determineTestClassesDirectory(); for (String part : kernelServices.getTestClass().getPackage().getName().split("\\.")) { file = new File(file, part); if (!file.exists()) { file.mkdir(); } } return new File(file, mainSubsystemName + "-" + modelVersion.getMajor() + "." + modelVersion.getMinor() + "." + modelVersion.getMicro() + ".dmr"); }
private boolean isWFCORE621Needed(ModelNode operation, PathAddress address) { // We only need this for WildFly 8 and earlier (including EAP 6), // so that's proxied controllers running kernel version 1.x or 2.x if (proxyController.getKernelModelVersion().getMajor() < 3 && address.size() > 1) { String opName = operation.get(OP).asString(); if (READ_RESOURCE_OPERATION.equals(opName) || READ_ATTRIBUTE_OPERATION.equals(opName) || QUERY.equals(opName) || (READ_RESOURCE_DESCRIPTION_OPERATION.equals(opName) && address.size() >= 2)) { PathElement pe = address.getElement(1); return pe.isMultiTarget() && RUNNING_SERVER.equals(pe.getKey()); } } return false; }
@Override public ModelNode fixModel(ModelNode modelNode) { ModelNode result = transformFromVersion.getMajor() < 9 ? fixVaultConstraint(fixSensitivityConstraint(fixApplicationConstraint(modelNode))) : modelNode; if (!modelNode.hasDefined("core-service","management","access","authorization","constraint","sensitivity-classification","type", "core", "classification", "credential")) { throw new IllegalArgumentException(modelNode.toString()); } return result; }
@Override public ModelNode fixModel(ModelNode modelNode) { ModelNode result = transformFromVersion.getMajor() < 9 ? fixVaultConstraint(fixSensitivityConstraint(fixApplicationConstraint(modelNode))) : modelNode; if (!modelNode.hasDefined("core-service","management","access","authorization","constraint","sensitivity-classification","type", "core", "classification", "credential")) { throw new IllegalArgumentException(modelNode.toString()); } return result; }
private void removeDefaultAttributesWronglyShowingInRecursiveReadResource(ModelVersion modelVersion, KernelServices legacyServices, ModelNode legacyModel) { if (modelVersion.getMajor() == 1 && modelVersion.getMinor() < 4) { //Work around known problem where the recursice :read-resource on legacy controllers in ModelVersion < 1.4.0 //incorrectly does not propagate include-defaults=true when recursing //https://issues.jboss.org/browse/AS7-6077 checkAttributeIsActuallyDefinedAndReplaceIfNot(legacyServices, legacyModel, MANAGEMENT_SUBSYSTEM_ENDPOINT, SERVER_GROUP); checkAttributeIsActuallyDefinedAndReplaceIfNot(legacyServices, legacyModel, READ_ONLY, PATH); removeDefaultAttributesWronglyShowingInRecursiveReadResourceInSocketBindingGroup(modelVersion, legacyServices, legacyModel); } }
private void removeDefaultAttributesWronglyShowingInRecursiveReadResource(ModelVersion modelVersion, KernelServices legacyServices, ModelNode legacyModel) { if (modelVersion.getMajor() == 1 && modelVersion.getMinor() < 4) { //Work around known problem where the recursice :read-resource on legacy controllers in ModelVersion < 1.4.0 //incorrectly does not propagate include-defaults=true when recursing //https://issues.jboss.org/browse/AS7-6077 checkAttributeIsActuallyDefinedAndReplaceIfNot(legacyServices, legacyModel, MANAGEMENT_SUBSYSTEM_ENDPOINT, SERVER_GROUP); checkAttributeIsActuallyDefinedAndReplaceIfNot(legacyServices, legacyModel, READ_ONLY, PATH); removeDefaultAttributesWronglyShowingInRecursiveReadResourceInSocketBindingGroup(modelVersion, legacyServices, legacyModel); } }
private boolean isWFCORE621Needed(ImmutableManagementResourceRegistration registration, PathAddress remaining) { if (remaining.size() > 0) { PathElement pe = remaining.getElement(0); if (pe.isMultiTarget() && RUNNING_SERVER.equals(pe.getKey())) { // We only need this for WildFly 8 and earlier (including EAP 6), // so that's proxied controllers running kernel version 1.x or 2.x ModelVersion modelVersion = registration.getProxyController(PathAddress.EMPTY_ADDRESS).getKernelModelVersion(); return modelVersion.getMajor() < 3; } } return false; }
private boolean isWFCORE621Needed(ImmutableManagementResourceRegistration registration, PathAddress remaining) { if (remaining.size() > 0) { PathElement pe = remaining.getElement(0); if (pe.isMultiTarget() && RUNNING_SERVER.equals(pe.getKey())) { // We only need this for WildFly 8 and earlier (including EAP 6), // so that's proxied controllers running kernel version 1.x or 2.x ModelVersion modelVersion = registration.getProxyController(PathAddress.EMPTY_ADDRESS).getKernelModelVersion(); return modelVersion.getMajor() < 3; } } return false; }
private OperationTransformerRegistry getRegistryUpdater(final ModelVersion version) { int micro = version.getMicro(); for (int i = micro; i >= 0; i--) { ModelVersion currentVersion = ModelVersion.create(version.getMajor(), version.getMinor(), i); OperationTransformerRegistry current = registryUpdater.get(this, currentVersion); if (current != null) { if(micro != i && this.getClass().desiredAssertionStatus()) { ControllerLogger.MGMT_OP_LOGGER.couldNotFindTransformerRegistryFallingBack(version, currentVersion); } return current; } } return null; }
private OperationTransformerRegistry getRegistryUpdater(final ModelVersion version) { int micro = version.getMicro(); for (int i = micro; i >= 0; i--) { ModelVersion currentVersion = ModelVersion.create(version.getMajor(), version.getMinor(), i); OperationTransformerRegistry current = registryUpdater.get(this, currentVersion); if (current != null) { if(micro != i && this.getClass().desiredAssertionStatus()) { ControllerLogger.MGMT_OP_LOGGER.couldNotFindTransformerRegistryFallingBack(version, currentVersion); } return current; } } return null; }
private static DomainHostExcludeRegistry.VersionKey getVersionKey(OperationContext context, ModelNode model) throws OperationFailedException { ModelNode release = HOST_RELEASE.resolveModelAttribute(context, model); if (release.isDefined()) { KnownRelease kr = KnownRelease.fromName(release.asString()); ModelVersion modelVersion = kr.kernelAPIVersion.getModelVersion(); return new DomainHostExcludeRegistry.VersionKey(modelVersion.getMajor(), modelVersion.getMinor(), modelVersion.getMicro()); } else { int major = MANAGEMENT_MAJOR_VERSION.resolveModelAttribute(context, model).asInt(); int minor = MANAGEMENT_MINOR_VERSION.resolveModelAttribute(context, model).asInt(); ModelNode micro = MANAGEMENT_MICRO_VERSION.resolveModelAttribute(context, model); return new DomainHostExcludeRegistry.VersionKey(major, minor, micro.asIntOrNull()); } }
private static DomainHostExcludeRegistry.VersionKey getVersionKey(OperationContext context, ModelNode model) throws OperationFailedException { ModelNode release = HOST_RELEASE.resolveModelAttribute(context, model); if (release.isDefined()) { KnownRelease kr = KnownRelease.fromName(release.asString()); ModelVersion modelVersion = kr.kernelAPIVersion.getModelVersion(); return new DomainHostExcludeRegistry.VersionKey(modelVersion.getMajor(), modelVersion.getMinor(), modelVersion.getMicro()); } else { int major = MANAGEMENT_MAJOR_VERSION.resolveModelAttribute(context, model).asInt(); int minor = MANAGEMENT_MINOR_VERSION.resolveModelAttribute(context, model).asInt(); ModelNode micro = MANAGEMENT_MICRO_VERSION.resolveModelAttribute(context, model); return new DomainHostExcludeRegistry.VersionKey(major, minor, micro.asIntOrNull()); } }
/** * {@inheritDoc} */ @Override public void initialize(final ExtensionContext context) { final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, MGMT_API_VERSION.getMajor(), MGMT_API_VERSION.getMinor(), MGMT_API_VERSION.getMicro()); ManagementResourceRegistration registration = subsystem.registerSubsystemModel(KeycloakSubsystemDefinition.INSTANCE); ManagementResourceRegistration secureDeploymentRegistration = registration.registerSubModel(SecureDeploymentDefinition.INSTANCE); ManagementResourceRegistration serviceProviderRegistration = secureDeploymentRegistration.registerSubModel(ServiceProviderDefinition.INSTANCE); serviceProviderRegistration.registerSubModel(KeyDefinition.INSTANCE); ManagementResourceRegistration idpRegistration = serviceProviderRegistration.registerSubModel(IdentityProviderDefinition.INSTANCE); idpRegistration.registerSubModel(KeyDefinition.INSTANCE); subsystem.registerXMLElementWriter(PARSER); } }