static void registerTransformers11x(ResourceTransformationDescriptionBuilder parentBuilder) { parentBuilder.addChildResource(PATH_CONNECTION_PROPERTY) .getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.UNDEFINED, Constants.CONNECTION_PROPERTY_VALUE) .end(); }
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)); } }
static TransformationDescription get120TransformationDescription(ResourceTransformationDescriptionBuilder parentBuilder) { ResourceTransformationDescriptionBuilder builder = parentBuilder.addChildResource(PATH_DATASOURCE); builder.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(true)), org.jboss.as.connector.subsystems.common.pool.Constants.POOL_FAIR) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), CONNECTABLE) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(false, false, new ModelNode(true)), STATISTICS_ENABLED) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(ENLISTMENT_TRACE.getDefaultValue()), ENLISTMENT_TRACE) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(LEGACY_MCP)), MCP) .end() .addOperationTransformationOverride(DATASOURCE_ENABLE.getName()) .end() .addOperationTransformationOverride(DATASOURCE_DISABLE.getName()) .end(); builder = parentBuilder.addChildResource(PATH_XA_DATASOURCE); builder.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), CONNECTABLE) .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(false, false, new ModelNode(true)), STATISTICS_ENABLED) .end() .addOperationTransformationOverride(DATASOURCE_ENABLE.getName()) .end() .addOperationTransformationOverride(DATASOURCE_DISABLE.getName()) .end(); return parentBuilder.build();
private static void registerTransformers_4_0_0(SubsystemTransformerRegistration subsystemRegistration) { final ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); registerApplicationSecurityDomainDTransformers(builder); registerIdentityTransformers(builder); builder.addChildResource(RemotingProfileResourceDefinition.INSTANCE).getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, StaticEJBDiscoveryDefinition.INSTANCE) .end(); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN); // Rename new statistics-enabled attribute to old enable-statistics builder.getAttributeBuilder() .addRename(EJB3SubsystemModel.STATISTICS_ENABLED, EJB3SubsystemModel.ENABLE_STATISTICS); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, VERSION_4_0_0); }
@SuppressWarnings("deprecation") static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder parent) { ResourceTransformationDescriptionBuilder builder = InfinispanModel.VERSION_4_0_0.requiresTransformation(version) ? parent.addChildRedirection(PATH, LEGACY_PATH, RequiredChildResourceDiscardPolicy.NEVER) : InfinispanModel.VERSION_6_0_0.requiresTransformation(version) ? parent.addChildRedirection(PATH, EVICTION_PATH, RequiredChildResourceDiscardPolicy.NEVER) : parent.addChildResource(PATH); if (InfinispanModel.VERSION_6_0_0.requiresTransformation(version)) { builder.getAttributeBuilder() .addRename(Attribute.SIZE.getDefinition(), DeprecatedAttribute.MAX_ENTRIES.getName()) .setValueConverter(new SimpleAttributeConverter((address, name, value, model, context) -> { // Set legacy eviction strategy to NONE if size is negative, otherwise set to LRU if (model.hasDefined(Attribute.SIZE.getName()) && (model.get(Attribute.SIZE.getName()).asLong() < 0)) { value.set(EvictionStrategy.NONE.name()); } else { value.set(EvictionStrategy.LRU.name()); } }), DeprecatedAttribute.STRATEGY.getDefinition()) .end(); } if (InfinispanModel.VERSION_4_0_0.requiresTransformation(version)) { builder.getAttributeBuilder().setValueConverter(new SimpleAttributeConverter((address, name, value, model, context) -> { if (value.isDefined()) { value.set(value.asInt()); } }), Attribute.SIZE.getDefinition(), DeprecatedAttribute.MAX_ENTRIES.getDefinition()); } }
@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);
static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder builder) { if (InfinispanModel.VERSION_6_0_0.requiresTransformation(version)) { Converter converter = (PathAddress address, String name, ModelNode value, ModelNode model, TransformationContext context) -> { PathAddress storeAddress = address.getParent(); PathElement storePath = storeAddress.getLastElement(); if (storePath.equals(StringKeyedJDBCStoreResourceDefinition.STRING_JDBC_PATH) || storePath.equals(StringKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(StringKeyedJDBCStoreResourceDefinition.PATH); } else if (storePath.equals(BinaryKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(BinaryKeyedJDBCStoreResourceDefinition.PATH); } else if (storePath.equals(MixedKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(MixedKeyedJDBCStoreResourceDefinition.PATH); } ModelNode store = context.readResourceFromRoot(storeAddress).getModel(); value.set(store.hasDefined(StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getName()) ? store.get(StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getName()) : StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getDefinition().getDefaultValue()); }; builder.getAttributeBuilder().setValueConverter(new SimpleAttributeConverter(converter), DeprecatedAttribute.BATCH_SIZE.getDefinition()); } }
@SuppressWarnings("deprecation") private static void registerPassivationStoreTransformers_1_2_1_and_1_3_0(ResourceTransformationDescriptionBuilder parent) { ResourceTransformationDescriptionBuilder child = parent.addChildRedirection(PassivationStoreResourceDefinition.INSTANCE.getPathElement(), PathElement.pathElement(EJB3SubsystemModel.CLUSTER_PASSIVATION_STORE)); child.getAttributeBuilder() .setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode(true), true), EJB3SubsystemModel.PASSIVATE_EVENTS_ON_REPLICATE) .setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode("default"), true), EJB3SubsystemModel.CLIENT_MAPPINGS_CACHE) .setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode().set(Long.valueOf(Integer.MAX_VALUE)), true), EJB3SubsystemModel.IDLE_TIMEOUT) .setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode().set(TimeUnit.SECONDS.name()), true), EJB3SubsystemModel.IDLE_TIMEOUT_UNIT) ; }
private static void registerTransformers_3_0_0(SubsystemTransformerRegistration subsystemRegistration) { final ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.getAttributeBuilder().setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode("hornetq-ra"), true), EJB3SubsystemRootResourceDefinition.DEFAULT_RESOURCE_ADAPTER_NAME) .end(); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN); registerMdbDeliveryGroupTransformers(builder); registerRemoteTransformers(builder); registerStrictMaxPoolTransformers(builder); registerApplicationSecurityDomainDTransformers(builder); registerIdentityTransformers(builder); // Rename new statistics-enabled attribute to old enable-statistics builder.getAttributeBuilder().addRename(EJB3SubsystemModel.STATISTICS_ENABLED, EJB3SubsystemModel.ENABLE_STATISTICS); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, VERSION_3_0_0); }
builder.setCustomResourceTransformer(statefulCacheRefTransformer); builder.addOperationTransformationOverride(name) .inheritResourceAttributeDefinitions() .setCustomOperationTransformer(statefulCacheRefTransformer) builder.addOperationTransformationOverride(ADD) .inheritResourceAttributeDefinitions() .setCustomOperationTransformer(new AddStatefulCacheRefTransformer()) builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(true)), EJB3SubsystemRootResourceDefinition.LOG_EJB_EXCEPTIONS); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.LOG_EJB_EXCEPTIONS); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.DISABLE_DEFAULT_EJB_PERMISSIONS); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.DISABLE_DEFAULT_EJB_PERMISSIONS); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ALLOW_EJB_NAME_REGEX); builder.getAttributeBuilder().setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN) .addRejectCheck(RejectAttributeChecker.DEFINED, EJB3SubsystemRootResourceDefinition.ENABLE_GRACEFUL_TXN_SHUTDOWN); registerApplicationSecurityDomainDTransformers(builder); registerIdentityTransformers(builder); builder.rejectChildResource(PathElement.pathElement(EJB3SubsystemModel.REMOTING_PROFILE)); if (version.equals(VERSION_1_2_1)) { registerTimerTransformers_1_2_0(builder); } else if (version.equals(VERSION_1_3_0)) {
/** * 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 }); }
@Override public void registerTransformers(SubsystemTransformerRegistration subsystemRegistration) { ChainedTransformationDescriptionBuilder chainedBuilder = TransformationDescriptionBuilder.Factory.createChainedSubystemInstance(CURRENT_MODEL_VERSION); builderEap71.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(MAXIMUM_TIMEOUT.getDefaultValue()), MAXIMUM_TIMEOUT) .addRejectCheck(RejectAttributeChecker.DEFINED, MAXIMUM_TIMEOUT) .end(); builderEap70.getAttributeBuilder() .setValueConverter(new AttributeConverter.DefaultValueAttributeConverter(OBJECT_STORE_RELATIVE_TO), OBJECT_STORE_RELATIVE_TO) .end(); builderEap70.addChildResource(TransactionExtension.LOG_STORE_PATH) .addChildResource(TransactionExtension.TRANSACTION_PATH) .addChildResource(TransactionExtension.PARTICIPANT_PATH) .addOperationTransformationOverride("delete") .setReject(); builderEap64.getAttributeBuilder() .addRename(TransactionSubsystemRootResourceDefinition.USE_JOURNAL_STORE, CommonAttributes.USE_HORNETQ_STORE) .addRename(TransactionSubsystemRootResourceDefinition.JOURNAL_STORE_ENABLE_ASYNC_IO, CommonAttributes.HORNETQ_STORE_ENABLE_ASYNC_IO) builderEap63.rejectChildResource(CMResourceResourceDefinition.PATH_CM_RESOURCE);
static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder builder) { if (InfinispanModel.VERSION_6_0_0.requiresTransformation(version)) { builder.getAttributeBuilder() .setValueConverter(AttributeConverter.Factory.createHardCoded(new ModelNode(Mode.SYNC.name())), DeprecatedAttribute.MODE.getDefinition()) .end(); } if (InfinispanModel.VERSION_5_0_0.requiresTransformation(version)) { builder.getAttributeBuilder() .setValueConverter(new DefaultValueAttributeConverter(Attribute.REMOTE_TIMEOUT.getDefinition()), Attribute.REMOTE_TIMEOUT.getDefinition()) .end(); } CacheResourceDefinition.buildTransformation(version, builder); }
private static void registerProfileTransformers(TransformerRegistry registry) { //Do NOT use chained transformers for the profile. The placeholder registry takes precedence over the actual //transformer registry, which means we would not get subsystem transformation //Registering for all previous WF versions (as well as the required EAP ones) isn't strictly necessary, //but it is very handy for testing the 'clone' behaviour final KernelAPIVersion[] PRE_PROFILE_CLONE_VERSIONS = new KernelAPIVersion[]{VERSION_3_0, VERSION_2_1, VERSION_2_0, VERSION_1_8, VERSION_1_7}; for (KernelAPIVersion version : PRE_PROFILE_CLONE_VERSIONS) { ResourceTransformationDescriptionBuilder builder = ResourceTransformationDescriptionBuilder.Factory.createInstance(ProfileResourceDefinition.PATH); builder.getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.DEFINED, ProfileResourceDefinition.INCLUDES) .setDiscard(DiscardAttributeChecker.UNDEFINED, ProfileResourceDefinition.INCLUDES) .end(); builder.addOperationTransformationOverride(ModelDescriptionConstants.CLONE) .setCustomOperationTransformer(ProfileCloneOperationTransformer.INSTANCE); TransformersSubRegistration domain = registry.getDomainRegistration(version.modelVersion); TransformationDescription.Tools.register(builder.build(), domain); } }
@SuppressWarnings("deprecation") static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder parent) { ResourceTransformationDescriptionBuilder builder = ModClusterModel.VERSION_6_0_0.requiresTransformation(version) ? parent.addChildRedirection(WILDCARD_PATH, new PathAddressTransformer.BasicPathAddressTransformer(LEGACY_PATH), new ProxyConfigurationDynamicDiscardPolicy()) : parent.addChildResource(WILDCARD_PATH); builder.discardChildResource(SimpleLoadProviderResourceDefinition.PATH); builder.setCustomResourceTransformer(new ResourceTransformer() { @Override public void transformResource(ResourceTransformationContext context, PathAddress address, Resource resource) throws OperationFailedException { builder.getAttributeBuilder() .addRename(Attribute.LISTENER.getDefinition(), DeprecatedAttribute.CONNECTOR.getName()) .end(); builder.getAttributeBuilder() .setDiscard(DiscardAttributeChecker.UNDEFINED, Attribute.SSL_CONTEXT.getDefinition()) .addRejectCheck(RejectAttributeChecker.DEFINED, Attribute.SSL_CONTEXT.getDefinition()) .end(); builder.getAttributeBuilder() .setValueConverter(new AttributeConverter.DefaultAttributeConverter() { @Override builder.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(Attribute.STATUS_INTERVAL.getDefinition().getDefaultValue()), Attribute.STATUS_INTERVAL.getDefinition()) .addRejectCheck(new RejectAttributeChecker.SimpleAcceptAttributeChecker(Attribute.STATUS_INTERVAL.getDefinition().getDefaultValue()), Attribute.STATUS_INTERVAL.getDefinition())
static void registerTransformers120(TransformersSubRegistration parent) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createInstance(PathResourceDefinition.PATH_ADDRESS) .getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, PathResourceDefinition.PATH) .setValueConverter(AttributeConverter.NAME_FROM_ADDRESS, ModelDescriptionConstants.NAME) .end() .addOperationTransformationOverride(ADD) .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, PathResourceDefinition.PATH) .end(); TransformationDescription.Tools.register(builder.build(), parent); } }
private void registerTransformers1_1_0(SubsystemRegistration registration) { ModelVersion version = ModelVersion.create(1, 1, 0); ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, Attributes.SUBSYSTEM_ATTRIBUTES).end(); builder.rejectChildResource(CLIENT_CONFIG_PATH); ResourceTransformationDescriptionBuilder endpoint = builder.addChildResource(ENDPOINT_CONFIG_PATH); endpoint.addChildResource(PRE_HANDLER_CHAIN_PATH).getAttributeBuilder().addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, Attributes.PROTOCOL_BINDINGS).end(); endpoint.addChildResource(POST_HANDLER_CHAIN_PATH).getAttributeBuilder().addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, Attributes.PROTOCOL_BINDINGS).end(); TransformationDescription.Tools.register(builder.build(), registration, version); } }
private static void registerDataStoreTransformers(ResourceTransformationDescriptionBuilder timerService) { DataStoreTransformer dataStoreTransformer = new DataStoreTransformer(); timerService.getAttributeBuilder() .setDiscard(DiscardAttributeChecker.ALWAYS, EJB3SubsystemModel.DEFAULT_DATA_STORE)//this is ok, as default-data-store only has any sense with new model, but it is always set! .end(); timerService.discardOperations(ModelDescriptionConstants.ADD); timerService.setCustomResourceTransformer(dataStoreTransformer); timerService.rejectChildResource(EJB3SubsystemModel.DATABASE_DATA_STORE_PATH); ResourceTransformationDescriptionBuilder fileDataStore = timerService.addChildRedirection(EJB3SubsystemModel.FILE_DATA_STORE_PATH, (current, builder) -> builder.getCurrent()); fileDataStore.addOperationTransformationOverride(ModelDescriptionConstants.ADD) .inheritResourceAttributeDefinitions() .setCustomOperationTransformer(dataStoreTransformer) .end(); }
builder.getAttributeBuilder() .setDiscard(DiscardAttributeChecker.UNDEFINED, Attribute.STATISTICS_ENABLED.getDefinition()) .addRejectCheck(RejectAttributeChecker.DEFINED, Attribute.STATISTICS_ENABLED.getDefinition()) .end(); builder.getAttributeBuilder() .setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(Attribute.MODULE.getDefinition().getDefaultValue()), Attribute.MODULE.getDefinition()) .addRejectCheck(RejectAttributeChecker.DEFINED, Attribute.MODULE.getDefinition()) .setValueConverter(typeConverter, DeprecatedAttribute.TYPE.getDefinition()) .end(); builder.addRawOperationTransformationOverride(MapOperations.MAP_GET_DEFINITION.getName(), new SimpleOperationTransformer(new LegacyPropertyMapGetOperationTransformer())); builder.addOperationTransformationOverride(opName) .inheritResourceAttributeDefinitions() .setCustomOperationTransformer(new LegacyPropertyWriteOperationTransformer());
static void registerTransformerers(SubsystemRegistration subsystem) { ModelVersion subsystem110 = ModelVersion.create(1, 1); ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, CONNECTION_FACTORY_ATTRIBUTE) .end(); TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 1, 0)); } }