3 Commits

Author SHA1 Message Date
a2993af681 v1.3.1 pom 2022-06-03 09:03:02 -04:00
8eb63c4d53 Merge branch 'develop' into stable 2022-06-03 08:55:50 -04:00
dd9d5735bf fixed user-based translation 2022-06-03 13:53:05 +01:00
3 changed files with 80 additions and 34 deletions

3
.gitignore vendored
View File

@@ -7,3 +7,6 @@ pom.xml.versionsBackup
.project
.classpath
# Codegen
.apt_generated
.apt_generated_tests

View File

@@ -7,7 +7,7 @@
<groupId>com.inteligr8.alfresco</groupId>
<artifactId>aps-model-maven-plugin</artifactId>
<version>1.3.0</version>
<version>1.3.1</version>
<packaging>maven-plugin</packaging>
<name>A Maven plugin for Alfresco Process Services model portability</name>

View File

@@ -2,6 +2,7 @@ package com.inteligr8.maven.aps.modeling.translator;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import org.slf4j.Logger;
@@ -39,6 +40,16 @@ public class ApsAppJsonTranslator extends ApsOrganizationHandler implements ApsF
boolean changed = false;
JsonNode descriptor = ModelUtil.getInstance().readJson(file);
changed = this.translateModels(descriptor) || changed;
changed = this.translateIdentities(descriptor) || changed;
if (changed)
ModelUtil.getInstance().writeJson(descriptor, file, false);
}
private boolean translateModels(JsonNode descriptor) {
boolean changed = false;
for (JsonNode _jsonModel : descriptor.get("definition").get("models")) {
ObjectNode jsonModel = (ObjectNode)_jsonModel;
@@ -77,8 +88,42 @@ public class ApsAppJsonTranslator extends ApsOrganizationHandler implements ApsF
// changed = true;
}
for (JsonNode _jsonIdentityInfo : descriptor.get("definition").get("publishIdentityInfo")) {
ObjectNode jsonGroup = (ObjectNode)_jsonIdentityInfo.get("group");
return changed;
}
private boolean translateIdentities(JsonNode descriptor) {
boolean changed = false;
Iterator<JsonNode> i = descriptor.get("definition").get("publishIdentityInfo").iterator();
while (i.hasNext()) {
JsonNode jsonIdentityInfo = i.next();
String identityType = jsonIdentityInfo.get("type").asText();
if (identityType == null) {
this.logger.warn("Found identity with no type; ignoring ...");
continue;
}
switch (identityType.toLowerCase()) {
case "user":
this.logger.warn("Found 'user' identity, which should never be used for portablility; removing ...");
changed = true;
i.remove();
break;
case "group":
changed = this.translateGroup(jsonIdentityInfo) || changed;
break;
default:
this.logger.warn("Found '{}' identity, which is not expected; ignoring ...", identityType);
}
}
return changed;
}
private boolean translateGroup(JsonNode jsonIdentityInfo) {
boolean changed = false;
ObjectNode jsonGroup = (ObjectNode)jsonIdentityInfo.get("group");
String fileOrgName = jsonGroup.get("name").asText();
this.logger.trace("Found organization '{}' in APS App descriptor", fileOrgName);
@@ -112,10 +157,8 @@ public class ApsAppJsonTranslator extends ApsOrganizationHandler implements ApsF
this.logger.warn("The organization '{}' does not exist in APS", fileOrgName);
// FIXME create the organization
}
}
if (changed)
ModelUtil.getInstance().writeJson(descriptor, file, false);
return changed;
}
}