Skip to content

Commit

Permalink
Migrate to CapabilityReference-based attribute definitions.
Browse files Browse the repository at this point in the history
  • Loading branch information
pferraro committed Aug 16, 2024
1 parent cd14a8a commit 6d35fcc
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*/
package org.wildfly.extension.discovery;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Supplier;
Expand All @@ -13,13 +12,12 @@
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.StringListAttributeDefinition;
import org.jboss.as.controller.registry.AttributeAccess.Flag;
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;
Expand All @@ -32,10 +30,7 @@ public class AggregateDiscoveryProviderRegistrar extends DiscoveryProviderRegist

static final PathElement PATH = PathElement.pathElement("aggregate-provider");

private static final StringListAttributeDefinition PROVIDER_NAMES = new StringListAttributeDefinition.Builder("providers")
.setCapabilityReference(CapabilityReference.builder(DISCOVERY_PROVIDER_CAPABILITY, DISCOVERY_PROVIDER_DESCRIPTOR).build())
.setFlags(Flag.RESTART_RESOURCE_SERVICES)
.build();
private static final CapabilityReferenceListAttributeDefinition<DiscoveryProvider> PROVIDER_NAMES = new CapabilityReferenceListAttributeDefinition.Builder<>("providers", CapabilityReference.builder(DISCOVERY_PROVIDER_CAPABILITY, DISCOVERY_PROVIDER_DESCRIPTOR).build()).build();

static final Collection<AttributeDefinition> ATTRIBUTES = List.of(PROVIDER_NAMES);

Expand All @@ -45,19 +40,15 @@ public class AggregateDiscoveryProviderRegistrar extends DiscoveryProviderRegist

@Override
public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException {
List<String> providers = PROVIDER_NAMES.unwrap(context, model);
List<ServiceDependency<DiscoveryProvider>> dependencies = new ArrayList<>(providers.size());
for (String provider : providers) {
dependencies.add(ServiceDependency.on(DISCOVERY_PROVIDER_DESCRIPTOR, provider));
}
List<ServiceDependency<DiscoveryProvider>> providers = PROVIDER_NAMES.resolve(context, model);
Supplier<DiscoveryProvider> factory = new Supplier<>() {
@Override
public DiscoveryProvider get() {
return new AggregateDiscoveryProvider(dependencies.stream().map(Supplier::get).toArray(DiscoveryProvider[]::new));
return new AggregateDiscoveryProvider(providers.stream().map(Supplier::get).toArray(DiscoveryProvider[]::new));
}
};
return CapabilityServiceInstaller.builder(DISCOVERY_PROVIDER_CAPABILITY, factory)
.requires(dependencies)
.requires(providers)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,31 @@
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

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.as.controller.ResourceDefinition;
import org.jboss.as.controller.ResourceRegistration;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.SubsystemRegistration;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.as.controller.descriptions.ParentResourceDescriptionResolver;
import org.jboss.as.controller.descriptions.SubsystemResourceDescriptionResolver;
import org.jboss.as.controller.registry.AttributeAccess;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import org.wildfly.common.function.Functions;
import org.wildfly.io.IOServiceDescriptor;
import org.wildfly.subsystem.resource.ManagementResourceRegistrar;
import org.wildfly.subsystem.resource.ManagementResourceRegistrationContext;
import org.wildfly.subsystem.resource.ResourceDescriptor;
import org.wildfly.subsystem.resource.SubsystemResourceDefinitionRegistrar;
import org.wildfly.subsystem.resource.capability.CapabilityReference;
import org.wildfly.subsystem.resource.capability.CapabilityReferenceAttributeDefinition;
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;
import org.xnio.XnioWorker;

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2013 Red Hat Inc.
Expand All @@ -52,10 +50,8 @@ class IOSubsystemRegistrar implements SubsystemResourceDefinitionRegistrar, Reso

static final ModelNode LEGACY_DEFAULT_WORKER = new ModelNode("default");

static final AttributeDefinition DEFAULT_WORKER = new SimpleAttributeDefinitionBuilder("default-worker", ModelType.STRING)
static final CapabilityReferenceAttributeDefinition<XnioWorker> DEFAULT_WORKER = new CapabilityReferenceAttributeDefinition.Builder<>("default-worker", CapabilityReference.builder(DEFAULT_WORKER_CAPABILITY, IOServiceDescriptor.WORKER).build())
.setRequired(false)
.setCapabilityReference(CapabilityReference.builder(DEFAULT_WORKER_CAPABILITY, IOServiceDescriptor.WORKER).build())
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
.build();

// Tracks max-threads for all workers
Expand Down

0 comments on commit 6d35fcc

Please sign in to comment.