Class BootstrapRegistryClient

java.lang.Object
org.j7m.middleware.registry.bootstrap.BootstrapRegistryClient
All Implemented Interfaces:
AutoCloseable, org.j7m.middleware.registry.api.PeerGraphRegistry, org.j7m.middleware.registry.api.RegistryClient, org.j7m.middleware.registry.api.RegistryDiagnostics

public final class BootstrapRegistryClient extends Object implements org.j7m.middleware.registry.api.RegistryClient, org.j7m.middleware.registry.api.PeerGraphRegistry, org.j7m.middleware.registry.api.RegistryDiagnostics
Bootstrap-hint registry discovery client.

The client wraps a local registry and expands through configured endpoint hints and peer statuses. All discovery is bounded by deadline, maximum depth, maximum contacted peers, maximum candidates, and cache TTL.

  • Constructor Details

    • BootstrapRegistryClient

      public BootstrapRegistryClient(org.j7m.middleware.registry.api.RegistryClient local, BootstrapRegistryOptions options)
      Creates a bootstrap registry.
      Parameters:
      local - local registry
      options - options
    • BootstrapRegistryClient

      public BootstrapRegistryClient(org.j7m.middleware.registry.api.RegistryClient local, Clock clock, BootstrapRegistryOptions options)
      Creates a bootstrap registry.
      Parameters:
      local - local registry
      clock - registry clock
      options - options
    • BootstrapRegistryClient

      public BootstrapRegistryClient(org.j7m.middleware.registry.api.RegistryClient local, Clock clock, BootstrapRegistryOptions options, org.j7m.middleware.registry.api.RegistryRecordVerifier verifier, boolean strictTrust, org.j7m.middleware.security.api.SecurityAuditSink auditSink)
      Creates a bootstrap registry with explicit received-record trust policy.
      Parameters:
      local - local registry
      clock - registry clock
      options - options
      verifier - record verifier
      strictTrust - true to reject invalid or unsigned remote records
      auditSink - optional audit sink for suspicious records
  • Method Details

    • bind

      public void bind(org.j7m.middleware.registry.api.RegistryRecord record)
      Specified by:
      bind in interface org.j7m.middleware.registry.api.RegistryClient
    • unbind

      public void unbind(org.j7m.middleware.api.ObjectRef ref)
      Specified by:
      unbind in interface org.j7m.middleware.registry.api.RegistryClient
    • lookup

      public Optional<org.j7m.middleware.registry.api.RegistryRecord> lookup(org.j7m.middleware.api.ObjectRef ref)
      Specified by:
      lookup in interface org.j7m.middleware.registry.api.RegistryClient
    • list

      public List<org.j7m.middleware.registry.api.RegistryRecord> list(org.j7m.middleware.registry.api.RegistryQuery query)
      Specified by:
      list in interface org.j7m.middleware.registry.api.RegistryClient
    • heartbeat

      public void heartbeat(org.j7m.middleware.api.ObjectRef ref, long leaseUntil)
      Specified by:
      heartbeat in interface org.j7m.middleware.registry.api.RegistryClient
    • peers

      public List<org.j7m.middleware.registry.api.RegistryPeerStatus> peers(org.j7m.middleware.registry.api.PeerQuery query)
      Specified by:
      peers in interface org.j7m.middleware.registry.api.RegistryClient
    • updatePeer

      public void updatePeer(org.j7m.middleware.registry.api.RegistryPeerStatus status)
      Specified by:
      updatePeer in interface org.j7m.middleware.registry.api.PeerGraphRegistry
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface org.j7m.middleware.registry.api.RegistryClient
    • discoveryStatistics

      public org.j7m.middleware.registry.api.DiscoveryStatistics discoveryStatistics()
      Specified by:
      discoveryStatistics in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • recentDiscoveryEvents

      public List<org.j7m.middleware.registry.api.DiscoveryEvent> recentDiscoveryEvents()
      Specified by:
      recentDiscoveryEvents in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • activeDiscoveryQuestions

      public int activeDiscoveryQuestions()
      Specified by:
      activeDiscoveryQuestions in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • lookupCacheSize

      public int lookupCacheSize()
      Specified by:
      lookupCacheSize in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • bootstrapHintCount

      public int bootstrapHintCount()
      Specified by:
      bootstrapHintCount in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • contactedBootstrapPeerCount

      public int contactedBootstrapPeerCount()
      Specified by:
      contactedBootstrapPeerCount in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • multicastListenerRunning

      public boolean multicastListenerRunning()
      Specified by:
      multicastListenerRunning in interface org.j7m.middleware.registry.api.RegistryDiagnostics
    • clearCache

      public void clearCache()
      Clears cached lookup/list results.