import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.Map;
-import java.util.Properties;
import javax.jcr.Repository;
import javax.jcr.RepositoryFactory;
+import javax.jcr.Session;
import javax.security.auth.Subject;
import javax.transaction.TransactionManager;
import javax.transaction.TransactionSynchronizationRegistry;
import org.osgi.framework.ServiceEvent;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpService;
+import org.osgi.service.useradmin.UserAdmin;
import org.osgi.util.tracker.ServiceTracker;
/**
ThreadGroup threadGroup = new ThreadGroup(Kernel.class.getSimpleName());
JackrabbitNode node;
-
+ private NodeUserAdmin userAdmin;
private SimpleTransactionManager transactionManager;
private OsgiJackrabbitRepositoryFactory repositoryFactory;
- private NodeHttp nodeHttp;
+ private DataHttp nodeHttp;
private KernelThread kernelThread;
public Kernel() {
- nodeSecurity = new NodeSecurity(bundleContext);
+ nodeSecurity = new NodeSecurity();
}
final void init() {
repositoryFactory = new OsgiJackrabbitRepositoryFactory();
// Authentication
- nodeSecurity.getUserAdmin().setTransactionManager(
- transactionManager);
+ Session adminSession = node.login();
+ userAdmin = new NodeUserAdmin(adminSession);
+ userAdmin.setTransactionManager(transactionManager);
+ bundleContext.registerService(UserAdmin.class, userAdmin,
+ userAdmin.currentState());
// Equinox dependency
// ExtendedHttpService httpService = waitForHttpService();
TransactionSynchronizationRegistry.class,
transactionManager.getTransactionSynchronizationRegistry(),
null);
- nodeSecurity.publish();
node.publish(repositoryFactory);
bundleContext.registerService(RepositoryFactory.class,
repositoryFactory, null);
if (nodeHttp != null)
nodeHttp.destroy();
- // if (nodeSecurity != null)
- // nodeSecurity.destroy();
+ if (userAdmin != null)
+ userAdmin.destroy();
if (node != null)
node.destroy();
}
private void addHttpService(ServiceReference<?> sr) {
-// for (String key : sr.getPropertyKeys())
-// log.debug(key + "=" + sr.getProperty(key));
+ // for (String key : sr.getPropertyKeys())
+ // log.debug(key + "=" + sr.getProperty(key));
ExtendedHttpService httpService = (ExtendedHttpService) bundleContext
.getService(sr);
// TODO find constants
Object httpPort = sr.getProperty("http.port");
Object httpsPort = sr.getProperty("https.port");
- nodeHttp = new NodeHttp(httpService, node);
+ nodeHttp = new DataHttp(httpService, node);
if (log.isDebugEnabled())
log.debug("HTTP " + httpPort
+ (httpsPort != null ? " - HTTPS " + httpsPort : ""));