This is fine for now, but when it evolves (or at least when it migrates to XD itself), we should consider the StreamListener constructor taking only ContainerMatcher and a handle to the Cluster (for runtime retrieval of the container metadata) rather than having a direct dependency on AdminServer itself. That would avoid a cycle between AdminServer <-> StreamListener and also be more testable (e.g. passing any ContainerMatcher implementation and a mock/stub of the Cluster).