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

org.wildfly.discovery.ServiceRegistry Maven / Gradle / Ivy

Go to download

This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up with different versions on classes on the class path).

There is a newer version: 34.0.0.Final
Show newest version
/*
 * JBoss, Home of Professional Open Source.
 * Copyright 2016 Red Hat, Inc., and individual contributors
 * as indicated by the @author tags.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.wildfly.discovery;

import org.wildfly.common.Assert;
import org.wildfly.common.context.ContextManager;
import org.wildfly.common.context.Contextual;
import org.wildfly.discovery.spi.RegistryProvider;

/**
 * A configured service registry.  A service registry is able to advertise services to local or remote clients.
 * 

* Some providers only support certain types of services and will ignore others. Some providers cannot support * repeated attribute values, or may be restricted as to which attribute names are recognized, or may not support * attributes at all. Such providers generally must evaluate a service URL and determine if it can correctly * advertise it, ignoring the registration if the provider cannot. * * @author David M. Lloyd */ public final class ServiceRegistry implements Contextual { private static final ContextManager CONTEXT_MANAGER; static { CONTEXT_MANAGER = new ContextManager(ServiceRegistry.class, "org.wildfly.discovery.registration"); CONTEXT_MANAGER.setGlobalDefaultSupplier(() -> create(ConfiguredProvider.INSTANCE)); } private final RegistryProvider registryProvider; private ServiceRegistry(final RegistryProvider registryProvider) { this.registryProvider = registryProvider; } /** * Get the instance context manager. Delegates to {@link #getContextManager()}. * * @return the instance context manager (not {@code null}) */ public ContextManager getInstanceContextManager() { return getContextManager(); } /** * Get the context manager. * * @return the context manager (not {@code null}) */ public static ContextManager getContextManager() { return CONTEXT_MANAGER; } /** * Create a new service registry instance. * * @param registryProvider the backing registry provider (must not be {@code null}) * @return the new service registry (not {@code null}) */ public static ServiceRegistry create(final RegistryProvider registryProvider) { Assert.checkNotNullParam("registryProvider", registryProvider); return new ServiceRegistry(registryProvider); } /** * Register a service URL. Any valid service URL may be provided, and the registration will last until the handle * is closed. If the service URL is not supported, the {@linkplain ServiceRegistration#EMPTY empty registration handle} * is returned. * * @param serviceURL the service to register (must not be {@code null}) * @return the registration handle (not {@code null}) */ public ServiceRegistration registerService(ServiceURL serviceURL) { Assert.checkNotNullParam("serviceURL", serviceURL); return registryProvider.registerService(serviceURL); } /** * Register a group of service URLs to be controlled with a single handle. Any valid service URL may be provided, * and the registrations will last until the handle is closed. If the service URL is not supported, the * {@linkplain ServiceRegistration#EMPTY empty registration handle} is returned. * * @param serviceURLs the services to register (must not be {@code null} or contain {@code null} elements) * @return the registration handle (not {@code null}) */ public ServiceRegistration registerServices(ServiceURL... serviceURLs) { Assert.checkNotNullParam("serviceURLs", serviceURLs); final int length = serviceURLs.length; for (int i = 0; i < length; i++) { Assert.checkNotNullArrayParam("serviceURLs", i, serviceURLs[i]); } return registryProvider.registerServices(serviceURLs); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy