Some improvements for the exporSome improvements for the exportt
git-svn-id: https://svn.libreccm.org/ccm/trunk@5715 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
8769dc6b68
commit
7bb93b2a46
|
|
@ -58,6 +58,8 @@ public class CategoriesExporter extends AbstractDomainObjectsExporter<Category>
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("objectId",
|
jsonGenerator.writeNumberField("objectId",
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,8 @@ public class CategorizationsExporter
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("categorizationId",
|
jsonGenerator.writeNumberField("categorizationId",
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,8 @@ public abstract class AbstractResourceTypesExporter<T extends ResourceType>
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("resourceTypeId",
|
jsonGenerator.writeNumberField("resourceTypeId",
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ import com.arsdigita.persistence.Session;
|
||||||
import com.arsdigita.persistence.SessionManager;
|
import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.web.WebConfig;
|
import com.arsdigita.web.WebConfig;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -120,13 +123,23 @@ public abstract class AbstractDomainObjectsExporter<T extends DomainObject> {
|
||||||
.resolve(String.format("%s.json", uuid));
|
.resolve(String.format("%s.json", uuid));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setPrettyPrinter(final JsonGenerator jsonGenerator) {
|
||||||
|
|
||||||
|
final DefaultPrettyPrinter prettyPrinter
|
||||||
|
= new DefaultPrettyPrinter();
|
||||||
|
prettyPrinter.indentArraysWith(
|
||||||
|
DefaultPrettyPrinter.Lf2SpacesIndenter.instance);
|
||||||
|
jsonGenerator.setPrettyPrinter(prettyPrinter);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all {@link DomainObject}s of the type returned by
|
* Retrieves all {@link DomainObject}s of the type returned by
|
||||||
* {@link #exportsBaseDataObjectType()} and calls
|
* {@link #exportsBaseDataObjectType()} and calls
|
||||||
* {@link #exportDomainObject(com.arsdigita.domain.DomainObject, java.nio.file.Path)}
|
* {@link #exportDomainObject(com.arsdigita.domain.DomainObject, java.nio.file.Path)}
|
||||||
* for each of them.
|
* for each of them.
|
||||||
*
|
*
|
||||||
* @param targetDir target directory for the export.
|
* @param targetDir target directory for the export.
|
||||||
|
*
|
||||||
* @return The list of uuids of the the exported entites.
|
* @return The list of uuids of the the exported entites.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|
@ -143,11 +156,15 @@ public abstract class AbstractDomainObjectsExporter<T extends DomainObject> {
|
||||||
final DomainObject domainObject = DomainObjectFactory
|
final DomainObject domainObject = DomainObjectFactory
|
||||||
.newInstance(dataObject);
|
.newInstance(dataObject);
|
||||||
|
|
||||||
if (!(exportsType().isAssignableFrom(domainObject.getClass()))) {
|
// if (!(exportsType().isAssignableFrom(domainObject.getClass()))) {
|
||||||
throw new ExportException(String.format(
|
// throw new ExportException(String.format(
|
||||||
"DomainObject is not of type \"%s\" but of type \"%s\".",
|
// "DomainObject is not of type \"%s\" but of type \"%s\".",
|
||||||
exportsType().getName(),
|
// exportsType().getName(),
|
||||||
domainObject.getClass().getName()));
|
// domainObject.getClass().getName()));
|
||||||
|
// }
|
||||||
|
if (!exportsType().equals(domainObject.getClass())) {
|
||||||
|
// Is not exact type (sub class?). Skip.
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
domainObjects.add((T) domainObject);
|
domainObjects.add((T) domainObject);
|
||||||
|
|
@ -155,6 +172,8 @@ public abstract class AbstractDomainObjectsExporter<T extends DomainObject> {
|
||||||
|
|
||||||
final List<String> uuids = new ArrayList<>();
|
final List<String> uuids = new ArrayList<>();
|
||||||
for (final T domainObject : domainObjects) {
|
for (final T domainObject : domainObjects) {
|
||||||
|
System.out.printf("Exporting domain object %s...%n",
|
||||||
|
domainObject.getOID().toString());
|
||||||
final List<String> createdUuids = exportDomainObject(domainObject,
|
final List<String> createdUuids = exportDomainObject(domainObject,
|
||||||
targetDir);
|
targetDir);
|
||||||
uuids.addAll(createdUuids);
|
uuids.addAll(createdUuids);
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,13 @@ import java.util.Map;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonFactory;
|
import com.fasterxml.jackson.core.JsonFactory;
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
|
||||||
|
import com.fasterxml.jackson.core.util.MinimalPrettyPrinter;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.StringWriter;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -86,9 +91,14 @@ public final class ExportManager {
|
||||||
try (final JsonGenerator manifestGenerator = jsonFactory
|
try (final JsonGenerator manifestGenerator = jsonFactory
|
||||||
.createGenerator(manifestFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(manifestFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
manifestGenerator.writeStartObject();
|
final DefaultPrettyPrinter prettyPrinter
|
||||||
|
= new DefaultPrettyPrinter();
|
||||||
|
prettyPrinter.indentArraysWith(
|
||||||
|
DefaultPrettyPrinter.Lf2SpacesIndenter.instance);
|
||||||
|
manifestGenerator.setPrettyPrinter(prettyPrinter);
|
||||||
|
|
||||||
manifestGenerator.writeStartObject();
|
manifestGenerator.writeStartObject();
|
||||||
|
|
||||||
manifestGenerator.writeStringField(
|
manifestGenerator.writeStringField(
|
||||||
"created",
|
"created",
|
||||||
LocalDateTime.now(ZoneId.of("UTC")).toString());
|
LocalDateTime.now(ZoneId.of("UTC")).toString());
|
||||||
|
|
@ -102,7 +112,7 @@ public final class ExportManager {
|
||||||
manifestGenerator.writeString(type);
|
manifestGenerator.writeString(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
manifestGenerator.writeEndObject();
|
manifestGenerator.writeEndArray();
|
||||||
|
|
||||||
manifestGenerator.writeObjectFieldStart("entities");
|
manifestGenerator.writeObjectFieldStart("entities");
|
||||||
|
|
||||||
|
|
@ -121,7 +131,6 @@ public final class ExportManager {
|
||||||
|
|
||||||
manifestGenerator.writeEndObject();
|
manifestGenerator.writeEndObject();
|
||||||
|
|
||||||
manifestGenerator.writeEndObject();
|
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
throw new UncheckedWrapperException(ex);
|
throw new UncheckedWrapperException(ex);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,8 @@ public class GroupMembershipsExporter
|
||||||
try (final JsonGenerator jsonGenerator = jsonFactory
|
try (final JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
jsonGenerator.writeNumberField("membershipId",
|
jsonGenerator.writeNumberField("membershipId",
|
||||||
IdSequence.getInstance().nextId());
|
IdSequence.getInstance().nextId());
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,8 @@ public class GroupsExporter extends AbstractDomainObjectsExporter<Group> {
|
||||||
try (final JsonGenerator jsonGenerator = jsonFactory
|
try (final JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
jsonGenerator.writeNumberField("partyId",
|
jsonGenerator.writeNumberField("partyId",
|
||||||
IdSequence.getInstance().nextId());
|
IdSequence.getInstance().nextId());
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,14 @@ package org.libreccm.security;
|
||||||
import com.arsdigita.domain.DomainObject;
|
import com.arsdigita.domain.DomainObject;
|
||||||
import com.arsdigita.domain.DomainObjectFactory;
|
import com.arsdigita.domain.DomainObjectFactory;
|
||||||
import com.arsdigita.kernel.Group;
|
import com.arsdigita.kernel.Group;
|
||||||
|
import com.arsdigita.kernel.Role;
|
||||||
import com.arsdigita.kernel.RoleCollection;
|
import com.arsdigita.kernel.RoleCollection;
|
||||||
import com.arsdigita.kernel.permissions.Permission;
|
import com.arsdigita.kernel.permissions.Permission;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
|
import com.arsdigita.persistence.Filter;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
|
import com.arsdigita.persistence.Session;
|
||||||
|
import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
import com.arsdigita.web.WebConfig;
|
import com.arsdigita.web.WebConfig;
|
||||||
|
|
||||||
|
|
@ -82,6 +87,8 @@ public class PermissionsExporter extends AbstractDomainObjectsExporter<Permissio
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumber(IdSequence.getInstance().nextId());
|
jsonGenerator.writeNumber(IdSequence.getInstance().nextId());
|
||||||
|
|
@ -124,13 +131,13 @@ public class PermissionsExporter extends AbstractDomainObjectsExporter<Permissio
|
||||||
if (granteeDomainObj instanceof Group) {
|
if (granteeDomainObj instanceof Group) {
|
||||||
|
|
||||||
final Group group = (Group) granteeDomainObj;
|
final Group group = (Group) granteeDomainObj;
|
||||||
final RoleCollection roles = group.getRoles();
|
final RoleCollection rolesOfGroup = group.getRoles();
|
||||||
|
|
||||||
final String privilege = domainObject.getPrivilege().getName();
|
final String privilege = domainObject.getPrivilege().getName();
|
||||||
|
|
||||||
while (roles.next()) {
|
while (rolesOfGroup.next()) {
|
||||||
|
|
||||||
final OID roleOid = roles.getRole().getOID();
|
final OID roleOid = rolesOfGroup.getRole().getOID();
|
||||||
|
|
||||||
final String permissionUuid = exportPermission(privilege,
|
final String permissionUuid = exportPermission(privilege,
|
||||||
objectOid,
|
objectOid,
|
||||||
|
|
@ -138,6 +145,19 @@ public class PermissionsExporter extends AbstractDomainObjectsExporter<Permissio
|
||||||
targetDir);
|
targetDir);
|
||||||
permissionUuids.add(permissionUuid);
|
permissionUuids.add(permissionUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final Session session = SessionManager.getSession();
|
||||||
|
final DataCollection roles = session
|
||||||
|
.retrieve(Role.BASE_DATA_OBJECT_TYPE);
|
||||||
|
roles.addEqualsFilter("implicitGroup.id", group.getID());
|
||||||
|
if (roles.next()) {
|
||||||
|
final Role role = new Role(roles.getDataObject());
|
||||||
|
final String permissionUuid = exportPermission(privilege,
|
||||||
|
granteeOid,
|
||||||
|
role.getOID(),
|
||||||
|
targetDir);
|
||||||
|
permissionUuids.add(permissionUuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return permissionUuids;
|
return permissionUuids;
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,8 @@ public class RolesExporter extends AbstractDomainObjectsExporter<Role> {
|
||||||
try (final JsonGenerator jsonGenerator = jsonFactory
|
try (final JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("roleId",
|
jsonGenerator.writeNumberField("roleId",
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,8 @@ public class UsersExporter extends AbstractDomainObjectsExporter<com.arsdigita.k
|
||||||
.createGenerator(targetFilePath.toFile(),
|
.createGenerator(targetFilePath.toFile(),
|
||||||
JsonEncoding.UTF8)) {
|
JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("partyId",
|
jsonGenerator.writeNumberField("partyId",
|
||||||
|
|
|
||||||
|
|
@ -31,16 +31,18 @@ public abstract class AbstractTasksExporter<T extends Task>
|
||||||
throws IOException;
|
throws IOException;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final List<String> exportDomainObject(final T domainObject,
|
public final List<String> exportDomainObject(final T task,
|
||||||
final Path targetDir) {
|
final Path targetDir) {
|
||||||
|
|
||||||
final String uuid = generateUuid(domainObject);
|
final String uuid = generateUuid(task);
|
||||||
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
|
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
|
||||||
|
|
||||||
final JsonFactory jsonFactory = new JsonFactory();
|
final JsonFactory jsonFactory = new JsonFactory();
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
.createGenerator(targetFilePath.toFile(), JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("taskId",
|
jsonGenerator.writeNumberField("taskId",
|
||||||
|
|
@ -50,26 +52,26 @@ public abstract class AbstractTasksExporter<T extends Task>
|
||||||
jsonGenerator.writeObjectFieldStart("label");
|
jsonGenerator.writeObjectFieldStart("label");
|
||||||
jsonGenerator.writeStringField(
|
jsonGenerator.writeStringField(
|
||||||
KernelConfig.getConfig().getDefaultLanguage(),
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
domainObject.getLabel());
|
task.getLabel());
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
jsonGenerator.writeObjectFieldStart("description");
|
jsonGenerator.writeObjectFieldStart("description");
|
||||||
jsonGenerator.writeStringField(
|
jsonGenerator.writeStringField(
|
||||||
KernelConfig.getConfig().getDefaultLanguage(),
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
domainObject.getDescription());
|
task.getDescription());
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
jsonGenerator.writeBooleanField("active", domainObject.isActive());
|
jsonGenerator.writeBooleanField("active", task.isActive());
|
||||||
|
|
||||||
jsonGenerator.writeStringField("taskState",
|
jsonGenerator.writeStringField("taskState",
|
||||||
domainObject.getStateString());
|
task.getStateString());
|
||||||
|
|
||||||
final Workflow workflow = domainObject.getWorkflow();
|
final Workflow workflow = task.getWorkflow();
|
||||||
final String workflowUuid = generateUuid(workflow);
|
final String workflowUuid = generateUuid(workflow);
|
||||||
jsonGenerator.writeStringField("workflow", workflowUuid);
|
jsonGenerator.writeStringField("workflow", workflowUuid);
|
||||||
|
|
||||||
jsonGenerator.writeArrayFieldStart("comments");
|
jsonGenerator.writeArrayFieldStart("comments");
|
||||||
final Iterator<?> comments = domainObject.getComments();
|
final Iterator<?> comments = task.getComments();
|
||||||
while (comments.hasNext()) {
|
while (comments.hasNext()) {
|
||||||
|
|
||||||
final TaskComment comment = (TaskComment) comments.next();
|
final TaskComment comment = (TaskComment) comments.next();
|
||||||
|
|
@ -78,7 +80,7 @@ public abstract class AbstractTasksExporter<T extends Task>
|
||||||
}
|
}
|
||||||
jsonGenerator.writeEndArray();
|
jsonGenerator.writeEndArray();
|
||||||
|
|
||||||
exportTaskProperties(domainObject, jsonGenerator);
|
exportTaskProperties(task, jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,14 +51,16 @@ public class TaskCommentsExporter
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField(
|
jsonGenerator.writeNumberField(
|
||||||
"taskCommentId",
|
"taskCommentId",
|
||||||
IdSequence.getInstance().nextId());
|
IdSequence.getInstance().nextId());
|
||||||
jsonGenerator.writeStringField("uuid", uuid);
|
jsonGenerator.writeStringField("uuid", uuid);
|
||||||
|
|
||||||
jsonGenerator.writeStringField("comment",
|
jsonGenerator.writeStringField("comment",
|
||||||
domainObject.getComment());
|
domainObject.getComment());
|
||||||
|
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,8 @@ public class TaskDependenciesExporter
|
||||||
try (final JsonGenerator jsonGenerator = jsonFactory
|
try (final JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("taskDependencyId",
|
jsonGenerator.writeNumberField("taskDependencyId",
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.libreccm.workflow;
|
||||||
|
|
||||||
import com.arsdigita.kernel.ACSObject;
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
import com.arsdigita.kernel.KernelConfig;
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
import com.arsdigita.workflow.simple.Workflow;
|
import com.arsdigita.workflow.simple.Workflow;
|
||||||
import com.arsdigita.workflow.simple.WorkflowTemplate;
|
import com.arsdigita.workflow.simple.WorkflowTemplate;
|
||||||
|
|
||||||
|
|
@ -55,6 +56,8 @@ public class WorkflowsExporter extends AbstractDomainObjectsExporter<Workflow> {
|
||||||
try (JsonGenerator jsonGenerator = jsonFactory
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
setPrettyPrinter(jsonGenerator);
|
||||||
|
|
||||||
jsonGenerator.writeStartObject();
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
jsonGenerator.writeNumberField("workflowId",
|
jsonGenerator.writeNumberField("workflowId",
|
||||||
|
|
@ -63,35 +66,35 @@ public class WorkflowsExporter extends AbstractDomainObjectsExporter<Workflow> {
|
||||||
jsonGenerator.writeBooleanField(
|
jsonGenerator.writeBooleanField(
|
||||||
"abstractWorkflow",
|
"abstractWorkflow",
|
||||||
domainObject instanceof WorkflowTemplate);
|
domainObject instanceof WorkflowTemplate);
|
||||||
|
|
||||||
jsonGenerator.writeObjectFieldStart("name");
|
jsonGenerator.writeObjectFieldStart("name");
|
||||||
jsonGenerator.writeStringField(
|
jsonGenerator.writeStringField(
|
||||||
KernelConfig.getConfig().getDefaultLanguage(),
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
domainObject.getDisplayName());
|
domainObject.getDisplayName());
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
jsonGenerator.writeObjectFieldStart("description");
|
jsonGenerator.writeObjectFieldStart("description");
|
||||||
jsonGenerator.writeStringField(
|
jsonGenerator.writeStringField(
|
||||||
KernelConfig.getConfig().getDefaultLanguage(),
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
domainObject.getDescription());
|
domainObject.getDescription());
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
jsonGenerator.writeStringField("state",
|
jsonGenerator.writeStringField("state",
|
||||||
domainObject.getStateString());
|
domainObject.getStateString());
|
||||||
|
|
||||||
jsonGenerator.writeBooleanField("active", domainObject.isActive());
|
jsonGenerator.writeBooleanField("active", domainObject.isActive());
|
||||||
|
|
||||||
final ACSObject object = domainObject.getObject();
|
final ACSObject object = domainObject.getObject();
|
||||||
final String objectUuid = generateUuid(object);
|
final String objectUuid = generateUuid(object);
|
||||||
jsonGenerator.writeStringField("object", objectUuid);
|
jsonGenerator.writeStringField("object", objectUuid);
|
||||||
|
|
||||||
jsonGenerator.writeEndObject();
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
|
throw new UncheckedWrapperException(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
return Arrays.asList(new String[]{uuid});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue