/*
 * Copyright (c) 2011-2016 The original author or authors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *      The Eclipse Public License is available at
 *      http://www.eclipse.org/legal/epl-v10.html
 *
 *      The Apache License v2.0 is available at
 *      http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */

package io.vertx.servicediscovery;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;
import io.vertx.servicediscovery.spi.ServiceDiscoveryBackend;

Options to configure the service discovery.
Author:Clement Escoffier
/** * Options to configure the service discovery. * * @author <a href="http://escoffier.me">Clement Escoffier</a> */
@DataObject(generateConverter = true) public class ServiceDiscoveryOptions { public static final String DEFAULT_ANNOUNCE_ADDRESS = "vertx.discovery.announce"; public static final String DEFAULT_USAGE_ADDRESS = "vertx.discovery.usage"; private static final boolean DEFAULT_AUTO_REGISTRATION_IMPORTERS = true; private String announceAddress = DEFAULT_ANNOUNCE_ADDRESS; private JsonObject backendConfiguration = new JsonObject(); private String name = null; private String usageAddress = DEFAULT_USAGE_ADDRESS; private boolean autoRegistrationOfImporters = DEFAULT_AUTO_REGISTRATION_IMPORTERS;
Creates a new instance of ServiceDiscoveryOptions using the default values.
/** * Creates a new instance of {@link ServiceDiscoveryOptions} using the default values. */
public ServiceDiscoveryOptions() { // Empty constructor. }
Creates a new instance of ServiceDiscoveryOptions by copying the values from another instance.
Params:
  • other – the instance to copy
/** * Creates a new instance of {@link ServiceDiscoveryOptions} by copying the values from another instance. * * @param other the instance to copy */
public ServiceDiscoveryOptions(ServiceDiscoveryOptions other) { this.announceAddress = other.announceAddress; this.backendConfiguration = other.backendConfiguration.copy(); this.name = other.name; this.usageAddress = other.usageAddress; this.autoRegistrationOfImporters = other.autoRegistrationOfImporters; }
Creates a new instance of ServiceDiscoveryOptions from its JSON representation.
Params:
  • json – the json object
/** * Creates a new instance of {@link ServiceDiscoveryOptions} from its JSON representation. * * @param json the json object */
public ServiceDiscoveryOptions(JsonObject json) { this(); ServiceDiscoveryOptionsConverter.fromJson(json, this); }
Builds the JSON representation for the current ServiceDiscoveryOptions.
Returns:the json representation
/** * Builds the JSON representation for the current {@link ServiceDiscoveryOptions}. * * @return the json representation */
public JsonObject toJson() { JsonObject json = new JsonObject(); ServiceDiscoveryOptionsConverter.toJson(this, json); return json; }
Returns:the event bus address on which the service arrivals, departures and modifications are announced. This address must be consistent in the whole application.
/** * @return the event bus address on which the service arrivals, departures and modifications are announced. This * address must be consistent in the whole application. */
public String getAnnounceAddress() { return announceAddress; }
Sets the event bus address on which the service arrivals, departures and modifications are announced. This address must be consistent in the whole application.
Params:
  • announceAddress – the address, must not be null
Returns:the current ServiceDiscoveryOptions
/** * Sets the event bus address on which the service arrivals, departures and modifications are announced. This * address must be consistent in the whole application. * * @param announceAddress the address, must not be {@code null} * @return the current {@link ServiceDiscoveryOptions} */
public ServiceDiscoveryOptions setAnnounceAddress(String announceAddress) { this.announceAddress = announceAddress; return this; }
Returns:the backend configuration. Cannot be null.
/** * @return the backend configuration. Cannot be {@code null}. */
public JsonObject getBackendConfiguration() { return backendConfiguration; }
Sets the configuration passed to the ServiceDiscoveryBackend. Refer to the backend documentation to get more details on the requirements. The default backend does not need any configuration.
Params:
  • backendConfiguration – the backend configuration
Returns:the current ServiceDiscoveryOptions
/** * Sets the configuration passed to the {@link ServiceDiscoveryBackend}. * Refer to the backend documentation to get more details on the requirements. The default backend * does not need any configuration. * * @param backendConfiguration the backend configuration * @return the current {@link ServiceDiscoveryOptions} */
public ServiceDiscoveryOptions setBackendConfiguration(JsonObject backendConfiguration) { if (backendConfiguration == null) { this.backendConfiguration = new JsonObject(); } else { this.backendConfiguration = backendConfiguration; } return this; }
Sets the service discovery name used in the service usage events. If not set, the node id is used.
Params:
  • name – the name to use.
Returns:the current ServiceDiscoveryOptions
/** * Sets the service discovery name used in the service usage events. * If not set, the node id is used. * * @param name the name to use. * @return the current {@link ServiceDiscoveryOptions} */
public ServiceDiscoveryOptions setName(String name) { this.name = name; return this; }
Gets the service discovery name used in service usage events. If not set the node id is used.
Returns:the name
/** * Gets the service discovery name used in service usage events. If not set the node id is used. * * @return the name */
public String getName() { return name; }
Returns:the event bus address on which are sent the service usage events (bind / release).
/** * @return the event bus address on which are sent the service usage events (bind / release). */
public String getUsageAddress() { return usageAddress; }
Sets the usage address: the event bus address on which are sent the service usage events (bind / release).
Params:
  • usageAddress – the address, null to disable use service usage tracking
Returns:the current ServiceDiscoveryOptions
/** * Sets the usage address: the event bus address on which are sent the service usage events (bind / release). * * @param usageAddress the address, {@link null} to disable use service usage tracking * @return the current {@link ServiceDiscoveryOptions} */
public ServiceDiscoveryOptions setUsageAddress(String usageAddress) { this.usageAddress = usageAddress; return this; }
Returns:whether or not the registration of importers declared as SPI is enabled.
/** * @return whether or not the registration of importers declared as SPI is enabled. */
public boolean isAutoRegistrationOfImporters() { return autoRegistrationOfImporters; }
Sets whether or not the registration of importers declared as SPI is enabled.
Params:
  • autoRegistrationOfImporters – true to enable the importation, false otherwise
Returns:the current ServiceDiscoveryOptions
/** * Sets whether or not the registration of importers declared as SPI is enabled. * @param autoRegistrationOfImporters {@code true} to enable the importation, {@code false} otherwise * @return the current {@link ServiceDiscoveryOptions} */
public ServiceDiscoveryOptions setAutoRegistrationOfImporters(boolean autoRegistrationOfImporters) { this.autoRegistrationOfImporters = autoRegistrationOfImporters; return this; } }