@Override public void registerTransformers(SubsystemTransformerRegistration subsystemRegistration) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.addChildResource(CmpSubsystemModel.UUID_KEY_GENERATOR_PATH).getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, AbstractKeyGeneratorResourceDefinition.JNDI_NAME) .setDiscard(DiscardAttributeChecker.UNDEFINED, AbstractKeyGeneratorResourceDefinition.JNDI_NAME) .end(); builder.addChildResource(CmpSubsystemModel.HILO_KEY_GENERATOR_PATH).getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, AbstractKeyGeneratorResourceDefinition.JNDI_NAME) .setDiscard(DiscardAttributeChecker.UNDEFINED, AbstractKeyGeneratorResourceDefinition.JNDI_NAME) .end(); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, ModelVersion.create(1, 0, 0)); } }
@Override public void registerTransformers(SubsystemTransformerRegistration subsystem) { final ModelVersion v1_0_0 = ModelVersion.create(1, 0, 0); //EAP 6.2.0 final ModelVersion v1_1_0 = ModelVersion.create(1, 1, 0); final ModelVersion v3_0_0 = ModelVersion.create(3, 0, 0); ChainedTransformationDescriptionBuilder chainedBuilder = TransformationDescriptionBuilder.Factory.createChainedSubystemInstance(subsystem.getCurrentSubsystemVersion()); ResourceTransformationDescriptionBuilder builder_3_0 = chainedBuilder.createBuilder(subsystem.getCurrentSubsystemVersion(), v3_0_0); builder11.rejectChildResource(PathElement.pathElement(EESubsystemModel.CONTEXT_SERVICE)); builder11.rejectChildResource(PathElement.pathElement(EESubsystemModel.MANAGED_THREAD_FACTORY)); builder11.rejectChildResource(PathElement.pathElement(EESubsystemModel.MANAGED_EXECUTOR_SERVICE)); builder11.rejectChildResource(PathElement.pathElement(EESubsystemModel.MANAGED_SCHEDULED_EXECUTOR_SERVICE)); builder11.discardChildResource(EESubsystemModel.DEFAULT_BINDINGS_PATH); builder.getAttributeBuilder() .addRejectCheck(globalModulesRejecterConverter, GlobalModulesDefinition.INSTANCE) .setValueConverter(globalModulesRejecterConverter, GlobalModulesDefinition.INSTANCE) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EeSubsystemRootResource.ANNOTATION_PROPERTY_REPLACEMENT) .addRejectCheck(RejectAttributeChecker.DEFINED, EeSubsystemRootResource.ANNOTATION_PROPERTY_REPLACEMENT);
private void registerTransformers_1_3_0(SubsystemTransformerRegistration subsystemRegistration) { ResourceTransformationDescriptionBuilder builder = ResourceTransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.rejectChildResource(PathElement.pathElement(Constants.ELYTRON_REALM)); builder.rejectChildResource(PathElement.pathElement(Constants.ELYTRON_KEY_STORE)); builder.rejectChildResource(PathElement.pathElement(Constants.ELYTRON_TRUST_STORE)); builder.rejectChildResource(PathElement.pathElement(Constants.ELYTRON_KEY_MANAGER)); builder.rejectChildResource(PathElement.pathElement(Constants.ELYTRON_TRUST_MANAGER)); builder.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(INITIALIZE_JACC.getDefaultValue()), INITIALIZE_JACC) .addRejectCheck(RejectAttributeChecker.DEFINED, INITIALIZE_JACC); builder .addChildResource(SecurityExtension.SECURITY_DOMAIN_PATH) .addChildResource(SecurityExtension.PATH_AUDIT_CLASSIC) .addChildResource(PATH_PROVIDER_MODULE) .getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(ModuleName.PICKETBOX.getName())), MODULE) .addRejectCheck(RejectAttributeChecker.DEFINED, MODULE).end(); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, ModelVersion.create(1, 3, 0)); } }
public static Map<PathAddress, ModelVersion> resolveVersions(final ModelNode subsystems) { final PathAddress base = PathAddress.EMPTY_ADDRESS; final Map<PathAddress, ModelVersion> versions = new HashMap<PathAddress, ModelVersion>(); for(final Property property : subsystems.asPropertyList()) { final String name = property.getName(); final PathAddress address = base.append(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, name)); versions.put(address, ModelVersion.fromString(property.getValue().asString())); } return versions; }
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; }
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()); } }
@Override public void registerTransformers(SubsystemTransformerRegistration subsystem) { ModelVersion version1_0_0 = ModelVersion.create(1, 0, 0); ModelVersion version3_0_0 = ModelVersion.create(3, 0, 0); .createChainedSubystemInstance(subsystem.getCurrentSubsystemVersion()); builder300.getAttributeBuilder().setDiscard(DiscardAttributeChecker.UNDEFINED, WeldResourceDefinition.THREAD_POOL_SIZE_ATTRIBUTE) .addRejectCheck(RejectAttributeChecker.DEFINED, WeldResourceDefinition.THREAD_POOL_SIZE_ATTRIBUTE).end(); builder100.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(false, false, new ModelNode(true)), WeldResourceDefinition.NON_PORTABLE_MODE_ATTRIBUTE, WeldResourceDefinition.REQUIRE_BEAN_DESCRIPTOR_ATTRIBUTE) .addRejectCheck(new RejectAttributeChecker.DefaultRejectAttributeChecker() {
public UserResourceDefinition() { super(PathElement.pathElement(ModelDescriptionConstants.USER), ControllerResolver.getDeprecatedResolver(SecurityRealmResourceDefinition.DEPRECATED_PARENT_CATEGORY, "core.management.security-realm.authentication.xml.user"), UserAddHandler.INSTANCE, UserRemoveHandler.INSTANCE, OperationEntry.Flag.RESTART_NONE, OperationEntry.Flag.RESTART_NONE); setDeprecated(ModelVersion.create(1, 7)); }
@Override protected boolean rejectAttribute(PathAddress address, String attributeName, ModelNode attributeValue, TransformationContext context) { if (attributeValue.isDefined()) { ModelVersion version = context.getTarget().getVersion(); if (version.getMajor() == 1 && version.getMinor() == 2) { //7.1.2 has model version 1.2.0 and should have this transformation //7.1.3 has model version 1.3.0 and should not have this transformation if (attributeValue.getType() == ModelType.BOOLEAN) { return !attributeValue.asBoolean(); } else { if (!Boolean.parseBoolean(attributeValue.asString())) { return true; } } } } return false; } }, EeSubsystemRootResource.JBOSS_DESCRIPTOR_PROPERTY_REPLACEMENT);
/** * Create the transformers. This will remotely resolve the subsystem versions. * * @param extensions the extensions * @throws OperationFailedException */ private void processSubsystems(final Transformers transformers, final ModelNode extensions) throws OperationFailedException { this.transformers = transformers; final ModelNode subsystems = executeBlocking(new IOTask<ModelNode>() { @Override void sendMessage(FlushableDataOutput output) throws IOException { sendResponse(output, DomainControllerProtocol.PARAM_OK, extensions); } }); if(failed) { throw new OperationFailedException(new ModelNode("failed to setup transformers")); } final TransformationTarget target = transformers.getTarget(); for(final Property subsystem : subsystems.asPropertyList()) { final String subsystemName = subsystem.getName(); final ModelNode version = subsystem.getValue(); target.addSubsystemVersion(subsystemName, ModelVersion.fromString(version.asString())); } }
private void registerTransformers(SubsystemRegistration subsystem) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); ResourceTransformationDescriptionBuilder sessionBuilder = builder.addChildResource(MAIL_SESSION_PATH); sessionBuilder.addChildResource(PathElement.pathElement(SERVER_TYPE)) .getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, TLS) .setDiscard(DiscardAttributeChecker.UNDEFINED, TLS) .end(); sessionBuilder.discardChildResource(CUSTOM_SERVER_PATH); TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 1, 0)); }
private static SimpleAttributeDefinition createWorkerAttribute(String name, Attribute attribute, int defaultValue) { return SimpleAttributeDefinitionBuilder.create(name, ModelType.INT, true) .setDefaultValue(new ModelNode().set(defaultValue)) .setAlternatives(SERVER_ATTR_NAMES) .setXmlName(attribute.getLocalName()) .setValidator(new IntRangeValidator(1)) .setAllowExpression(true) .setDeprecated(ModelVersion.create(2,0)) .build(); }
/** * Create the transformers. This will remotely resolve the subsystem versions. * * @param extensions the extensions * @throws OperationFailedException */ private void processSubsystems(final Transformers transformers, final ModelNode extensions) throws OperationFailedException { this.transformers = transformers; final ModelNode subsystems = executeBlocking(new IOTask<ModelNode>() { @Override void sendMessage(FlushableDataOutput output) throws IOException { sendResponse(output, DomainControllerProtocol.PARAM_OK, extensions); } }); if(failed) { throw new OperationFailedException("failed to setup transformers"); } final TransformationTarget target = transformers.getTarget(); for(final Property subsystem : subsystems.asPropertyList()) { final String subsystemName = subsystem.getName(); final ModelNode version = subsystem.getValue(); target.addSubsystemVersion(subsystemName, ModelVersion.fromString(version.asString())); } }
/** * Register the transformers for the 1.3.0 version. * * @param subsystem the subsystems registration */ protected static void registerTransformers(final SubsystemRegistration subsystem) { ChainedTransformationDescriptionBuilder chained = ResourceTransformationDescriptionBuilder.Factory.createChainedSubystemInstance(CURRENT_MODEL_VERSION); ModelVersion MODEL_VERSION_EAP64 = ModelVersion.create(1, 4, 0); ModelVersion MODEL_VERSION_EAP63 = ModelVersion.create(1, 3, 0);//also EAP6.2 ResourceTransformationDescriptionBuilder builder64 = chained.createBuilder(CURRENT_MODEL_VERSION, MODEL_VERSION_EAP64); builder64.getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID.getDefaultValue()), JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID) .setValueConverter(new AttributeConverter.DefaultValueAttributeConverter(JacORBSubsystemDefinitions.INTEROP_CHUNK_RMI_VALUETYPES),JacORBSubsystemDefinitions.INTEROP_CHUNK_RMI_VALUETYPES); ResourceTransformationDescriptionBuilder builder63 = chained.createBuilder(MODEL_VERSION_EAP64, MODEL_VERSION_EAP63); builder63.getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, IORTransportConfigDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0])) .addRejectCheck(RejectAttributeChecker.DEFINED, IORASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0])) .addRejectCheck(RejectAttributeChecker.DEFINED, IORSASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0])) .end() .rejectChildResource(IORSettingsDefinition.INSTANCE.getPathElement()); chained.buildAndRegister(subsystem, new ModelVersion[]{ MODEL_VERSION_EAP64, MODEL_VERSION_EAP63 }); }
private void registerTransformers_1_0_0(final SubsystemRegistration subsystemRegistration) { final ModelVersion version = ModelVersion.create(1, 0, 0); ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.addChildResource(PathElement.pathElement(ModelConstants.CONFIGURATION)) .getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, ConfigurationResource.ENTRIES) .end() .addOperationTransformationOverride(ModelConstants.UPDATE) .setCustomOperationTransformer(new OperationTransformer() { @Override TransformationDescription.Tools.register(builder.build(), subsystemRegistration, version);
private void registerTransformers1_0_0(SubsystemRegistration registration) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); rejectDefinedCoreMBeansSensitivity(builder); builder.setCustomResourceTransformer(new ResourceTransformer() { @Override public void transformResource(ResourceTransformationContext context, PathAddress address, Resource resource) builder.rejectChildResource(PathElement.pathElement(CommonAttributes.EXPOSE_MODEL, CommonAttributes.EXPRESSION)); ResourceTransformationDescriptionBuilder resolvedBuilder = builder.addChildResource(PathElement.pathElement(CommonAttributes.EXPOSE_MODEL, CommonAttributes.RESOLVED)); resolvedBuilder.getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, CommonAttributes.DOMAIN_NAME, CommonAttributes.PROPER_PROPERTY_FORMAT) .addRejectCheck(new RejectAttributeChecker.DefaultRejectAttributeChecker() { @Override public String getRejectionLogMessage(Map<String, ModelNode> attributes) { TransformationDescription.Tools.register(builder.build(), registration, ModelVersion.create(1, 0, 0));
@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 registerTransformers_1_0(ExtensionContext context, SubsystemRegistration subsystemRegistration) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); ResourceTransformationDescriptionBuilder federationTransfDescBuilder = builder .addChildResource(new FederationResourceDefinition(context)); ResourceTransformationDescriptionBuilder keyStoreTransfDescBuilder = federationTransfDescBuilder .addChildResource(KeyStoreProviderResourceDefinition.INSTANCE); keyStoreTransfDescBuilder.rejectChildResource(KeyResourceDefinition.INSTANCE.getPathElement()); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, ModelVersion.create(1, 0)); }
static void registerTransformers(SubsystemRegistration subsystem) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); JcaWorkManagerDefinition.registerTransformers110(builder); TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 1, 0)); } }
SingletonModel(int major, int minor, int micro) { this.version = ModelVersion.create(major, minor, micro); }