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

io.scalecube.services.routing.StaticAddressRouter Maven / Gradle / Ivy

package io.scalecube.services.routing;

import io.scalecube.services.Address;
import io.scalecube.services.ServiceEndpoint;
import io.scalecube.services.ServiceMethodDefinition;
import io.scalecube.services.ServiceReference;
import io.scalecube.services.ServiceRegistration;
import io.scalecube.services.api.ServiceMessage;
import io.scalecube.services.registry.api.ServiceRegistry;
import java.util.Collections;
import java.util.Optional;
import java.util.UUID;

/**
 * Syntethic router for returning pre-constructed {@link ServiceReference} instance with given
 * address.
 */
public class StaticAddressRouter implements Router {

  private final ServiceReference serviceReference;

  /**
   * Constructor.
   *
   * @param address address
   */
  public StaticAddressRouter(Address address) {
    serviceReference =
        new ServiceReference(
            new ServiceMethodDefinition(UUID.randomUUID().toString()),
            new ServiceRegistration(
                UUID.randomUUID().toString(), Collections.emptyMap(), Collections.emptyList()),
            ServiceEndpoint.builder().id(UUID.randomUUID().toString()).address(address).build());
  }

  @Override
  public Optional route(ServiceRegistry serviceRegistry, ServiceMessage request) {
    return Optional.of(serviceReference);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy