+
+ try {
+ Configuration nodeConf = conf.getConfiguration(ArgeoJcrConstants.REPO_PID_NODE);
+ if (nodeConf.getProperties() == null) {
+ Dictionary<String, ?> props = getNodeConfigFromFrameworkProperties();
+ if (props == null)// TODO interactive configuration
+ return;
+ nodeConf.update(props);
+ }
+ } catch (IOException e) {
+ throw new CmsException("Cannot get configuration", e);
+ }
+
+ ManagedJackrabbitRepository nodeRepo = new ManagedJackrabbitRepository();
+ String[] clazzes = { ManagedService.class.getName(), Repository.class.getName(),
+ JackrabbitRepository.class.getName() };
+ Hashtable<String, String> serviceProps = new Hashtable<String, String>();
+ serviceProps.put(Constants.SERVICE_PID, ArgeoJcrConstants.REPO_PID_NODE);
+ serviceProps.put(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS, ArgeoJcrConstants.ALIAS_NODE);
+ ServiceRegistration<?> nodeSr = bc.registerService(clazzes, nodeRepo, serviceProps);
+ nodeRepo.waitForInit();
+ new JackrabbitDataModel(bc).prepareDataModel(nodeRepo);
+
+ repository = (JackrabbitRepository) bc.getService(nodeSr.getReference());
+