Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7658

[Java Broker] Improve LinkRegistry

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • qpid-java-broker-7.0.0
    • Broker-J
    • None

    Description

      Currently the AbstractVirtualHost has a Map<remoteContainerId, LinkRegistry>.

      The handling of the remoteContainerId should also be encapsulated in the LinkRegistry giving each VH only a single LinkRegistry.
      The LinkRegistry is responsible for ensuring Link uniqueness and persistence (separate JIRA).

      Furthermore, the following change to the LinkRegistry is proposed:

      • LinkRegistry.getSendvingLink(String remoteContrainerId, String linkName) -> Link
      • LinkRegistry.getReceivingLink(String remoteContrainerId, String linkName) -> Link
        These should always return a non-null Link. The caller (session) is responsible for checking that the link has valid Source and Targets.
        They also need to be thread-safe (e.g., two calls with the same arguments should return the same object).

      The LinkRegistry should also provide facilities to the Link to remove itself from the Registry (for example on Link close, or error) and to update the Termini upon resuming a Link.
      If possible this should not be part of the public API. possible API:

      • LinkRegistry.removeSendingLink(String localContainerId, String remoteContrainerId, String linkName)
      • LinkRegistry.removeReceivingLink(String localContainerId, String remoteContrainerId, String linkName)
      • LinkRegistry.updateLinkTermini(Link link, Source source, Target target)

      The implementation of which must be thread-safe because the LinkRegistry will be accessed on multiple threads concurrently.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              lorenz.quack Lorenz Quack
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: