diff --git a/synapse/handlers/__init__.py b/synapse/handlers/__init__.py
index 60e31b68ff..e1fc9a58ad 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 4bdb0aef84..9ebfccc8bf 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 812abe22b1..43d8e0bf39 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 6d01b68bd4..785a087452 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)
|