Listens to local services and decides which to expose. It can also add properties to change the way services are exposed. For the services to be exported it calls RemoteServiceAdmin.exportService to do the actual export. Then notifies EndpointListeners about the new Endpoint. Listens for service requests from consumers and creates EndpointListeners for these interests.
The TopologyManager by default exposes all suitably marked local services for export and imports all service interests with matching remote Endpoints.
This behaviour can be customized by exposing a service implementing the ExportPolicy interface. It can be used to implement system wide governance rules.
Some examples what could be done:
According to its role the TopologyManager does not directly implement the enhancements above. It simply enhances the service properties and creates the necessary calls to a suitable RemoteServiceAdmin.