import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.api.JackrabbitRepository;
import org.apache.jackrabbit.util.TransientFileFactory;
import org.argeo.ArgeoException;
import org.argeo.ArgeoLogger;
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;
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;
private ServiceRegistration<TransactionManager> tmReg;
private ServiceRegistration<UserTransaction> utReg;
private ServiceRegistration<TransactionSynchronizationRegistry> tsrReg;
- private ServiceRegistration<Repository> repositoryReg;
+ private ServiceRegistration<? extends Repository> repositoryReg;
private ServiceRegistration<RepositoryFactory> repositoryFactoryReg;
private ServiceRegistration<UserAdmin> userAdminReg;
public Kernel() {
nodeSecurity = new NodeSecurity();
- // log.debug(bc.getDataFile(""));
- // log.debug(bc.getDataFile("test"));
}
final void init() {
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();
+
+ // KernelUtils.logFrameworkProperties(log);
// Initialise services
initTransactionManager();
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());
}
}
+ @SuppressWarnings("unchecked")
private void publish() {
// Listen to service publication (also ours)
bc.addServiceListener(Kernel.this);
// JCR
Hashtable<String, String> regProps = new Hashtable<String, String>();
regProps.put(JCR_REPOSITORY_ALIAS, ALIAS_NODE);
- repositoryReg = bc.registerService(Repository.class, repository,
- regProps);
+ repositoryReg = (ServiceRegistration<? extends Repository>) bc
+ .registerService(new String[] { Repository.class.getName(),
+ JackrabbitRepository.class.getName() }, repository,
+ regProps);
repositoryFactoryReg = bc.registerService(RepositoryFactory.class,
repositoryFactory, null);
}