Move all JCR servlets to OSGi WhiteBoard.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeHttp.java
index 1e11b7d7f6105358a4dea515dab7a9cf8d9ba39e..ded4ae10e9cb8b60437e240c2b4e74ff0372fb6a 100644 (file)
@@ -15,6 +15,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.jackrabbit.server.SessionProvider;
 import org.apache.jackrabbit.server.remoting.davex.JcrRemotingServlet;
 import org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet;
+import org.argeo.api.NodeConstants;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.internal.http.CmsSessionProvider;
 import org.argeo.cms.internal.http.DataHttpContext;
@@ -22,7 +23,6 @@ import org.argeo.cms.internal.http.HttpUtils;
 import org.argeo.cms.internal.http.LinkServlet;
 import org.argeo.cms.internal.http.PrivateHttpContext;
 import org.argeo.cms.internal.http.RobotServlet;
-import org.argeo.node.NodeConstants;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
@@ -34,6 +34,7 @@ import org.osgi.util.tracker.ServiceTracker;
  * Intercepts and enriches http access, mainly focusing on security and
  * transactionality.
  */
+@Deprecated
 public class NodeHttp implements KernelConstants {
        private final static Log log = LogFactory.getLog(NodeHttp.class);
 
@@ -46,10 +47,10 @@ public class NodeHttp implements KernelConstants {
 
        private String httpRealm = "Argeo";
        private String webDavConfig = HttpUtils.WEBDAV_CONFIG;
-       private final boolean cleanState;
+//     private final boolean cleanState;
 
-       public NodeHttp(boolean cleanState) {
-               this.cleanState = cleanState;
+       public NodeHttp() {
+//             this.cleanState = cleanState;
                httpServiceTracker = new PrepareHttpStc();
                // httpServiceTracker.open();
                KernelUtils.asyncOpen(httpServiceTracker);
@@ -66,10 +67,10 @@ public class NodeHttp implements KernelConstants {
                try {
                        registerWebdavServlet(httpService, alias, repository);
                        registerRemotingServlet(httpService, alias, repository);
-                       if (NodeConstants.HOME.equals(alias))
+                       if (NodeConstants.EGO_REPOSITORY.equals(alias))
                                registerFilesServlet(httpService, alias, repository);
-                       if (log.isDebugEnabled())
-                               log.debug("Registered servlets for repository '" + alias + "'");
+                       if (log.isTraceEnabled())
+                               log.trace("Registered servlets for repository '" + alias + "'");
                } catch (Exception e) {
                        throw new CmsException("Could not register servlets for repository '" + alias + "'", e);
                }
@@ -81,10 +82,10 @@ public class NodeHttp implements KernelConstants {
                try {
                        httpService.unregister(webdavPath(alias));
                        httpService.unregister(remotingPath(alias));
-                       if (NodeConstants.HOME.equals(alias))
+                       if (NodeConstants.EGO_REPOSITORY.equals(alias))
                                httpService.unregister(filesPath(alias));
-                       if (log.isDebugEnabled())
-                               log.debug("Unregistered servlets for repository '" + alias + "'");
+                       if (log.isTraceEnabled())
+                               log.trace("Unregistered servlets for repository '" + alias + "'");
                } catch (Exception e) {
                        log.error("Could not unregister servlets for repository '" + alias + "'", e);
                }
@@ -213,6 +214,7 @@ public class NodeHttp implements KernelConstants {
                        try {
                                httpService.registerServlet("/!", new LinkServlet(), null, null);
                                httpService.registerServlet("/robots.txt", new RobotServlet(), null, null);
+                               // httpService.registerServlet("/html", new HtmlServlet(), null, null);
                        } catch (Exception e) {
                                throw new CmsException("Cannot register filters", e);
                        }
@@ -221,8 +223,11 @@ public class NodeHttp implements KernelConstants {
                                throw new CmsException("An http service is already configured");
                        repositories = new RepositoriesStc(bc, httpService);
                        // repositories.open();
-                       if (cleanState)
-                               KernelUtils.asyncOpen(repositories);
+
+                       ///if (cleanState)
+                       // FIXME properly publish servlets
+                       //KernelUtils.asyncOpen(repositories);
+
                        log.info(httpPortsMsg(httpPort, httpsPort));
                        // httpAvailable = true;
                        // checkReadiness();
@@ -232,7 +237,8 @@ public class NodeHttp implements KernelConstants {
                }
 
                private String httpPortsMsg(Object httpPort, Object httpsPort) {
-                       return "HTTP " + httpPort + (httpsPort != null ? " - HTTPS " + httpsPort : "");
+                       return (httpPort != null ? "HTTP " + httpPort + " " : " ")
+                                       + (httpsPort != null ? "HTTPS " + httpsPort : "");
                }
        }