Improve authentication and logging.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / Kernel.java
index 1002304007ff3e64d42a86834a8de8a64fa95f6a..8a1cf8e96c5655442caef71be8cb84586f36a721 100644 (file)
@@ -40,6 +40,7 @@ import org.argeo.jcr.ArgeoJcrConstants;
 import org.eclipse.equinox.http.jetty.JettyConfigurator;
 import org.eclipse.equinox.http.jetty.JettyConstants;
 import org.eclipse.equinox.http.servlet.ExtendedHttpService;
+import org.eclipse.rap.rwt.application.ApplicationConfiguration;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
@@ -47,7 +48,9 @@ import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.log.LogReaderService;
 import org.osgi.service.useradmin.UserAdmin;
+import org.osgi.util.tracker.ServiceTracker;
 
 import bitronix.tm.BitronixTransactionManager;
 import bitronix.tm.BitronixTransactionSynchronizationRegistry;
@@ -133,7 +136,12 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
                        defaultLocale = new Locale(getFrameworkProp(I18N_DEFAULT_LOCALE,
                                        ENGLISH.getLanguage()));
                        locales = asLocaleList(getFrameworkProp(I18N_LOCALES));
-                       logger = new NodeLogger();
+
+                       ServiceTracker<LogReaderService, LogReaderService> logReaderService = new ServiceTracker<LogReaderService, LogReaderService>(
+                                       bc, LogReaderService.class, null);
+                       logReaderService.open();
+                       logger = new NodeLogger(logReaderService.getService());
+                       logReaderService.close();
 
                        // Initialise services
                        initTransactionManager();
@@ -148,6 +156,11 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
                        if (sr != null)
                                addHttpService(sr);
 
+                       UserUi userUi = new UserUi();
+                       Hashtable<String, String> props = new Hashtable<String, String>();
+                       props.put("contextName", "user");
+                       bc.registerService(ApplicationConfiguration.class, userUi, props);
+
                        // Kernel thread
                        kernelThread = new KernelThread(this);
                        kernelThread.setContextClassLoader(Kernel.class.getClassLoader());