package org.wildfly.swarm.messaging.runtime;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.wildfly.swarm.config.messaging.activemq.Server;
import org.wildfly.swarm.messaging.EnhancedServer;
import org.wildfly.swarm.messaging.MessagingFraction;
import org.wildfly.swarm.spi.api.Customizer;
import org.wildfly.swarm.spi.runtime.annotations.Post;
/**
* Performs re-configuration of the MessagingFraction for available RemoteConnections.
*
* @author Bob McWhirter
*/
@Post
@ApplicationScoped
public class RemoteConnectionCustomizer implements Customizer {
@Inject
MessagingFraction fraction;
@Override
public void customize() {
List<Server> servers = fraction.subresources().servers();
servers.stream()
.filter(e -> e instanceof EnhancedServer)
.forEach(server -> {
((EnhancedServer) server).remoteConnections()
.forEach(connection -> {
server.remoteConnector(connection.name(), connector -> {
connector.socketBinding(connection.name());
});
server.pooledConnectionFactory(connection.name(), factory -> {
factory.connectors(connection.name());
factory.entry(connection.jndiName());
});
});
});
}
}