Skip to content

Commit

Permalink
Merge pull request wildfly#17910 from pferraro/WFLY-18857
Browse files Browse the repository at this point in the history
WFLY-18857 Replace wildfly clustering modules with versions from wildfly-clustering
  • Loading branch information
bstansberry authored Sep 12, 2024
2 parents fdaa375 + 0e7c8e8 commit e0ba6fe
Show file tree
Hide file tree
Showing 2,143 changed files with 21,601 additions and 75,982 deletions.
864 changes: 77 additions & 787 deletions boms/common-ee/pom.xml

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions boms/standard-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,15 @@
<version>${version.jsoup}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${version.org.junit}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions boms/user/ee/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,10 @@
<artifactId>hibernate-jpamodelgen</artifactId>
</dependency>
<!-- include ispn -->
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-commons-jakarta</artifactId>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core-jakarta</artifactId>
Expand Down
14 changes: 3 additions & 11 deletions clustering/common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@
</dependency>

<!-- Internal dependencies -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wildfly-clustering-context</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wildfly-clustering-service</artifactId>
Expand All @@ -66,16 +62,12 @@
<artifactId>jboss-msc</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-controller</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-network</artifactId>
<groupId>org.wildfly.clustering</groupId>
<artifactId>wildfly-clustering-context</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-server</artifactId>
<artifactId>wildfly-subsystem</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.security</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,72 +5,59 @@

package org.jboss.as.clustering.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;

import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.as.server.Services;
import org.jboss.dmr.ModelNode;
import org.jboss.modules.Module;
import org.jboss.modules.ModuleLoadException;
import org.jboss.modules.ModuleLoader;
import org.jboss.msc.Service;
import org.jboss.msc.service.ServiceBuilder;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.ServiceTarget;
import org.wildfly.clustering.service.FunctionalService;
import org.wildfly.clustering.service.ServiceConfigurator;
import org.wildfly.clustering.service.ServiceSupplierDependency;
import org.wildfly.clustering.service.SimpleServiceNameProvider;
import org.wildfly.clustering.service.SupplierDependency;
import org.wildfly.subsystem.resource.ResourceModelResolver;
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;

/**
* @author Paul Ferraro
*/
public abstract class AbstractModulesServiceConfigurator<T> extends SimpleServiceNameProvider implements ResourceServiceConfigurator, Supplier<List<Module>>, Function<List<Module>, T> {
public abstract class AbstractModulesServiceConfigurator<T> implements ResourceServiceConfigurator, Function<List<Module>, T> {

private final Attribute attribute;
private final SupplierDependency<ModuleLoader> loader = new ServiceSupplierDependency<>(Services.JBOSS_SERVICE_MODULE_LOADER);
private final Function<ModelNode, List<ModelNode>> toList;
private final RuntimeCapability<Void> capability;
private final ResourceModelResolver<List<String>> resolver;

private volatile List<ModelNode> identifiers = Collections.emptyList();

AbstractModulesServiceConfigurator(ServiceName name, Attribute attribute, Function<ModelNode, List<ModelNode>> toList) {
super(name);
this.attribute = attribute;
this.toList = toList;
}

@Override
public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException {
this.identifiers = this.toList.apply(this.attribute.resolveModelAttribute(context, model));
return this;
AbstractModulesServiceConfigurator(RuntimeCapability<Void> capability, ResourceModelResolver<List<String>> resolver) {
this.capability = capability;
this.resolver = resolver;
}

@Override
public ServiceBuilder<?> build(ServiceTarget target) {
ServiceBuilder<?> builder = target.addService(this.getServiceName());
Consumer<T> modules = this.loader.register(builder).provides(this.getServiceName());
Service service = new FunctionalService<>(modules, this, this);
return builder.setInstance(service);
}
public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException {
List<String> moduleIdentifiers = this.resolver.resolve(context, model);
ServiceDependency<ModuleLoader> loader = ServiceDependency.on(Services.JBOSS_SERVICE_MODULE_LOADER);
Supplier<List<Module>> modules = new Supplier<>() {
@Override
public List<Module> get() {
return moduleIdentifiers.stream().map(this::load).collect(Collectors.toUnmodifiableList());
}

@Override
public List<Module> get() {
List<ModelNode> identifiers = this.identifiers;
List<Module> modules = !identifiers.isEmpty() ? new ArrayList<>(identifiers.size()) : Collections.emptyList();
for (ModelNode identifier : identifiers) {
try {
modules.add(this.loader.get().loadModule(identifier.asString()));
} catch (ModuleLoadException e) {
throw new IllegalArgumentException(e);
private Module load(String identifier) {
try {
return loader.get().loadModule(identifier);
} catch (ModuleLoadException e) {
throw new IllegalArgumentException(e);
}
}
}
return modules;
};
return CapabilityServiceInstaller.builder(this.capability, this, modules)
.requires(loader)
.asPassive()
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.SimpleOperationDefinitionBuilder;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.as.controller.descriptions.DefaultResourceAddDescriptionProvider;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.logging.ControllerLogger;
Expand Down Expand Up @@ -219,9 +220,10 @@ protected void recordCapabilitiesAndRequirements(OperationContext context, Model
ModelNode model = resource.getModel();
// The super implementation assumes that the capability name is a simple extension of the base name - we do not.
// Only register capabilities when allowed by the associated predicate
for (Map.Entry<Capability, Predicate<ModelNode>> entry : this.descriptor.getCapabilities().entrySet()) {
for (Map.Entry<RuntimeCapability<?>, Predicate<ModelNode>> entry : this.descriptor.getCapabilities().entrySet()) {
if (entry.getValue().test(model)) {
context.registerCapability(entry.getKey().resolve(address));
RuntimeCapability<?> capability = entry.getKey();
context.registerCapability(capability.isDynamicallyNamed() ? capability.fromBaseCapability(address) : capability);
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@

package org.jboss.as.clustering.controller;

import javax.management.MBeanServer;

import org.jboss.as.controller.services.path.PathManager;
import org.jboss.as.naming.NamingStore;
import org.jboss.as.naming.service.NamingService;
Expand All @@ -17,11 +15,12 @@
/**
* Enumerates common requirements for clustering resources.
* @author Paul Ferraro
* @deprecated Superseded by {@link CommonServiceDescriptor}.
*/
@Deprecated(forRemoval = true)
public enum CommonRequirement implements Requirement, ServiceNameFactoryProvider {
ELYTRON("org.wildfly.security.elytron", Void.class),
LOCAL_TRANSACTION_PROVIDER("org.wildfly.transactions.global-default-local-provider", Void.class),
MBEAN_SERVER("org.wildfly.management.jmx", MBeanServer.class),
MBEAN_SERVER(CommonServiceDescriptor.MBEAN_SERVER),
NAMING_STORE(NamingService.CAPABILITY_NAME, NamingStore.class),
PATH_MANAGER(PathManager.SERVICE_DESCRIPTOR),
SOCKET_BINDING_MANAGER(SocketBindingManager.SERVICE_DESCRIPTOR),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/

package org.jboss.as.clustering.controller;

import java.security.KeyStore;

import javax.management.MBeanServer;
import javax.net.ssl.SSLContext;
import javax.sql.DataSource;

import org.wildfly.security.credential.store.CredentialStore;
import org.wildfly.service.descriptor.NullaryServiceDescriptor;
import org.wildfly.service.descriptor.UnaryServiceDescriptor;

/**
* Service descriptors for clustering dependencies whose providing modules do not yet expose their provided capabilities via descriptor.
* @author Paul Ferraro
*/
public interface CommonServiceDescriptor {
NullaryServiceDescriptor<MBeanServer> MBEAN_SERVER = NullaryServiceDescriptor.of("org.wildfly.management.jmx", MBeanServer.class);

UnaryServiceDescriptor<DataSource> DATA_SOURCE = UnaryServiceDescriptor.of("org.wildfly.data-source", DataSource.class);

UnaryServiceDescriptor<CredentialStore> CREDENTIAL_STORE = UnaryServiceDescriptor.of("org.wildfly.security.credential-store", CredentialStore.class);
UnaryServiceDescriptor<KeyStore> KEY_STORE = UnaryServiceDescriptor.of("org.wildfly.security.key-store", KeyStore.class);
UnaryServiceDescriptor<SSLContext> SSL_CONTEXT = UnaryServiceDescriptor.of("org.wildfly.security.ssl-context", SSLContext.class);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,26 @@

package org.jboss.as.clustering.controller;

import java.security.KeyStore;

import javax.net.ssl.SSLContext;
import javax.sql.DataSource;

import org.jboss.as.controller.services.path.PathManager;
import org.jboss.as.network.OutboundSocketBinding;
import org.jboss.as.network.SocketBinding;
import org.wildfly.clustering.service.UnaryRequirement;
import org.wildfly.security.credential.store.CredentialStore;
import org.wildfly.service.descriptor.UnaryServiceDescriptor;

/**
* Enumerates common unary requirements for clustering resources
* @author Paul Ferraro
* @deprecated Superseded by {@link CommonServiceDescriptor}.
*/
@Deprecated(forRemoval = true)
public enum CommonUnaryRequirement implements UnaryRequirement, UnaryServiceNameFactoryProvider {
CREDENTIAL_STORE("org.wildfly.security.credential-store", CredentialStore.class),
DATA_SOURCE("org.wildfly.data-source", DataSource.class),
KEY_STORE("org.wildfly.security.key-store", KeyStore.class),
CREDENTIAL_STORE(CommonServiceDescriptor.CREDENTIAL_STORE),
DATA_SOURCE(CommonServiceDescriptor.DATA_SOURCE),
KEY_STORE(CommonServiceDescriptor.KEY_STORE),
OUTBOUND_SOCKET_BINDING(OutboundSocketBinding.SERVICE_DESCRIPTOR),
PATH(PathManager.PATH_SERVICE_DESCRIPTOR),
SOCKET_BINDING(SocketBinding.SERVICE_DESCRIPTOR),
SSL_CONTEXT("org.wildfly.security.ssl-context", SSLContext.class),
SSL_CONTEXT(CommonServiceDescriptor.SSL_CONTEXT),
;
private final String name;
private final Class<?> type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.jboss.as.controller.ObjectTypeAttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.RequirementServiceBuilder;
import org.jboss.as.controller.security.CredentialReference;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.DelegatingServiceBuilder;
Expand All @@ -23,12 +24,15 @@
import org.wildfly.clustering.service.SupplierDependency;
import org.wildfly.common.function.ExceptionSupplier;
import org.wildfly.security.credential.source.CredentialSource;
import org.wildfly.subsystem.service.ServiceDependency;

/**
* @author Paul Ferraro
* @author <a href="mailto:[email protected]">Richard Opalka</a>
* @deprecated Replaced by {@link CredentialReference#getCredentialSourceDependency(OperationContext, AttributeDefinition, ModelNode)}.
*/
public class CredentialSourceDependency implements SupplierDependency<CredentialSource> {
@Deprecated
public class CredentialSourceDependency implements SupplierDependency<CredentialSource>, ServiceDependency<CredentialSource> {

private final ExceptionSupplier<CredentialSource, Exception> supplier;
private final Iterable<Dependency> dependencies;
Expand All @@ -47,6 +51,11 @@ public <T> ServiceBuilder<T> register(ServiceBuilder<T> builder) {
return builder;
}

@Override
public void accept(RequirementServiceBuilder<?> builder) {
this.register(builder);
}

@Override
public CredentialSource get() {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,30 @@

package org.jboss.as.clustering.controller;

import java.util.Collections;
import java.util.List;

import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.dmr.ModelNode;
import org.jboss.modules.Module;
import org.jboss.msc.service.ServiceName;
import org.wildfly.subsystem.resource.ResourceModelResolver;

/**
* Configures a service providing a {@link Module}.
* @author Paul Ferraro
*/
public class ModuleServiceConfigurator extends AbstractModulesServiceConfigurator<Module> {

public ModuleServiceConfigurator(ServiceName name, Attribute attribute) {
super(name, attribute, Collections::singletonList);
public ModuleServiceConfigurator(RuntimeCapability<Void> capability, AttributeDefinition attribute) {
super(capability, new ResourceModelResolver<>() {
@Override
public List<String> resolve(OperationContext context, ModelNode model) throws OperationFailedException {
String module = attribute.resolveModelAttribute(context, model).asStringOrNull();
return (module != null) ? List.of(module) : List.of();
}
});
}

@Override
Expand Down
Loading

0 comments on commit e0ba6fe

Please sign in to comment.