X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FNodeHttp.java;h=28c569bfdf6ff4908f9a28e10eeb736fe0581a8b;hb=35904a4a72fe8a4908c345f73856711c7b4c472c;hp=418771d981669295308a51958aa6b979e0a38385;hpb=9417e33dda6b8987312a89ca44cdb2f511f04050;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java index 418771d98..28c569bfd 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java @@ -73,20 +73,34 @@ class NodeHttp implements KernelConstants, ArgeoJcrConstants { // DAV sessionProvider = new OpenInViewSessionProvider(); + registerRepositoryServlets(ALIAS_NODE, node); try { - registerWebdavServlet(ALIAS_NODE, node, true); - registerWebdavServlet(ALIAS_NODE, node, false); - registerRemotingServlet(ALIAS_NODE, node, true); - registerRemotingServlet(ALIAS_NODE, node, false); - httpService.registerFilter("/", rootFilter, null, null); } catch (Exception e) { - throw new CmsException("Could not initialise http", e); + throw new CmsException( + "Could not register root filter", e); } } public void destroy() { sessionProvider.destroy(); + unregisterRepositoryServlets(ALIAS_NODE); + } + + void registerRepositoryServlets(String alias, Repository repository) { + try { + registerWebdavServlet(alias, repository, true); + registerWebdavServlet(alias, repository, false); + registerRemotingServlet(alias, repository, true); + registerRemotingServlet(alias, repository, false); + } catch (Exception e) { + throw new CmsException( + "Could not register servlets for repository " + alias, e); + } + } + + void unregisterRepositoryServlets(String alias) { + // FIXME unregister servlets } void registerWebdavServlet(String alias, Repository repository,