import static bitronix.tm.TransactionManagerServices.getTransactionManager;
import static bitronix.tm.TransactionManagerServices.getTransactionSynchronizationRegistry;
import static java.util.Locale.ENGLISH;
+import static org.argeo.cms.internal.kernel.DataModelNamespace.CMS_DATA_MODEL_NAMESPACE;
import static org.argeo.cms.internal.kernel.KernelUtils.getFrameworkProp;
import static org.argeo.cms.internal.kernel.KernelUtils.getOsgiInstanceDir;
import static org.argeo.jcr.ArgeoJcrConstants.ALIAS_NODE;
Configuration nodeConf = conf.getConfiguration(ArgeoJcrConstants.REPO_PID_NODE);
if (nodeConf.getProperties() == null) {
Dictionary<String, ?> props = getNodeConfigFromFrameworkProperties();
- if (props == null)// TODO interactive configuration
+ if (props == null) {
+ // TODO interactive configuration
+ if (log.isDebugEnabled())
+ log.debug("No argeo.node.repo.type=localfs|h2|postgresql|memory"
+ + " property defined, entering interactive mode...");
return;
+ }
nodeConf.update(props);
}
} catch (IOException e) {
if (repository == null)
repository = new NodeRepository();
- if (repositoryFactory == null)
+ if (repositoryFactory == null) {
repositoryFactory = new OsgiJackrabbitRepositoryFactory();
+ repositoryFactory.setBundleContext(bc);
+ }
userAdmin = new NodeUserAdmin(transactionManager, repository);
// ADMIN UIs
return props;
}
- private final static String CMS_DATA_MODEL = "cms.datamodel";
-
private void prepareDataModel(ManagedJackrabbitRepository nodeRepo) {
Session adminSession = null;
try {
private void processWiring(Session adminSession, BundleWiring wiring, Set<String> processed) {
// recursively process requirements first
- List<BundleWire> requiredWires = wiring.getRequiredWires(CMS_DATA_MODEL);
+ List<BundleWire> requiredWires = wiring.getRequiredWires(CMS_DATA_MODEL_NAMESPACE);
for (BundleWire wire : requiredWires) {
processWiring(adminSession, wire.getProviderWiring(), processed);
// registerCnd(adminSession, wire.getCapability(), processed);
}
- List<BundleCapability> capabilities = wiring.getCapabilities(CMS_DATA_MODEL);
+ List<BundleCapability> capabilities = wiring.getCapabilities(CMS_DATA_MODEL_NAMESPACE);
for (BundleCapability capability : capabilities) {
registerCnd(adminSession, capability, processed);
}
private void registerCnd(Session adminSession, BundleCapability capability, Set<String> processed) {
Map<String, Object> attrs = capability.getAttributes();
- String name = attrs.get("name").toString();
+ String name = attrs.get(DataModelNamespace.CAPABILITY_NAME_ATTRIBUTE).toString();
if (processed.contains(name)) {
if (log.isTraceEnabled())
log.trace("Data model " + name + " has already been processed");
return;
}
- String path = attrs.get("cnd").toString();
+ String path = attrs.get(DataModelNamespace.CAPABILITY_CND_ATTRIBUTE).toString();
URL url = capability.getRevision().getBundle().getResource(path);
try (Reader reader = new InputStreamReader(url.openStream())) {
CndImporter.registerNodeTypes(reader, adminSession, true);
props.put(key, sr.getProperty(key));
if (ServiceEvent.REGISTERED == event.getType()) {
try {
- repositoryFactory.register(repository, props);
+ // repositoryFactory.register(repository, props);
dataHttp.registerRepositoryServlets(alias, repository);
} catch (Exception e) {
throw new CmsException("Could not publish JCR repository " + alias, e);
}
} else if (ServiceEvent.UNREGISTERING == event.getType()) {
- repositoryFactory.unregister(repository, props);
+ // repositoryFactory.unregister(repository, props);
dataHttp.unregisterRepositoryServlets(alias);
}
}