@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)); } }
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)); } }
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); }
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); }
private static void registerTransformers_1_2_1_and_1_3_0(SubsystemTransformerRegistration subsystemRegistration, ModelVersion version) { final ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); 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); .addRename(EJB3SubsystemModel.STATISTICS_ENABLED, EJB3SubsystemModel.ENABLE_STATISTICS); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, version);
static void registerTransformers120(TransformersSubRegistration parent) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createInstance(SystemPropertyResourceDefinition.PATH) .getAttributeBuilder() .addRejectCheck(RejectAttributeChecker.SIMPLE_EXPRESSIONS, SystemPropertyResourceDefinition.VALUE, SystemPropertyResourceDefinition.BOOT_TIME) .setValueConverter(new AttributeConverter.DefaultAttributeConverter(){ @Override protected void convertAttribute(PathAddress address, String attributeName, ModelNode attributeValue, TransformationContext context) { if (!attributeValue.isDefined()) { attributeValue.set(true); } } }, BOOT_TIME) .end() .addRawOperationTransformationOverride(UNDEFINE_ATTRIBUTE_OPERATION, new OperationTransformer() { @Override public TransformedOperation transformOperation(TransformationContext context, PathAddress address, ModelNode operation) throws OperationFailedException { if (operation.get(NAME).asString().equals(BOOT_TIME)) { ModelNode op = operation.clone(); op.get(OP).set(WRITE_ATTRIBUTE_OPERATION); op.get(VALUE).set(true); return new TransformedOperation(op, OperationResultTransformer.ORIGINAL_RESULT); } return OperationTransformer.DEFAULT.transformOperation(context, address, operation); } }); TransformationDescription.Tools.register(builder.build(), parent); }
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); } }
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_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));
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)); }
/** * Registers the transformers for JBoss EAP 7.0.0. * * @param subsystemRegistration contains data about the subsystem registration */ @Override public void registerTransformers(SubsystemTransformerRegistration subsystemRegistration) { ResourceTransformationDescriptionBuilder builder = ResourceTransformationDescriptionBuilder.Factory.createSubsystemInstance(); builder.addChildResource(DeploymentPermissionsResourceDefinition.DEPLOYMENT_PERMISSIONS_PATH). getAttributeBuilder().addRejectCheck(new RejectAttributeChecker.DefaultRejectAttributeChecker() { @Override protected boolean rejectAttribute(PathAddress address, String attributeName, ModelNode value, TransformationContext context) { // reject the maximum set if it is defined and empty as that would result in complete incompatible policies // being used in nodes running earlier versions of the subsystem. if (value.isDefined() && value.asList().isEmpty()) { return true; } return false; } @Override public String getRejectionLogMessage(Map<String, ModelNode> attributes) { return SecurityManagerLogger.ROOT_LOGGER.rejectedEmptyMaximumSet(); } }, DeploymentPermissionsResourceDefinition.MAXIMUM_PERMISSIONS); TransformationDescription.Tools.register(builder.build(), subsystemRegistration, EAP_7_0_0_MODEL_VERSION); } }
static void registerTransformers(SubsystemRegistration subsystem) { ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); ResourceAdapterResourceDefinition.registerTransformers(builder); TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 1, 0)); } }
private void registerTransformers(SubsystemRegistration subsystem) { // Create the transformer builder final ResourceTransformationDescriptionBuilder subsystemBuilder = TransformationDescriptionBuilder.Factory.createSubsystemInstance(); // Add reject before add the logging-profile child resource builder subsystemBuilder.rejectChildResource(LOGGING_PROFILE_PATH); ResourceTransformationDescriptionBuilder loggingProfileBuilder = TransformationDescriptionBuilder.Factory.createInstance(LOGGING_PROFILE_PATH); // Add resource transformers to the subsystem RootLoggerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); LoggerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); AsyncHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); ConsoleHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); FileHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); PeriodicHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); SizeRotatingHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); CustomHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); SyslogHandlerResourceDefinition.addTransformers(subsystemBuilder, loggingProfileBuilder); // Register the transformers TransformationDescription.Tools.register(subsystemBuilder.build(), subsystem, ModelVersion.create(1, 1, 0)); }
ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createInstance(null); builder.discardChildResource(HostExcludeResourceDefinition.PATH_ELEMENT); builder = TransformationDescriptionBuilder.Factory.createInstance(null); builder.discardChildResource(HostExcludeResourceDefinition.PATH_ELEMENT); for (KernelAPIVersion version : allOthers) { TransformersSubRegistration domain = registry.getDomainRegistration(version.modelVersion); TransformationDescription.Tools.register(builder.build(), domain);
private static void registerNonChainedTransformers(Set<KernelAPIVersion> remainder, TransformerRegistry registry, ResourceTransformationDescriptionBuilder builder, KernelAPIVersion... toRegister) { for (KernelAPIVersion version : toRegister) { remainder.remove(version); TransformersSubRegistration domain = registry.getDomainRegistration(version.modelVersion); TransformationDescription.Tools.register(builder.build(), domain); } }
@Override public void registerTransformers(SubsystemTransformerRegistration registration) { // Register transformers for all but the current model for (SingletonModel model : EnumSet.complementOf(EnumSet.of(SingletonModel.CURRENT))) { ModelVersion version = model.getVersion(); register(SingletonResourceDefinition.buildTransformers(version), registration, version); } } }
@Override public void registerTransformers(SubsystemTransformerRegistration registration) { // Register transformers for all but the current model for (JGroupsModel model : EnumSet.complementOf(EnumSet.of(JGroupsModel.CURRENT))) { ModelVersion version = model.getVersion(); register(JGroupsSubsystemResourceDefinition.buildTransformers(version), registration, version); } } }
@Override public void registerTransformers(SubsystemTransformerRegistration registration) { // Register transformers for all but the current model for (ModClusterModel modClusterModel : EnumSet.complementOf(EnumSet.of(ModClusterModel.CURRENT))) { ModelVersion version = modClusterModel.getVersion(); register(ModClusterSubsystemResourceDefinition.buildTransformation(version), registration, version); } } }
@Override public void registerTransformers(SubsystemTransformerRegistration registration) { // Register transformers for all but the current model for (InfinispanModel model : EnumSet.complementOf(EnumSet.of(InfinispanModel.CURRENT))) { ModelVersion version = model.getVersion(); register(InfinispanSubsystemResourceDefinition.buildTransformation(version), registration, version); } } }
private static TransformersSubRegistration getTransformersSubRegistration(TransformationDescription description, TransformersSubRegistration subRegistration) { for (final Map.Entry<String, OperationTransformer> entry : description.getOperationTransformers().entrySet()) { subRegistration.registerOperationTransformer(entry.getKey(), entry.getValue()); } for (final TransformationDescription child : description.getChildren()) { register(child, subRegistration); } subRegistration.discardOperations(description.getDiscardedOperations().toArray(new String[description.getDiscardedOperations().size()])); return subRegistration; }