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

View File

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

View File

@ -31,9 +31,7 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
final String uuid = generateUuid(lifecycle); final String uuid = generateUuid(lifecycle);
final Path targetFilePath = targetDir final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
.resolve("org.libreccm.lifecycle.Lifecycle")
.resolve(String.format("%s.json", uuid));
final File targetFile = targetFilePath.toFile(); final File targetFile = targetFilePath.toFile();
final JsonFactory jsonFactory = new JsonFactory(); final JsonFactory jsonFactory = new JsonFactory();
@ -57,12 +55,14 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
LocalDateTime.ofInstant( LocalDateTime.ofInstant(
lifecycle.getStartDate().toInstant(), lifecycle.getStartDate().toInstant(),
ZoneId.systemDefault()))); ZoneId.systemDefault())));
jsonGenerator.writeStringField( if (lifecycle.getEndDate() != null) {
"endDateTime", jsonGenerator.writeStringField(
dateTimeFormatter.format( "endDateTime",
LocalDateTime.ofInstant( dateTimeFormatter.format(
lifecycle.getEndDate().toInstant(), LocalDateTime.ofInstant(
ZoneId.systemDefault()))); lifecycle.getEndDate().toInstant(),
ZoneId.systemDefault())));
}
jsonGenerator.writeStringField("listener", jsonGenerator.writeStringField("listener",
lifecycle.getListenerClassName()); lifecycle.getListenerClassName());
@ -108,4 +108,5 @@ public class LifecyclesExporter extends AbstractDomainObjectsExporter<Lifecycle>
return "org.librecms.lifecycle.Lifecycle"; return "org.librecms.lifecycle.Lifecycle";
} }
} }

View File

@ -74,8 +74,11 @@ public class PhaseDefinitionsExporter
jsonGenerator.writeNumberField("defaultDelay", jsonGenerator.writeNumberField("defaultDelay",
phaseDefinition.getDefaultDelay()); phaseDefinition.getDefaultDelay());
jsonGenerator.writeNumberField("defaultDuration", if (phaseDefinition.getDefaultDuration() != null) {
phaseDefinition.getDefaultDuration()); jsonGenerator.writeNumberField(
"defaultDuration",
phaseDefinition.getDefaultDuration());
}
jsonGenerator.writeStringField("defaultListener", jsonGenerator.writeStringField("defaultListener",
phaseDefinition.getDefaultListener()); phaseDefinition.getDefaultListener());

View File

@ -44,9 +44,7 @@ public class PhasesExporter extends AbstractDomainObjectsExporter<Phase> {
final Path targetDir) { final Path targetDir) {
final String uuid = generateUuid(phase); final String uuid = generateUuid(phase);
final Path targetFilePath = targetDir final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
.resolve("org.librecms.lifecycle.Phase")
.resolve(String.format("%s.json", uuid));
final File targetFile = targetFilePath.toFile(); final File targetFile = targetFilePath.toFile();
final JsonFactory jsonFactory = new JsonFactory(); 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 resource The {@link Resource} to export.
* @param jsonGenerator The {@link JsonGenerator} to use. * @param jsonGenerator The {@link JsonGenerator} to use.
*
* @throws java.io.IOException * @throws java.io.IOException
*/ */
@Override @Override
@ -45,8 +46,10 @@ public abstract class AbstractResourcesExporter<T extends Resource>
jsonGenerator.writeStringField("resourceType", typeUuid); jsonGenerator.writeStringField("resourceType", typeUuid);
final Resource parent = resource.getParentResource(); final Resource parent = resource.getParentResource();
final String parentUuid = generateUuid(parent); if (parent != null) {
jsonGenerator.writeStringField("parent", parentUuid); final String parentUuid = generateUuid(parent);
jsonGenerator.writeStringField("parent", parentUuid);
}
exportResourceProperties(resource, jsonGenerator); exportResourceProperties(resource, jsonGenerator);
} }

View File

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