Bug fixes for exporters

git-svn-id: https://svn.libreccm.org/ccm/trunk@5729 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2018-11-07 20:26:32 +00:00
parent bcccc4cfce
commit 64b2ddb5c6
7 changed files with 58 additions and 38 deletions

View File

@ -6,6 +6,7 @@ import com.arsdigita.cms.ContentTypeCollection;
import com.arsdigita.cms.Folder;
import com.arsdigita.cms.lifecycle.LifecycleDefinition;
import com.arsdigita.cms.lifecycle.LifecycleDefinitionCollection;
import com.arsdigita.kernel.KernelConfig;
import com.arsdigita.kernel.Role;
import com.arsdigita.kernel.RoleCollection;
import com.arsdigita.workflow.simple.Task;
@ -62,18 +63,25 @@ public class ContentSectionsExporter
jsonGenerator.writeStringField("xmlGeneratorClass",
section.getXMLGeneratorClassName());
jsonGenerator.writeArrayFieldStart("roles");
final RoleCollection roles = section.getGroup().getRoles();
while (roles.next()) {
if (section.getGroup() != null) {
jsonGenerator.writeArrayFieldStart("roles");
final RoleCollection roles = section.getGroup().getRoles();
while (roles.next()) {
final Role role = roles.getRole();
final String roleUuid = generateUuid(role);
jsonGenerator.writeString(roleUuid);
final Role role = roles.getRole();
final String roleUuid = generateUuid(role);
jsonGenerator.writeString(roleUuid);
}
jsonGenerator.writeEndArray();
}
jsonGenerator.writeEndArray();
jsonGenerator.writeStringField("defaultLocale",
section.getDefaultLocale().toString());
if (section.getDefaultLocale() == null) {
jsonGenerator.writeStringField(
"defaultLocale", KernelConfig.getConfig().getDefaultLanguage());
} else {
jsonGenerator.writeStringField(
"defaultLocale", section.getDefaultLocale().toString());
}
jsonGenerator.writeArrayFieldStart("contentTypes");
final ContentTypeCollection types = section.getContentTypes();

View File

@ -24,8 +24,10 @@ public class FoldersExporter extends AbstractCcmObjectsExporter<Folder> {
jsonGenerator.writeStringField("name", folder.getName());
final ContentSection section = folder.getContentSection();
final String sectionUuid = generateUuid(section);
jsonGenerator.writeStringField("contentSection", sectionUuid);
if (section != null) {
final String sectionUuid = generateUuid(section);
jsonGenerator.writeStringField("contentSection", sectionUuid);
}
jsonGenerator.writeObjectFieldStart("title");
jsonGenerator.writeStringField(
@ -37,9 +39,11 @@ public class FoldersExporter extends AbstractCcmObjectsExporter<Folder> {
jsonGenerator.writeBooleanField("visible", true);
jsonGenerator.writeBooleanField("abstractCategory", true);
jsonGenerator.writeStringField(
"parentCategory",
generateUuid(folder.getParent()));
if (folder.getParent() != null) {
jsonGenerator.writeStringField(
"parentCategory",
generateUuid(folder.getParent()));
}
}

View File

@ -31,9 +31,7 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
final String uuid = generateUuid(lifecycle);
final Path targetFilePath = targetDir
.resolve("org.libreccm.lifecycle.Lifecycle")
.resolve(String.format("%s.json", uuid));
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
final File targetFile = targetFilePath.toFile();
final JsonFactory jsonFactory = new JsonFactory();
@ -41,7 +39,7 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
.createGenerator(targetFile, JsonEncoding.UTF8)) {
setPrettyPrinter(jsonGenerator);
jsonGenerator.writeStartObject();
jsonGenerator.writeNumberField("lifecycleId",
@ -57,12 +55,14 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
LocalDateTime.ofInstant(
lifecycle.getStartDate().toInstant(),
ZoneId.systemDefault())));
jsonGenerator.writeStringField(
"endDateTime",
dateTimeFormatter.format(
LocalDateTime.ofInstant(
lifecycle.getEndDate().toInstant(),
ZoneId.systemDefault())));
if (lifecycle.getEndDate() != null) {
jsonGenerator.writeStringField(
"endDateTime",
dateTimeFormatter.format(
LocalDateTime.ofInstant(
lifecycle.getEndDate().toInstant(),
ZoneId.systemDefault())));
}
jsonGenerator.writeStringField("listener",
lifecycle.getListenerClassName());
@ -80,7 +80,7 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
jsonGenerator.writeString(generateUuid(phases.getPhase()));
}
jsonGenerator.writeEndArray();
jsonGenerator.writeEndObject();
} catch (IOException ex) {
@ -108,4 +108,5 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
return "org.librecms.lifecycle.Lifecycle";
}
}
}

View File

@ -53,7 +53,7 @@ public class PhaseDefinitionsExporter
.createGenerator(targetFile, JsonEncoding.UTF8)) {
setPrettyPrinter(jsonGenerator);
jsonGenerator.writeStartObject();
jsonGenerator.writeNumberField("definitionId",
@ -74,8 +74,11 @@ public class PhaseDefinitionsExporter
jsonGenerator.writeNumberField("defaultDelay",
phaseDefinition.getDefaultDelay());
jsonGenerator.writeNumberField("defaultDuration",
phaseDefinition.getDefaultDuration());
if (phaseDefinition.getDefaultDuration() != null) {
jsonGenerator.writeNumberField(
"defaultDuration",
phaseDefinition.getDefaultDuration());
}
jsonGenerator.writeStringField("defaultListener",
phaseDefinition.getDefaultListener());

View File

@ -44,9 +44,7 @@ public class PhasesExporter extends AbstractDomainObjectsExporter<Phase> {
final Path targetDir) {
final String uuid = generateUuid(phase);
final Path targetFilePath = targetDir
.resolve("org.librecms.lifecycle.Phase")
.resolve(String.format("%s.json", uuid));
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
final File targetFile = targetFilePath.toFile();
final JsonFactory jsonFactory = new JsonFactory();

View File

@ -21,6 +21,7 @@ public abstract class AbstractResourcesExporter<T extends Resource>
*
* @param resource The {@link Resource} to export.
* @param jsonGenerator The {@link JsonGenerator} to use.
*
* @throws java.io.IOException
*/
@Override
@ -33,21 +34,23 @@ public abstract class AbstractResourcesExporter<T extends Resource>
KernelConfig.getConfig().getDefaultLanguage(),
resource.getTitle());
jsonGenerator.writeEndObject();
jsonGenerator.writeObjectFieldStart("description");
jsonGenerator.writeStringField(
KernelConfig.getConfig().getDefaultLanguage(),
resource.getDescription());
jsonGenerator.writeEndObject();
final ResourceType type = resource.getResourceType();
final String typeUuid = generateUuid(type);
jsonGenerator.writeStringField("resourceType", typeUuid);
final Resource parent = resource.getParentResource();
final String parentUuid = generateUuid(parent);
jsonGenerator.writeStringField("parent", parentUuid);
if (parent != null) {
final String parentUuid = generateUuid(parent);
jsonGenerator.writeStringField("parent", parentUuid);
}
exportResourceProperties(resource, jsonGenerator);
}

View File

@ -15,6 +15,7 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
/**
@ -94,6 +95,8 @@ public abstract class AbstractDomainObjectsExporter<T extends DomainObject> {
*/
protected final String generateUuid(final DomainObject forDomainObject) {
Objects.requireNonNull(forDomainObject);
final String uuidSource = String.format(
"%s/%s",
webConfig.getSiteName(),