diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index cd24bbdc79..fabe8ddacb 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -37,6 +37,7 @@ from synapse.api.urls import (
from synapse.config.homeserver import HomeServerConfig
from synapse.crypto import context_factory
from synapse.util.logcontext import LoggingContext
+from synapse.rest.client.v1 import ClientV1RestResource
from daemonize import Daemonize
import twisted.manhole.telnet
@@ -59,7 +60,7 @@ class SynapseHomeServer(HomeServer):
return MatrixFederationHttpClient(self)
def build_resource_for_client(self):
- return JsonResource()
+ return ClientV1RestResource(self)
def build_resource_for_federation(self):
return JsonResource()
@@ -224,8 +225,6 @@ def setup():
content_addr=config.content_addr,
)
- hs.register_servlets()
-
hs.create_resource_tree(
web_client=config.webclient,
redirect_root_to_web_client=True,
diff --git a/synapse/rest/client/v1/__init__.py b/synapse/rest/client/v1/__init__.py
index 88ec9cd27d..8bb89b2f6a 100644
--- a/synapse/rest/client/v1/__init__.py
+++ b/synapse/rest/client/v1/__init__.py
@@ -19,22 +19,18 @@ from . import (
voip, admin,
)
+from synapse.http.server import JsonResource
-class RestServletFactory(object):
- """ A factory for creating REST servlets.
-
- These REST servlets represent the entire client-server REST API. Generally
- speaking, they serve as wrappers around events and the handlers that
- process them.
-
- See synapse.events for information on synapse events.
- """
+class ClientV1RestResource(JsonResource):
+ """A resource for version 1 of the matrix client API."""
def __init__(self, hs):
- client_resource = hs.get_resource_for_client()
+ JsonResource.__init__(self)
+ self.register_servlets(self, hs)
- # TODO(erikj): There *must* be a better way of doing this.
+ @staticmethod
+ def register_servlets(client_resource, hs):
room.register_servlets(hs, client_resource)
events.register_servlets(hs, client_resource)
register.register_servlets(hs, client_resource)
diff --git a/synapse/server.py b/synapse/server.py
index e9add8e2b4..476d809374 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -24,7 +24,6 @@ from synapse.events.utils import serialize_event
from synapse.notifier import Notifier
from synapse.api.auth import Auth
from synapse.handlers import Handlers
-from synapse.rest.client.v1 import RestServletFactory
from synapse.state import StateHandler
from synapse.storage import DataStore
from synapse.types import UserID, RoomAlias, RoomID, EventID
@@ -203,9 +202,6 @@ class HomeServer(BaseHomeServer):
def build_auth(self):
return Auth(self)
- def build_rest_servlet_factory(self):
- return RestServletFactory(self)
-
def build_state_handler(self):
return StateHandler(self)
@@ -229,9 +225,3 @@ class HomeServer(BaseHomeServer):
clock=self.get_clock(),
hostname=self.hostname,
)
-
- def register_servlets(self):
- """ Register all servlets associated with this HomeServer.
- """
- # Simply building the ServletFactory is sufficient to have it register
- self.get_rest_servlet_factory()
|