All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.reactivecommons.async.rabbit.config.props.NotificationProps Maven / Gradle / Ivy

package org.reactivecommons.async.rabbit.config.props;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.reactivecommons.async.commons.utils.NameGenerator;

import java.util.concurrent.atomic.AtomicReference;

@Getter
@RequiredArgsConstructor
public class NotificationProps {

    private final AtomicReference queueName = new AtomicReference<>();
    private final String queueSuffix = "notification";

    public String getQueueName(String applicationName) {
        final String name = this.queueName.get();
        if(name == null) return getGeneratedName(applicationName);
        return name;
    }

    private String getGeneratedName(String applicationName) {
        String generatedName = NameGenerator.generateNameFrom(applicationName, queueSuffix);
        return this.queueName
                .compareAndSet(null, generatedName) ?
                generatedName : this.queueName.get();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy