From 665c65a03b2987eddd22b4205893471bd9b2132d Mon Sep 17 00:00:00 2001 From: Paul Ferraro Date: Sun, 17 Nov 2024 15:36:39 +0000 Subject: [PATCH] Migrate discovery subsystem to SubsystemResourceXMLSchema. --- .../extension/discovery/main/module.xml | 1 + .../AggregateDiscoveryProviderRegistrar.java | 51 ------------------- ...ryProviderResourceDefinitionRegistrar.java | 43 ++++++++++++++++ .../discovery/DiscoveryExtension.java | 2 +- ...overyExtensionTransformerRegistration.java | 2 +- ...yProviderResourceDefinitionRegistrar.java} | 37 ++++++++++---- ...SubsystemResourceDefinitionRegistrar.java} | 16 +++--- .../discovery/DiscoverySubsystemSchema.java | 22 ++++---- ...yProviderResourceDefinitionRegistrar.java} | 25 ++++----- .../discovery/DiscoverySubsystemTestCase.java | 2 +- 10 files changed, 105 insertions(+), 96 deletions(-) delete mode 100644 discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderRegistrar.java create mode 100644 discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderResourceDefinitionRegistrar.java rename discovery/src/main/java/org/wildfly/extension/discovery/{DiscoveryProviderRegistrar.java => DiscoveryProviderResourceDefinitionRegistrar.java} (53%) rename discovery/src/main/java/org/wildfly/extension/discovery/{DiscoverySubsystemRegistrar.java => DiscoverySubsystemResourceDefinitionRegistrar.java} (66%) rename discovery/src/main/java/org/wildfly/extension/discovery/{StaticDiscoveryProviderRegistrar.java => StaticDiscoveryProviderResourceDefinitionRegistrar.java} (82%) diff --git a/core-feature-pack/common/src/main/resources/modules/system/layers/base/org/wildfly/extension/discovery/main/module.xml b/core-feature-pack/common/src/main/resources/modules/system/layers/base/org/wildfly/extension/discovery/main/module.xml index e9a2980dc58..2a9c91247e2 100644 --- a/core-feature-pack/common/src/main/resources/modules/system/layers/base/org/wildfly/extension/discovery/main/module.xml +++ b/core-feature-pack/common/src/main/resources/modules/system/layers/base/org/wildfly/extension/discovery/main/module.xml @@ -18,6 +18,7 @@ + diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderRegistrar.java b/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderRegistrar.java deleted file mode 100644 index cb4b953d96b..00000000000 --- a/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderRegistrar.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The WildFly Authors - * SPDX-License-Identifier: Apache-2.0 - */ -package org.wildfly.extension.discovery; - -import java.util.Collection; -import java.util.List; -import java.util.function.Function; - -import org.jboss.as.controller.AttributeDefinition; -import org.jboss.as.controller.OperationContext; -import org.jboss.as.controller.OperationFailedException; -import org.jboss.as.controller.PathElement; -import org.jboss.dmr.ModelNode; -import org.wildfly.discovery.impl.AggregateDiscoveryProvider; -import org.wildfly.discovery.spi.DiscoveryProvider; -import org.wildfly.subsystem.resource.ResourceDescriptor; -import org.wildfly.subsystem.resource.capability.CapabilityReference; -import org.wildfly.subsystem.resource.capability.CapabilityReferenceListAttributeDefinition; -import org.wildfly.subsystem.service.ResourceServiceInstaller; -import org.wildfly.subsystem.service.ServiceDependency; -import org.wildfly.subsystem.service.capability.CapabilityServiceInstaller; - -/** - * Registers the aggregate discovery provider resource definition. - * @author Paul Ferraro - */ -public class AggregateDiscoveryProviderRegistrar extends DiscoveryProviderRegistrar { - - static final PathElement PATH = PathElement.pathElement("aggregate-provider"); - - private static final CapabilityReferenceListAttributeDefinition PROVIDER_NAMES = new CapabilityReferenceListAttributeDefinition.Builder<>("providers", CapabilityReference.builder(DISCOVERY_PROVIDER_CAPABILITY, DISCOVERY_PROVIDER_DESCRIPTOR).build()).build(); - - static final Collection ATTRIBUTES = List.of(PROVIDER_NAMES); - - AggregateDiscoveryProviderRegistrar() { - super(PATH, ResourceDescriptor.builder(DiscoverySubsystemRegistrar.RESOLVER.createChildResolver(PATH)).addAttributes(ATTRIBUTES)); - } - - @Override - public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException { - ServiceDependency provider = PROVIDER_NAMES.resolve(context, model).map(new Function<>() { - @Override - public DiscoveryProvider apply(List providers) { - return new AggregateDiscoveryProvider(providers.toArray(DiscoveryProvider[]::new)); - } - }); - return CapabilityServiceInstaller.builder(DISCOVERY_PROVIDER_CAPABILITY, provider).build(); - } -} diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderResourceDefinitionRegistrar.java b/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderResourceDefinitionRegistrar.java new file mode 100644 index 00000000000..4dfba0fdeb1 --- /dev/null +++ b/discovery/src/main/java/org/wildfly/extension/discovery/AggregateDiscoveryProviderResourceDefinitionRegistrar.java @@ -0,0 +1,43 @@ +/* + * Copyright The WildFly Authors + * SPDX-License-Identifier: Apache-2.0 + */ +package org.wildfly.extension.discovery; + +import java.util.List; +import java.util.function.Function; + +import org.jboss.as.controller.OperationContext; +import org.jboss.as.controller.OperationFailedException; +import org.jboss.as.controller.PathElement; +import org.jboss.as.controller.ResourceRegistration; +import org.jboss.dmr.ModelNode; +import org.wildfly.discovery.impl.AggregateDiscoveryProvider; +import org.wildfly.discovery.spi.DiscoveryProvider; +import org.wildfly.subsystem.resource.capability.CapabilityReference; +import org.wildfly.subsystem.resource.capability.CapabilityReferenceListAttributeDefinition; +import org.wildfly.subsystem.service.ServiceDependency; + +/** + * Registers the aggregate discovery provider resource definition. + * @author Paul Ferraro + */ +public class AggregateDiscoveryProviderResourceDefinitionRegistrar extends DiscoveryProviderResourceDefinitionRegistrar { + + static final ResourceRegistration REGISTRATION = ResourceRegistration.of(PathElement.pathElement("aggregate-provider")); + static final CapabilityReferenceListAttributeDefinition PROVIDER_NAMES = new CapabilityReferenceListAttributeDefinition.Builder<>("providers", CapabilityReference.builder(DiscoveryProviderResourceDefinitionRegistrar.DISCOVERY_PROVIDER_CAPABILITY, DiscoveryProviderResourceDefinitionRegistrar.DISCOVERY_PROVIDER_DESCRIPTOR).build()).build(); + + AggregateDiscoveryProviderResourceDefinitionRegistrar() { + super(REGISTRATION, List.of(PROVIDER_NAMES)); + } + + @Override + public ServiceDependency resolve(OperationContext context, ModelNode model) throws OperationFailedException { + return PROVIDER_NAMES.resolve(context, model).map(new Function<>() { + @Override + public DiscoveryProvider apply(List providers) { + return new AggregateDiscoveryProvider(providers.toArray(DiscoveryProvider[]::new)); + } + }); + } +} diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtension.java b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtension.java index 5763fc74bed..5a12b8e23a8 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtension.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtension.java @@ -17,6 +17,6 @@ public class DiscoveryExtension extends SubsystemExtension { public DiscoveryExtension() { - super(SubsystemConfiguration.of(DiscoverySubsystemRegistrar.NAME, DiscoverySubsystemModel.CURRENT, DiscoverySubsystemRegistrar::new), SubsystemPersistence.of(DiscoverySubsystemSchema.CURRENT)); + super(SubsystemConfiguration.of(DiscoverySubsystemResourceDefinitionRegistrar.REGISTRATION, DiscoverySubsystemModel.CURRENT, DiscoverySubsystemResourceDefinitionRegistrar::new), SubsystemPersistence.of(DiscoverySubsystemSchema.CURRENT)); } } diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtensionTransformerRegistration.java b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtensionTransformerRegistration.java index 35cd52d521c..9adeffb40eb 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtensionTransformerRegistration.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryExtensionTransformerRegistration.java @@ -14,6 +14,6 @@ public class DiscoveryExtensionTransformerRegistration extends SubsystemExtensionTransformerRegistration { public DiscoveryExtensionTransformerRegistration() { - super(DiscoverySubsystemRegistrar.NAME, DiscoverySubsystemModel.CURRENT, DiscoverySubsystemTransformationDescriptionFactory.INSTANCE); + super(DiscoverySubsystemResourceDefinitionRegistrar.REGISTRATION, DiscoverySubsystemModel.CURRENT, DiscoverySubsystemTransformationDescriptionFactory.INSTANCE); } } diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderRegistrar.java b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderResourceDefinitionRegistrar.java similarity index 53% rename from discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderRegistrar.java rename to discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderResourceDefinitionRegistrar.java index 5507d98384a..91f4fc54a42 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderRegistrar.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoveryProviderResourceDefinitionRegistrar.java @@ -4,47 +4,64 @@ */ package org.wildfly.extension.discovery; -import org.jboss.as.controller.PathElement; +import java.util.Collection; + +import org.jboss.as.controller.AttributeDefinition; +import org.jboss.as.controller.OperationContext; +import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.ResourceDefinition; import org.jboss.as.controller.ResourceRegistration; import org.jboss.as.controller.capability.RuntimeCapability; import org.jboss.as.controller.registry.ManagementResourceRegistration; +import org.jboss.dmr.ModelNode; import org.wildfly.discovery.spi.DiscoveryProvider; import org.wildfly.service.descriptor.UnaryServiceDescriptor; import org.wildfly.subsystem.resource.ChildResourceDefinitionRegistrar; import org.wildfly.subsystem.resource.ManagementResourceRegistrar; import org.wildfly.subsystem.resource.ManagementResourceRegistrationContext; import org.wildfly.subsystem.resource.ResourceDescriptor; +import org.wildfly.subsystem.resource.ResourceModelResolver; import org.wildfly.subsystem.resource.operation.ResourceOperationRuntimeHandler; import org.wildfly.subsystem.service.ResourceServiceConfigurator; +import org.wildfly.subsystem.service.ResourceServiceInstaller; +import org.wildfly.subsystem.service.ServiceDependency; +import org.wildfly.subsystem.service.capability.CapabilityServiceInstaller; /** * Abstract registrar for a discovery provider resource definition. * @author Paul Ferraro */ -public abstract class DiscoveryProviderRegistrar implements ChildResourceDefinitionRegistrar, ResourceServiceConfigurator { +public abstract class DiscoveryProviderResourceDefinitionRegistrar implements ChildResourceDefinitionRegistrar, ResourceServiceConfigurator, ResourceModelResolver> { // TODO Move this to an SPI module, when this capability acquires any consumers static final UnaryServiceDescriptor DISCOVERY_PROVIDER_DESCRIPTOR = UnaryServiceDescriptor.of("org.wildfly.discovery.provider", DiscoveryProvider.class); static final RuntimeCapability DISCOVERY_PROVIDER_CAPABILITY = RuntimeCapability.Builder.of(DISCOVERY_PROVIDER_DESCRIPTOR).setAllowMultipleRegistrations(true).build(); private final ResourceRegistration registration; - private final ResourceDescriptor descriptor; + private final Collection attributes; - DiscoveryProviderRegistrar(PathElement path, ResourceDescriptor.Builder builder) { - this.registration = ResourceRegistration.of(path); - this.descriptor = builder.addCapability(DISCOVERY_PROVIDER_CAPABILITY) - .withRuntimeHandler(ResourceOperationRuntimeHandler.configureService(this)) - .build(); + DiscoveryProviderResourceDefinitionRegistrar(ResourceRegistration registration, Collection attributes) { + this.registration = registration; + this.attributes = attributes; } @Override public ManagementResourceRegistration register(ManagementResourceRegistration parent, ManagementResourceRegistrationContext context) { - ResourceDefinition definition = ResourceDefinition.builder(this.registration, this.descriptor.getResourceDescriptionResolver()).build(); + ResourceDescriptor descriptor = ResourceDescriptor.builder(DiscoverySubsystemResourceDefinitionRegistrar.RESOLVER.createChildResolver(this.registration.getPathElement())) + .addAttributes(this.attributes) + .addCapability(DISCOVERY_PROVIDER_CAPABILITY) + .withRuntimeHandler(ResourceOperationRuntimeHandler.configureService(this)) + .build(); + ResourceDefinition definition = ResourceDefinition.builder(this.registration, descriptor.getResourceDescriptionResolver()).build(); ManagementResourceRegistration registration = parent.registerSubModel(definition); - ManagementResourceRegistrar.of(this.descriptor).register(registration); + ManagementResourceRegistrar.of(descriptor).register(registration); return registration; } + + @Override + public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException { + return CapabilityServiceInstaller.builder(DiscoveryProviderResourceDefinitionRegistrar.DISCOVERY_PROVIDER_CAPABILITY, this.resolve(context, model)).build(); + } } diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemRegistrar.java b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemResourceDefinitionRegistrar.java similarity index 66% rename from discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemRegistrar.java rename to discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemResourceDefinitionRegistrar.java index bd36f3ebab1..4edcbebe873 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemRegistrar.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemResourceDefinitionRegistrar.java @@ -5,10 +5,9 @@ package org.wildfly.extension.discovery; -import org.jboss.as.controller.PathElement; import org.jboss.as.controller.ResourceDefinition; -import org.jboss.as.controller.ResourceRegistration; import org.jboss.as.controller.SubsystemRegistration; +import org.jboss.as.controller.SubsystemResourceRegistration; import org.jboss.as.controller.descriptions.ParentResourceDescriptionResolver; import org.jboss.as.controller.descriptions.SubsystemResourceDescriptionResolver; import org.jboss.as.controller.registry.ManagementResourceRegistration; @@ -21,23 +20,22 @@ * Registrar for the discovery subsystem. * @author Paul Ferraro */ -class DiscoverySubsystemRegistrar implements SubsystemResourceDefinitionRegistrar { +class DiscoverySubsystemResourceDefinitionRegistrar implements SubsystemResourceDefinitionRegistrar { - static final String NAME = "discovery"; - static final PathElement PATH = SubsystemResourceDefinitionRegistrar.pathElement(NAME); - static final ParentResourceDescriptionResolver RESOLVER = new SubsystemResourceDescriptionResolver(NAME, DiscoverySubsystemRegistrar.class); + static final SubsystemResourceRegistration REGISTRATION = SubsystemResourceRegistration.of("discovery"); + static final ParentResourceDescriptionResolver RESOLVER = new SubsystemResourceDescriptionResolver(REGISTRATION.getName(), DiscoverySubsystemResourceDefinitionRegistrar.class); @Override public ManagementResourceRegistration register(SubsystemRegistration parent, ManagementResourceRegistrationContext context) { parent.setHostCapable(); - ManagementResourceRegistration registration = parent.registerSubsystemModel(ResourceDefinition.builder(ResourceRegistration.of(PATH), RESOLVER).build()); + ManagementResourceRegistration registration = parent.registerSubsystemModel(ResourceDefinition.builder(REGISTRATION, RESOLVER).build()); ResourceDescriptor descriptor = ResourceDescriptor.builder(RESOLVER).build(); ManagementResourceRegistrar.of(descriptor).register(registration); - new AggregateDiscoveryProviderRegistrar().register(registration, context); - new StaticDiscoveryProviderRegistrar().register(registration, context); + new AggregateDiscoveryProviderResourceDefinitionRegistrar().register(registration, context); + new StaticDiscoveryProviderResourceDefinitionRegistrar().register(registration, context); return registration; } diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemSchema.java b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemSchema.java index e6f939ddeaf..61eacdfeb13 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemSchema.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/DiscoverySubsystemSchema.java @@ -5,25 +5,29 @@ package org.wildfly.extension.discovery; -import org.jboss.as.controller.PersistentResourceXMLDescription; -import org.jboss.as.controller.PersistentSubsystemSchema; import org.jboss.as.controller.SubsystemSchema; +import org.jboss.as.controller.persistence.xml.ResourceXMLChoice; +import org.jboss.as.controller.persistence.xml.ResourceXMLParticleFactory; +import org.jboss.as.controller.persistence.xml.SubsystemResourceRegistrationXMLElement; +import org.jboss.as.controller.persistence.xml.SubsystemResourceXMLSchema; import org.jboss.as.controller.xml.VersionedNamespace; +import org.jboss.as.controller.xml.XMLCardinality; import org.jboss.staxmapper.IntVersion; /** * Enumeration of discovery subsystem schema versions. * @author Paul Ferraro */ -enum DiscoverySubsystemSchema implements PersistentSubsystemSchema { +enum DiscoverySubsystemSchema implements SubsystemResourceXMLSchema { VERSION_1_0(1, 0), ; static final DiscoverySubsystemSchema CURRENT = VERSION_1_0; + private final ResourceXMLParticleFactory factory = ResourceXMLParticleFactory.newInstance(this); private final VersionedNamespace namespace; DiscoverySubsystemSchema(int major, int minor) { - this.namespace = SubsystemSchema.createLegacySubsystemURN(DiscoverySubsystemRegistrar.NAME, new IntVersion(major, minor)); + this.namespace = SubsystemSchema.createLegacySubsystemURN(DiscoverySubsystemResourceDefinitionRegistrar.REGISTRATION.getName(), new IntVersion(major, minor)); } @Override @@ -32,11 +36,11 @@ public VersionedNamespace getNamespace() { } @Override - public PersistentResourceXMLDescription getXMLDescription() { - PersistentResourceXMLDescription.Factory factory = PersistentResourceXMLDescription.factory(this); - return factory.builder(DiscoverySubsystemRegistrar.PATH) - .addChild(factory.builder(StaticDiscoveryProviderRegistrar.PATH).addAttributes(StaticDiscoveryProviderRegistrar.ATTRIBUTES.stream()).build()) - .addChild(factory.builder(AggregateDiscoveryProviderRegistrar.PATH).addAttributes(AggregateDiscoveryProviderRegistrar.ATTRIBUTES.stream()).build()) + public SubsystemResourceRegistrationXMLElement getSubsystemXMLElement() { + ResourceXMLChoice providers = this.factory.choice().withCardinality(XMLCardinality.Unbounded.OPTIONAL) + .addElement(this.factory.namedElement(StaticDiscoveryProviderResourceDefinitionRegistrar.REGISTRATION).withContent(this.factory.sequence().addElement(StaticDiscoveryProviderResourceDefinitionRegistrar.SERVICES).build()).build()) + .addElement(this.factory.namedElement(AggregateDiscoveryProviderResourceDefinitionRegistrar.REGISTRATION).addAttribute(AggregateDiscoveryProviderResourceDefinitionRegistrar.PROVIDER_NAMES).build()) .build(); + return this.factory.subsystemElement(DiscoverySubsystemResourceDefinitionRegistrar.REGISTRATION).withContent(providers).build(); } } diff --git a/discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderRegistrar.java b/discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderResourceDefinitionRegistrar.java similarity index 82% rename from discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderRegistrar.java rename to discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderResourceDefinitionRegistrar.java index f61b795d90a..62ab9c75a00 100644 --- a/discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderRegistrar.java +++ b/discovery/src/main/java/org/wildfly/extension/discovery/StaticDiscoveryProviderResourceDefinitionRegistrar.java @@ -6,10 +6,8 @@ package org.wildfly.extension.discovery; import java.util.ArrayList; -import java.util.Collection; import java.util.List; -import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.AttributeMarshaller; import org.jboss.as.controller.AttributeParser; import org.jboss.as.controller.ObjectListAttributeDefinition; @@ -17,6 +15,7 @@ import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.PathElement; +import org.jboss.as.controller.ResourceRegistration; import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; import org.jboss.as.controller.descriptions.ModelDescriptionConstants; @@ -26,16 +25,16 @@ import org.wildfly.discovery.AttributeValue; import org.wildfly.discovery.ServiceURL; import org.wildfly.discovery.impl.StaticDiscoveryProvider; -import org.wildfly.subsystem.resource.ResourceDescriptor; -import org.wildfly.subsystem.service.ResourceServiceInstaller; -import org.wildfly.subsystem.service.capability.CapabilityServiceInstaller; +import org.wildfly.discovery.spi.DiscoveryProvider; +import org.wildfly.subsystem.service.ServiceDependency; /** * Registers the static discovery provider resource definition. * @author Paul Ferraro */ -public class StaticDiscoveryProviderRegistrar extends DiscoveryProviderRegistrar { - static final PathElement PATH = PathElement.pathElement("static-provider"); +public class StaticDiscoveryProviderResourceDefinitionRegistrar extends DiscoveryProviderResourceDefinitionRegistrar { + + static final ResourceRegistration REGISTRATION = ResourceRegistration.of(PathElement.pathElement("static-provider")); private static final SimpleAttributeDefinition ABSTRACT_TYPE = new SimpleAttributeDefinitionBuilder("abstract-type", ModelType.STRING, true).setAllowExpression(true).build(); private static final SimpleAttributeDefinition ABSTRACT_TYPE_AUTHORITY = new SimpleAttributeDefinitionBuilder("abstract-type-authority", ModelType.STRING, true).setAllowExpression(true).build(); @@ -61,20 +60,18 @@ public class StaticDiscoveryProviderRegistrar extends DiscoveryProviderRegistrar SERVICE_ATTRIBUTES ).build(); - private static final ObjectListAttributeDefinition SERVICES = new ObjectListAttributeDefinition.Builder("services", SERVICE) + static final ObjectListAttributeDefinition SERVICES = new ObjectListAttributeDefinition.Builder("services", SERVICE) .setAttributeMarshaller(AttributeMarshaller.UNWRAPPED_OBJECT_LIST_MARSHALLER) .setAttributeParser(AttributeParser.UNWRAPPED_OBJECT_LIST_PARSER) .setFlags(Flag.RESTART_RESOURCE_SERVICES) .build(); - static final Collection ATTRIBUTES = List.of(SERVICES); - - StaticDiscoveryProviderRegistrar() { - super(PATH, ResourceDescriptor.builder(DiscoverySubsystemRegistrar.RESOLVER.createChildResolver(PATH)).addAttributes(ATTRIBUTES)); + StaticDiscoveryProviderResourceDefinitionRegistrar() { + super(REGISTRATION, List.of(SERVICES)); } @Override - public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException { + public ServiceDependency resolve(OperationContext context, ModelNode model) throws OperationFailedException { List services = SERVICES.resolveModelAttribute(context, model).asListOrEmpty(); List serviceURLs = new ArrayList<>(services.size()); for (ModelNode service : services) { @@ -105,6 +102,6 @@ public ResourceServiceInstaller configure(OperationContext context, ModelNode mo Messages.log.tracef("Adding service URL %s", serviceURL); serviceURLs.add(serviceURL); } - return CapabilityServiceInstaller.builder(DiscoveryProviderRegistrar.DISCOVERY_PROVIDER_CAPABILITY, new StaticDiscoveryProvider(serviceURLs)).build(); + return ServiceDependency.of(new StaticDiscoveryProvider(serviceURLs)); } } diff --git a/discovery/src/test/java/org/wildfly/extension/discovery/DiscoverySubsystemTestCase.java b/discovery/src/test/java/org/wildfly/extension/discovery/DiscoverySubsystemTestCase.java index 3a3e9e41cf4..5c786076b09 100644 --- a/discovery/src/test/java/org/wildfly/extension/discovery/DiscoverySubsystemTestCase.java +++ b/discovery/src/test/java/org/wildfly/extension/discovery/DiscoverySubsystemTestCase.java @@ -25,6 +25,6 @@ public static Iterable parameters() { } public DiscoverySubsystemTestCase(DiscoverySubsystemSchema schema) { - super(DiscoverySubsystemRegistrar.NAME, new DiscoveryExtension(), schema, DiscoverySubsystemSchema.CURRENT); + super(DiscoverySubsystemResourceDefinitionRegistrar.REGISTRATION.getName(), new DiscoveryExtension(), schema, DiscoverySubsystemSchema.CURRENT); } }