]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsRcpServlet.java
f8aecd39b996a688daec78bfc1af8de00088439b
[lgpl/argeo-commons.git] / CmsRcpServlet.java
1 package org.argeo.cms.ui.rcp.servlet;
2
3 import java.io.IOException;
4 import java.lang.System.Logger;
5 import java.lang.System.Logger.Level;
6 import java.util.Objects;
7
8 import javax.servlet.ServletException;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import org.argeo.api.cms.CmsApp;
14 import org.argeo.cms.ui.rcp.CmsRcpDisplayFactory;
15 import org.osgi.service.event.EventAdmin;
16
17 /** Open the related app when called. */
18 public class CmsRcpServlet extends HttpServlet {
19 private static final long serialVersionUID = -3944472431354848923L;
20 private final static Logger logger = System.getLogger(CmsRcpServlet.class.getName());
21
22 private CmsApp cmsApp;
23 private EventAdmin eventAdmin;
24
25 public CmsRcpServlet(EventAdmin eventAdmin, CmsApp cmsApp) {
26 Objects.requireNonNull(eventAdmin);
27 Objects.requireNonNull(cmsApp);
28 this.cmsApp = cmsApp;
29 this.eventAdmin = eventAdmin;
30 }
31
32 @Override
33 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
34 String path = req.getPathInfo();
35 String uiName = path != null ? path.substring(path.lastIndexOf('/') + 1) : "";
36 CmsRcpDisplayFactory.openCmsApp(eventAdmin, cmsApp, uiName, null);
37 logger.log(Level.DEBUG, "Opened RCP UI " + uiName + " of CMS App " + req.getServletPath());
38 }
39
40 }