From b01dfb98caa1b8b8ab8da15226bc023714b6048f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 17 Dec 2019 17:46:05 +0100 Subject: [PATCH] Improve demo initialisation. --- .../src/org/argeo/cms/internal/kernel/InitUtils.java | 5 ++++- .../internal/kernel/example-ou=roles,ou=node.ldif | 12 ++++++++++++ .../src/org/argeo/osgi/a2/ProvisioningManager.java | 12 ++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 org.argeo.cms/src/org/argeo/cms/internal/kernel/example-ou=roles,ou=node.ldif diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java index 045130ecb..ef6a267c6 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java @@ -157,12 +157,15 @@ class InitUtils { String demoBaseDn = "dc=example,dc=com"; userAdminUris = demoBaseDn + ".ldif"; File businessRolesFile = new File(nodeBaseDir, userAdminUris); + File systemRolesFile = new File(nodeBaseDir, "ou=roles,ou=node.ldif"); if (!businessRolesFile.exists()) try { FileUtils.copyInputStreamToFile(InitUtils.class.getResourceAsStream(demoBaseDn + ".ldif"), businessRolesFile); + FileUtils.copyInputStreamToFile( + InitUtils.class.getResourceAsStream("example-ou=roles,ou=node.ldif"), systemRolesFile); } catch (IOException e) { - throw new CmsException("Cannot copy demo resource", e); + throw new CmsException("Cannot copy demo resources", e); } // userAdminUris = businessRolesFile.toURI().toString(); log.warn("## DEV Using dummy base DN " + demoBaseDn); diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/example-ou=roles,ou=node.ldif b/org.argeo.cms/src/org/argeo/cms/internal/kernel/example-ou=roles,ou=node.ldif new file mode 100644 index 000000000..ffa9073ef --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/example-ou=roles,ou=node.ldif @@ -0,0 +1,12 @@ +dn: cn=admin,ou=roles,ou=node +objectClass: groupOfNames +objectClass: top +cn: admin +member: uid=root,ou=People,dc=example,dc=com + +dn: cn=userAdmin,ou=roles,ou=node +objectClass: groupOfNames +objectClass: top +member: cn=admin,ou=roles,ou=node +cn: userAdmin + diff --git a/org.argeo.osgi.boot/src/org/argeo/osgi/a2/ProvisioningManager.java b/org.argeo.osgi.boot/src/org/argeo/osgi/a2/ProvisioningManager.java index dd7fa3b0e..d8246f18d 100644 --- a/org.argeo.osgi.boot/src/org/argeo/osgi/a2/ProvisioningManager.java +++ b/org.argeo.osgi.boot/src/org/argeo/osgi/a2/ProvisioningManager.java @@ -2,6 +2,7 @@ package org.argeo.osgi.a2; import java.io.File; import java.net.URI; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -62,9 +63,12 @@ public class ProvisioningManager { baseStr = baseStr.substring(1).replace('/', File.separatorChar); } Path base = Paths.get(baseStr); - FsA2Source source = new FsA2Source(base); - source.load(); - addSource(source); + if (Files.exists(base)) { + FsA2Source source = new FsA2Source(base); + source.load(); + addSource(source); + OsgiBootUtils.info("Registered " + uri + " as source"); + } } } } catch (Exception e) { @@ -85,7 +89,7 @@ public class ProvisioningManager { baseStr = '/' + baseStr.replace(File.separatorChar, '/'); URI baseUri = new URI(A2Source.SCHEME_A2, null, null, 0, baseStr, null, null); registerSource(baseUri.toString()); - OsgiBootUtils.info("Registered " + baseUri + " as default source"); + OsgiBootUtils.debug("Default source from framework location " + frameworkLocation); return true; } } -- 2.30.2