diff --git a/synapse/handlers/__init__.py b/synapse/handlers/__init__.py index 60e31b68f..e1fc9a58a 100644 --- a/synapse/handlers/__init__.py +++ b/synapse/handlers/__init__.py @@ -28,7 +28,6 @@ from .directory import DirectoryHandler from .typing import TypingNotificationHandler from .admin import AdminHandler from .appservice import ApplicationServicesHandler -from .sync import SyncHandler from .auth import AuthHandler from .identity import IdentityHandler from .receipts import ReceiptsHandler @@ -65,7 +64,6 @@ class Handlers(object): as_api=asapi ) ) - self.sync_handler = SyncHandler(hs) self.auth_handler = AuthHandler(hs) self.identity_handler = IdentityHandler(hs) self.search_handler = SearchHandler(hs) diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 4bdb0aef8..9ebfccc8b 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -13,8 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from ._base import BaseHandler - from synapse.streams.config import PaginationConfig from synapse.api.constants import Membership, EventTypes from synapse.util.async import concurrently_execute @@ -133,10 +131,12 @@ class SyncResult(collections.namedtuple("SyncResult", [ ) -class SyncHandler(BaseHandler): +class SyncHandler(object): def __init__(self, hs): - super(SyncHandler, self).__init__(hs) + self.store = hs.get_datastore() + self.notifier = hs.get_notifier() + self.presence_handler = hs.get_presence_handler() self.event_sources = hs.get_event_sources() self.clock = hs.get_clock() self.response_cache = ResponseCache() @@ -639,7 +639,7 @@ class SyncHandler(BaseHandler): # For each newly joined room, we want to send down presence of # existing users. - presence_handler = self.hs.get_presence_handler() + presence_handler = self.presence_handler extra_presence_users = set() for room_id in newly_joined_rooms: users = yield self.store.get_users_in_room(event.room_id) diff --git a/synapse/rest/client/v2_alpha/sync.py b/synapse/rest/client/v2_alpha/sync.py index 812abe22b..43d8e0bf3 100644 --- a/synapse/rest/client/v2_alpha/sync.py +++ b/synapse/rest/client/v2_alpha/sync.py @@ -79,8 +79,7 @@ class SyncRestServlet(RestServlet): def __init__(self, hs): super(SyncRestServlet, self).__init__() self.auth = hs.get_auth() - self.event_stream_handler = hs.get_handlers().event_stream_handler - self.sync_handler = hs.get_handlers().sync_handler + self.sync_handler = hs.get_sync_handler() self.clock = hs.get_clock() self.filtering = hs.get_filtering() self.presence_handler = hs.get_presence_handler() diff --git a/synapse/server.py b/synapse/server.py index 6d01b68bd..785a08745 100644 --- a/synapse/server.py +++ b/synapse/server.py @@ -28,6 +28,7 @@ from synapse.notifier import Notifier from synapse.api.auth import Auth from synapse.handlers import Handlers from synapse.handlers.presence import PresenceHandler +from synapse.handlers.sync import SyncHandler from synapse.state import StateHandler from synapse.storage import DataStore from synapse.util import Clock @@ -80,6 +81,7 @@ class HomeServer(object): 'rest_servlet_factory', 'state_handler', 'presence_handler', + 'sync_handler', 'notifier', 'distributor', 'client_resource', @@ -169,6 +171,9 @@ class HomeServer(object): def build_presence_handler(self): return PresenceHandler(self) + def build_sync_handler(self): + return SyncHandler(self) + def build_event_sources(self): return EventSources(self)