]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java
Improve i18n
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / Kernel.java
index 871163fc0f57df925446cc9c2a163e79cf1568b8..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());
@@ -173,8 +186,14 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
 
        private void firstInit() {
                log.info("## FIRST INIT ##");
-               File initDir = new File(getFrameworkProp(NODE_INIT,
-                               KernelUtils.getOsgiInstancePath("../../../init")));
+               String nodeInit = getFrameworkProp(NODE_INIT);
+               if (nodeInit == null)
+                       nodeInit = "../../init";
+               File initDir;
+               if (nodeInit.startsWith("."))
+                       initDir = KernelUtils.getExecutionDir(nodeInit);
+               else
+                       initDir = new File(nodeInit);
                // TODO also uncompress archives
                if (initDir.exists())
                        try {