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

org.jboss.as.clustering.naming.NamespaceContextualizerFactory Maven / Gradle / Ivy

Go to download

The code in this module is not explicitly related to clustering, but rather contains resuable code used by clustering modules and any modules that integrate with clustering.

The newest version!
/*
 * Copyright The WildFly Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package org.jboss.as.clustering.naming;

import java.util.function.Supplier;

import org.jboss.as.naming.context.NamespaceContextSelector;
import org.kohsuke.MetaInfServices;
import org.wildfly.clustering.context.Context;
import org.wildfly.clustering.context.Contextualizer;
import org.wildfly.clustering.context.ContextualizerFactory;

/**
 * @author Paul Ferraro
 */
@MetaInfServices(ContextualizerFactory.class)
public class NamespaceContextualizerFactory implements ContextualizerFactory {

    @Override
    public Contextualizer createContextualizer(ClassLoader loader) {
        NamespaceContextSelector selector = NamespaceContextSelector.getCurrentSelector();
        return (selector != null) ? Contextualizer.withContextProvider(new Supplier<>() {
            @Override
            public Context get() {
                NamespaceContextSelector.pushCurrentSelector(selector);
                return NamespaceContextSelector::popCurrentSelector;
            }
        }) : Contextualizer.NONE;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy