in src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java [355:388]
private Resource createTenantResource(final ResourceResolver resolver, final String tenantId,
final Map<String, Object> properties) throws PersistenceException {
// check for duplicate first
if (getTenantResource(resolver, tenantId) != null) {
throw new PersistenceException("Tenant '" + tenantId + "' already exists");
}
Resource tenantRoot = resolver.getResource(tenantRootPath);
if (tenantRoot == null) {
Resource current = resolver.getResource("/");
if (current == null) {
throw new PersistenceException("Cannot get root Resource");
}
String[] segments = this.tenantRootPath.split("/");
for (String segment : segments) {
Resource child = current.getChild(segment);
if (child == null) {
child = resolver.create(current, segment, new HashMap<String, Object>() {
{
put("jcr:primaryType", "sling:Folder");
}
});
}
current = child;
}
tenantRoot = current;
}
return resolver.create(tenantRoot, tenantId, properties);
}