Record Class MetadataDiscoveryBrokerEndpointBinding

java.lang.Object
java.lang.Record
io.kroxylicious.proxy.internal.net.MetadataDiscoveryBrokerEndpointBinding
Record Components:
endpointGateway - the endpoint gateway
nodeId - kafka nodeId of the target broker
All Implemented Interfaces:
EndpointBinding, NodeSpecificEndpointBinding

public record MetadataDiscoveryBrokerEndpointBinding(EndpointGateway endpointGateway, Integer nodeId) extends Record implements NodeSpecificEndpointBinding
A bootstrap binding which can only be used for metadata discovery.

Its role is to allow the proxy to bind known ports without knowing the full upstream topology. Once the upstream topology is discovered this should be replaced with a BrokerEndpointBinding for the same nodeId

  • Constructor Details

    • MetadataDiscoveryBrokerEndpointBinding

      public MetadataDiscoveryBrokerEndpointBinding(EndpointGateway endpointGateway, Integer nodeId)
      Creates an instance of a MetadataDiscoveryBrokerEndpointBinding record class.
      Parameters:
      endpointGateway - the value for the endpointGateway record component
      nodeId - the value for the nodeId record component
  • Method Details

    • upstreamTarget

      public HostPort upstreamTarget()
      Description copied from interface: EndpointBinding
      The upstream target of this binding.
      Specified by:
      upstreamTarget in interface EndpointBinding
      Returns:
      upstream target.
    • restrictUpstreamToMetadataDiscovery

      public boolean restrictUpstreamToMetadataDiscovery()
      Description copied from interface: EndpointBinding
      If set true, the upstream target must only be used for metadata discovery.
      Specified by:
      restrictUpstreamToMetadataDiscovery in interface EndpointBinding
      Returns:
      true if the target must be restricted to metadata discovery.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • endpointGateway

      public EndpointGateway endpointGateway()
      Returns the value of the endpointGateway record component.
      Specified by:
      endpointGateway in interface EndpointBinding
      Returns:
      the value of the endpointGateway record component
    • nodeId

      public Integer nodeId()
      Returns the value of the nodeId record component.
      Specified by:
      nodeId in interface EndpointBinding
      Specified by:
      nodeId in interface NodeSpecificEndpointBinding
      Returns:
      the value of the nodeId record component