query = getEntityManager()
+ .createNamedQuery("ResourceType.findByUuid", ResourceType.class);
+ query.setParameter("uuid", uuid);
+
+ return getSingleResult(query);
+ }
+
/**
* Finds a {@link ResourceType} by its title.
*
diff --git a/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java b/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java
deleted file mode 100644
index 57eef45ef..000000000
--- a/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.portation;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
-import com.fasterxml.jackson.dataformat.xml.XmlMapper;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Serializable;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Abstract class responsible for ex- and importing entity-objects to several
- * file-formats. Every entity-class (e.g. DocRepo.File) needs to have its own
- * extension of this class to override the abstract methods, making it possible
- * to ex- or import that extending entity-class (e.g. DocRepo .FileMarshal).
- *
- * @author Tobias Osmers
- * @version created the 2/10/16
- * @param
- */
-public abstract class AbstractMarshaller
implements Serializable {
-
- private static final long serialVersionUID = -5796378713915256691L;
-
- private static final Logger LOGGER = LogManager.getLogger(
- AbstractMarshaller.class);
-
- private Format format;
- private String filename;
-
- // XML specifics
- ObjectMapper xmlMapper;
-
- /**
- * Prepares import and export routine. Sets the format in which the ex- or
- * import will take place and sets the name of the file exported to or
- * imported from. Furthermore it is possible to decide for or against
- * indentation in the output file.
- *
- * @param format The format of the ex-/import
- * @param filename The filename of the file exported to or imported from
- * @param indentation whether or not indentation
- */
- public void prepare(final Format format,
- String filename,
- boolean indentation) {
- this.format = format;
- this.filename = filename;
-
- switch (this.format) {
- case XML:
- // for additional configuration
- JacksonXmlModule module = new JacksonXmlModule();
- module.setDefaultUseWrapper(false);
- xmlMapper = new XmlMapper(module);
- if (indentation) {
- xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);
- }
- //xmlMapper.registerModule(new JaxbAnnotationModule());
- xmlMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
- break;
-
- default:
- break;
- }
- }
-
- /**
- * Same as {@code prepare}-methode above. Adds distinction between path and
- * filename.
- *
- * @param format The format of the ex-/import
- * @param folderPath The folderPath of the file exported to or imported
- * from
- * @param filename The filename of the file exported to or imported from
- * @param indentation whether or not indentation
- *
- public void prepare(final Format format,
- String folderPath, String filename,
- boolean indentation) {
- File file = new File(folderPath);
- if (file.exists() || file.mkdirs()) {
- prepare(format, folderPath + "/" + filename, indentation);
- }
- }*/
-
- /**
- * Export routine for lists with the same object type {@code P}. Creates a
- * new file with the prepared filename and starts, depending on the set
- * format, the export process, object after object.
- *
- * @param exportList List of equally typed objects.
- */
- public void exportList(final List
exportList) {
- File file = new File(filename);
- FileWriter fileWriter = null;
-
- try {
- fileWriter = new FileWriter(file);
- } catch (IOException e) {
- LOGGER.error("Unable to open a fileWriter for the file"
- + " with the name {}.", file.getName());
- LOGGER.error(e);
- }
- if (fileWriter != null) {
- for (P object : exportList) {
- String line = null;
-
- switch (format) {
- case XML:
- try {
- line = xmlMapper.writeValueAsString(object);
- //LOGGER.info(line);
- } catch (IOException e) {
- LOGGER.error("Unable to write objetct "
- + "of class {} as XML string with name {}.",
- object.getClass(), file.getName());
- LOGGER.error(e);
- }
- break;
-
- default:
- break;
- }
- if (line != null) {
- try {
- fileWriter.write(line);
- fileWriter.write(System.getProperty("line.separator"));
- } catch (IOException e) {
- LOGGER.error("Unable to write to file with"
- + " the name {}.", file.getName());
- LOGGER.error(e);
- }
- }
- }
- try {
- fileWriter.close();
- } catch (IOException e) {
- LOGGER.error("Unable to close a fileWriter for the"
- + " file with the name {}.", file.getName());
- LOGGER.error(e);
- }
- }
- }
-
- /**
- * Import routine for files containing objects of the same type {@code P}.
- * Creates a new list of strings to read the file line by line. Each line of
- * the list represents an object of the file. Then retrieves each object
- * from the corresponding string in the list.
- *
- * @return If error occurs true, otherwise false.
- */
- public boolean importFile() {
- boolean error = false;
- File file = new File(filename);
-
- List lines = null;
- try {
- lines = Files.readAllLines(file.toPath());
- } catch (IOException e) {
- LOGGER.error("Unable to read lines of the file with " + "name {}.",
- file.getName());
- LOGGER.error(e);
- error = true;
- }
-
- List objects = new ArrayList<>();
- if (lines != null) {
- int emptyObjects = 0;
- for (String line : lines) {
- P object = null;
- switch (format) {
- case XML:
- try {
- object = xmlMapper.readValue(line, getObjectClass());
- } catch (IOException e) {
- LOGGER.error("Unable to read objects "
- + "from XML line:\n \"{}\"", line);
- LOGGER.error("Exception: ", e);
- error = true;
- }
- break;
-
- default:
- break;
- }
-
- if (object != null) {
- insertIntoDb(object);
- objects.add(object);
- } else {
- emptyObjects += 1;
- LOGGER.info("Count of empty objects: {}", emptyObjects);
- error = true;
- }
- }
- }
- return error;
- }
-
- /**
- * Abstract method to get the object class to determine the type {@code P}.
- *
- * @return The object class
- */
- protected abstract Class
getObjectClass();
-
- /**
- * Abstract method to insert every imported object into the database.
- *
- * @param portableObject An object of type {@code P}
- */
- protected abstract void insertIntoDb(P portableObject);
-
-}
diff --git a/ccm-core/src/main/java/org/libreccm/portation/Format.java b/ccm-core/src/main/java/org/libreccm/portation/Format.java
deleted file mode 100644
index 31277e9ae..000000000
--- a/ccm-core/src/main/java/org/libreccm/portation/Format.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.portation;
-
-/**
- * @author Tobias Osmers
- * @version created the 03.02.2016
- */
-public enum Format {
- XML
-}
diff --git a/ccm-core/src/main/java/org/libreccm/portation/Marshaller.java b/ccm-core/src/main/java/org/libreccm/portation/Marshaller.java
deleted file mode 100644
index 2a528331b..000000000
--- a/ccm-core/src/main/java/org/libreccm/portation/Marshaller.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.portation;
-
-import org.libreccm.core.Identifiable;
-
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Instance;
-import javax.enterprise.util.AnnotationLiteral;
-import javax.faces.bean.RequestScoped;
-import javax.inject.Inject;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Central class for exporting and importing objects of this system stored in
- * the database. Retrieves all available implementations of
- * {@link AbstractMarshaller} using CDI. The implementations have to be CDI
- * beans of course. Also they must be annotated with the {@link Marshals}
- * annotation.
- *
- * @author Tobias Osmers
- * @version created the 03.02.2016
- */
-@RequestScoped
-@Deprecated /*needs to be reviewed when integrating import/export in gui*/
-public class Marshaller implements Serializable {
-
- private static final long serialVersionUID = 6769177147719834999L;
-
- @Inject
- @Any
- private Instance> marshallerInstances;
-
- // Maps lists with objects of the same type to their typ.
- // The type represents the key, the lists the values
- private Map, List> classListMap;
-
- /**
- * Main export method. Organizes the objects into list of the same type
- * and calls a second export method for each list.
- *
- * @param objects All objects to be exported
- * @param format The export style/format e.g. CSV or JSON
- * @param filename The name of the file to be exported to
- */
- public void exportObjects(List objects,
- Format format,
- String filename) {
- putObjects(objects);
-
- for (Map.Entry, List>
- classListEntry : classListMap.entrySet()) {
- exportList(classListEntry.getValue(), classListEntry.getKey(),
- format, filename);
- }
- }
-
- /**
- * Organizes a list of different {@link Identifiable} objects into a map
- * assigning lists of the same type to their type as values to a key. The
- * type which all objects of that list have in common is their key.
- * That opens the possibility of being certain of the objects types in
- * the list. Guarantied through this implementation.
- *
- * @param objects list of all objects being organized
- */
- private void putObjects(List objects) {
- for (Portable object : objects) {
- Class extends Portable> type = object.getClass();
-
- if (classListMap.containsKey(type)) {
- classListMap.get(type).add(object);
- } else {
- List values = new ArrayList<>();
- values.add(object);
- classListMap.put(type, values);
- }
- }
- }
-
- /**
- * Selects the right marshaller for the given type, initializes that
- * marshaller for the given export wishes and calls the export method of
- * that marshaller upon the given list of same typed objects.
- *
- * Naming convention for the export file name:
- * __.
- *
- * @param list List of objects to be exported of the same type
- * @param type The class of the type
- * @param format The export style
- * @param filename The filename
- * @param The type of the current marshaller
- */
- private
void exportList(List
list,
- Class extends P> type,
- Format format,
- String filename)
- throws IllegalArgumentException {
-
- final Instance>
- marshallerInstance = marshallerInstances.select(new
- MarshalsLiteral(type));
-
- if (marshallerInstance.isUnsatisfied()) {
- //If there are no marshallers we have a problem...
- throw new IllegalArgumentException(String.format(
- "No marshallers for \"%s\" found.", type.getName()));
- } else if (marshallerInstance.isAmbiguous()) {
- //If there is more than one marshaller something is wrong...
- throw new IllegalArgumentException(String.format(
- "More than one marshaller for \"%s\" found.", type
- .getName()));
- } else {
- // Get the marshaller for this list and call the export method.
- final Iterator>
- iterator = marshallerInstance.iterator();
- @SuppressWarnings("unchecked")
- final AbstractMarshaller marshaller = (AbstractMarshaller
)
- iterator.next();
-
- marshaller.prepare(format, filename + "__" + type.toString(),
- false);
- marshaller.exportList(list);
- }
- }
-
- /**
- * Selects the right marshaller for each file being imported depending on
- * the filename. Therefore the filename has to contain the name of the
- * class this file stores objects for. The marshaller will then be
- * initialized and be called for importing the objects contained in the
- * file being processed.
- *
- * Naming convention for the import file name:
- * __.
- *
- * @param filenames List of filenames for the files wishing to be imported
- * @param format The import style
- * @param The type of the current marshaller
- */
- public
void importFiles(List filenames,
- Format format)
- throws IllegalArgumentException {
-
- for (String filename : filenames) {
- String[] splitFilename = filename.split("__");
- String className =
- splitFilename[splitFilename.length].split(".")[0];
-
- try {
- Class clazz = Class.forName(className);
- @SuppressWarnings("unchecked")
- Class type = clazz.asSubclass(Portable.class);
-
- final Instance>
- marshallerInstance = marshallerInstances.select(new
- MarshalsLiteral(type));
-
- if (marshallerInstance.isUnsatisfied()) {
- //If there are no marshallers we have a problem...
- throw new IllegalArgumentException(String.format(
- "No marshallers for \"%s\" found.", type.getName()));
- } else if (marshallerInstance.isAmbiguous()) {
- //If there is more than one marshaller something is wrong...
- throw new IllegalArgumentException(String.format(
- "More than one marshaller for \"%s\" found.", type
- .getName()));
- } else {
- // Get the marshaller for this list and call the export method.
- final Iterator>
- iterator = marshallerInstance.iterator();
- @SuppressWarnings("unchecked")
- final AbstractMarshaller marshaller = (AbstractMarshaller
)
- iterator.next();
-
- marshaller.prepare(format, filename, false);
- marshaller.importFile();
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
-
- /**
- * {@link AnnotationLiteral} used for filtering the available marshallers.
- */
- private class MarshalsLiteral extends AnnotationLiteral
- implements Marshals {
-
- private static final long serialVersionUID = -8093783826632252875L;
- private final Class extends Portable> entityClass;
-
- public MarshalsLiteral(Class extends Portable> entityClass) {
- this.entityClass = entityClass;
- }
-
- @Override
- public Class extends Portable> value() {
- return entityClass;
- }
- }
-}
-
diff --git a/ccm-core/src/main/java/org/libreccm/portation/Marshals.java b/ccm-core/src/main/java/org/libreccm/portation/Marshals.java
deleted file mode 100644
index 55873bb6d..000000000
--- a/ccm-core/src/main/java/org/libreccm/portation/Marshals.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.portation;
-
-import org.libreccm.core.Identifiable;
-
-import javax.inject.Qualifier;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Qualifier annotation for implementations of {@link AbstractMarshaller}. The
- * value is the implementation of {@link Identifiable} for which the annotated
- * {@link AbstractMarshaller} implementation exports and imports its instances.
- *
- * @author Tobias Osmers
- * @version created the 2/24/16
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Qualifier
-@Target({ElementType.TYPE,
- ElementType.PARAMETER,
- ElementType.FIELD,
- ElementType.METHOD})
-public @interface Marshals {
-
- Class extends Portable> value();
-}
diff --git a/ccm-core/src/main/java/org/libreccm/portation/Portable.java b/ccm-core/src/main/java/org/libreccm/portation/Portable.java
deleted file mode 100644
index a27d3632c..000000000
--- a/ccm-core/src/main/java/org/libreccm/portation/Portable.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.portation;
-
-/**
- * Interface for the ex-/import routine. With this interface any object class
- * can declare itself ex- or im{@code portable}.
- *
- * @author new IllegalArgumentException(String
- .format("No assignable tasks with uuid %s in the " +
- "database.", id.key.toString())));
+ .findByUuid(id.key.toString())
+ .orElseThrow(() -> new IllegalArgumentException(String
+ .format("No assignable tasks with uuid %s in the " + "database.",
+ id.key.toString())));
}
@Override
@@ -64,4 +65,5 @@ public class AssignableTaskIdResolver implements Serializable,
public boolean canUseFor(final ObjectIdResolver resolverType) {
return resolverType instanceof AssignableTaskIdResolver;
}
+
}
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskMarshaller.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java
similarity index 65%
rename from ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskMarshaller.java
rename to ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java
index bccf07124..e7db689c1 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskMarshaller.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java
@@ -18,33 +18,38 @@
*/
package org.libreccm.workflow;
-import org.libreccm.portation.AbstractMarshaller;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.DependsOn;
+import org.libreccm.imexport.Processes;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
/**
- * @author Tobias Osmers
+ * @author Jens Pelzetter
+ *
*/
@RequestScoped
-@Marshals(AssignableTask.class)
-public class AssignableTaskMarshaller extends AbstractMarshaller {
- private static final long serialVersionUID = -2787744872933470651L;
+@Processes(AssignableTask.class)
+@DependsOn(Workflow.class)
+public class AssignableTaskImExporter
+ extends AbstractEntityImExporter {
@Inject
private AssignableTaskRepository assignableTaskRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return AssignableTask.class;
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
- protected void insertIntoDb(AssignableTask portableObject) {
- assignableTaskRepository.save(portableObject);
+ protected void saveImportedEntity(final AssignableTask entity) {
+
+ assignableTaskRepository.save(entity);
}
+
}
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java
index ecd4b1cea..5fc891841 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java
@@ -20,15 +20,25 @@ package org.libreccm.workflow;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference;
-import org.libreccm.portation.Portable;
import org.libreccm.security.Role;
-import javax.persistence.*;
import java.io.Serializable;
import java.util.Objects;
import static org.libreccm.core.CoreConstants.DB_SCHEMA;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import org.libreccm.imexport.Exportable;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
/**
* Represents the assignment of a {@link AssignableTask} to a {@link Role}.
*
@@ -36,9 +46,9 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
*/
@Entity
@Table(name = "WORKFLOW_TASK_ASSIGNMENTS", schema = DB_SCHEMA)
-@JsonIdentityInfo(generator = TaskAssignmentIdGenerator.class,
+@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
property = "customAssignId")
-public class TaskAssignment implements Serializable, Portable {
+public class TaskAssignment implements Serializable, Exportable {
private static final long serialVersionUID = -4427537363301565707L;
@@ -50,6 +60,9 @@ public class TaskAssignment implements Serializable, Portable {
@GeneratedValue(strategy = GenerationType.AUTO)
private long taskAssignmentId;
+ @Column(name = "UUID", unique = true, nullable = false)
+ private String uuid;
+
/**
* The task.
*/
@@ -73,6 +86,16 @@ public class TaskAssignment implements Serializable, Portable {
protected void setTaskAssignmentId(final long taskAssignmentId) {
this.taskAssignmentId = taskAssignmentId;
}
+
+ @Override
+ public String getUuid() {
+ return uuid;
+ }
+
+ protected void setUuid(final String uuid) {
+ this.uuid = uuid;
+ }
+
public AssignableTask getTask() {
return task;
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentIdGenerator.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentIdGenerator.java
deleted file mode 100644
index a1dd22b29..000000000
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentIdGenerator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.workflow;
-
-import com.fasterxml.jackson.annotation.ObjectIdGenerator;
-
-/**
- * @author Tobias Osmers
+ * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(TaskAssignment.class)
-public class TaskAssignmentMarshaller extends AbstractMarshaller {
- private static final long serialVersionUID = 3717946510122661215L;
+@Processes(TaskAssignment.class)
+@DependsOn({AssignableTask.class})
+public class TaskAssignmentMarshaller
+ extends AbstractEntityImExporter {
@Inject
private EntityManager entityManager;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
+
return TaskAssignment.class;
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
- protected void insertIntoDb(TaskAssignment portableObject) {
- if (portableObject.getTaskAssignmentId() == 0) {
- entityManager.persist(portableObject);
- } else {
- entityManager.merge(portableObject);
- }
+ protected void saveImportedEntity(final TaskAssignment entity) {
+
+ entityManager.persist(entity);
+
}
}
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskComment.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskComment.java
index b8a77d345..dcc2907fb 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskComment.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskComment.java
@@ -24,14 +24,27 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import org.hibernate.annotations.Type;
import org.libreccm.core.CoreConstants;
import org.libreccm.core.Identifiable;
-import org.libreccm.portation.Portable;
+import org.libreccm.imexport.Exportable;
import org.libreccm.security.User;
-import javax.persistence.*;
import javax.validation.constraints.NotNull;
+
import java.io.Serializable;
import java.util.Objects;
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
/**
* A comment for a task. Comments are intended for other users, for example to
* inform them about problems etc. with the object.
@@ -48,7 +61,7 @@ import java.util.Objects;
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = TaskCommentIdResolver.class,
property = "uuid")
-public class TaskComment implements Identifiable, Serializable, Portable {
+public class TaskComment implements Identifiable, Serializable, Exportable {
private static final long serialVersionUID = 3842991529698351698L;
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskCommentMarshaller.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskCommentImExporter.java
similarity index 61%
rename from ccm-core/src/main/java/org/libreccm/workflow/TaskCommentMarshaller.java
rename to ccm-core/src/main/java/org/libreccm/workflow/TaskCommentImExporter.java
index 5b56b4bd2..0105fb960 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskCommentMarshaller.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskCommentImExporter.java
@@ -18,31 +18,34 @@
*/
package org.libreccm.workflow;
-import org.libreccm.portation.AbstractMarshaller;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.DependsOn;
+import org.libreccm.imexport.Processes;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
+import javax.transaction.Transactional;
/**
- * @author Tobias Osmers
+ * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(TaskComment.class)
-public class TaskCommentMarshaller extends AbstractMarshaller {
- private static final long serialVersionUID = -3259560130798503811L;
+@Processes(TaskComment.class)
+@DependsOn(AssignableTask.class)
+public class TaskCommentImExporter extends AbstractEntityImExporter {
@Inject
private TaskCommentRepository taskCommentRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return TaskComment.class;
}
@Override
- protected void insertIntoDb(TaskComment portableObject) {
- taskCommentRepository.save(portableObject);
+ @Transactional(Transactional.TxType.REQUIRED)
+ protected void saveImportedEntity(TaskComment entity) {
+ taskCommentRepository.save(entity);
}
}
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskDependency.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskDependency.java
index 46760fc18..effbb6ad3 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskDependency.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskDependency.java
@@ -20,8 +20,9 @@ package org.libreccm.workflow;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import org.libreccm.core.CoreConstants;
-import org.libreccm.portation.Portable;
+import org.libreccm.imexport.Exportable;
import java.io.Serializable;
import java.util.Objects;
@@ -41,9 +42,9 @@ import javax.persistence.Table;
*/
@Entity
@Table(name = "WORKFLOW_TASK_DEPENDENCIES", schema = CoreConstants.DB_SCHEMA)
-@JsonIdentityInfo(generator = TaskDependencyIdGenerator.class,
- property = "customDepId")
-public class TaskDependency implements Serializable, Portable {
+@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
+ property = "uuid")
+public class TaskDependency implements Serializable, Exportable {
private static final long serialVersionUID = -4383255770131633943L;
@@ -52,6 +53,9 @@ public class TaskDependency implements Serializable, Portable {
@GeneratedValue(strategy = GenerationType.AUTO)
private long taskDependencyId;
+ @Column(name = "uuid", unique = true, nullable = false)
+ private String uuid;
+
@ManyToOne
@JoinColumn(name = "BLOCKED_TASK_ID")
@JsonIdentityReference(alwaysAsId = true)
@@ -66,10 +70,19 @@ public class TaskDependency implements Serializable, Portable {
return taskDependencyId;
}
- public void setTaskDependencyId(final long taskDependencyId) {
+ protected void setTaskDependencyId(final long taskDependencyId) {
this.taskDependencyId = taskDependencyId;
}
+ @Override
+ public String getUuid() {
+ return uuid;
+ }
+
+ protected void setUuid(final String uuid) {
+ this.uuid = uuid;
+ }
+
public Task getBlockedTask() {
return blockedTask;
}
@@ -128,7 +141,7 @@ public class TaskDependency implements Serializable, Portable {
public final String toString() {
return toString("");
}
-
+
public String toString(final String data) {
return String.format("%s{ "
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskDependencyIdGenerator.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskDependencyIdGenerator.java
deleted file mode 100644
index 94b51aa1f..000000000
--- a/ccm-core/src/main/java/org/libreccm/workflow/TaskDependencyIdGenerator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2015 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.libreccm.workflow;
-
-import com.fasterxml.jackson.annotation.ObjectIdGenerator;
-
-/**
- * @author Tobias Osmers
* @version created on 3/23/17
*/
@RequestScoped
public class WorkflowIdResolver implements Serializable, ObjectIdResolver {
+
private static final long serialVersionUID = 1951611806946125510L;
@Override
@@ -45,13 +46,14 @@ public class WorkflowIdResolver implements Serializable, ObjectIdResolver {
public Object resolveId(final ObjectIdGenerator.IdKey id) {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final WorkflowRepository workflowRepository = cdiUtil
- .findBean(WorkflowRepository.class);
+ .findBean(WorkflowRepository.class);
return workflowRepository
- .findByUuid(id.key.toString())
- .orElseThrow(() -> new IllegalArgumentException(String
- .format("No workflows with uuid %s in the " +
- "database.", id.key.toString())));
+ .findByUuid(id.key.toString())
+ .orElseThrow(() -> new IllegalArgumentException(String
+ .format("No workflows with uuid %s in the "
+ + "database.",
+ id.key.toString())));
}
@Override
@@ -63,4 +65,5 @@ public class WorkflowIdResolver implements Serializable, ObjectIdResolver {
public boolean canUseFor(final ObjectIdResolver resolverType) {
return resolverType instanceof WorkflowIdResolver;
}
+
}
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowMarshaller.java b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowImExporter.java
similarity index 66%
rename from ccm-core/src/main/java/org/libreccm/workflow/WorkflowMarshaller.java
rename to ccm-core/src/main/java/org/libreccm/workflow/WorkflowImExporter.java
index 9c284d603..c0ce60c70 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowMarshaller.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowImExporter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 LibreCCM Foundation.
+ * Copyright (C) 2018 LibreCCM Foundation.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -18,33 +18,35 @@
*/
package org.libreccm.workflow;
-import org.libreccm.portation.AbstractMarshaller;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.Processes;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
/**
- * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(Workflow.class)
-public class WorkflowMarshaller extends AbstractMarshaller {
- private static final long serialVersionUID = 9126827334328274556L;
+@Processes(Workflow.class)
+public class WorkflowImExporter extends AbstractEntityImExporter {
@Inject
private WorkflowRepository workflowRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
+
return Workflow.class;
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
- protected void insertIntoDb(Workflow portableObject) {
- workflowRepository.save(portableObject);
+ protected void saveImportedEntity(final Workflow entity) {
+
+ workflowRepository.save(entity);
}
+
}
diff --git a/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_34_add_resourcetype_uuid.sql b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_34_add_resourcetype_uuid.sql
new file mode 100644
index 000000000..36e608090
--- /dev/null
+++ b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_34_add_resourcetype_uuid.sql
@@ -0,0 +1,10 @@
+alter table CCM_CORE.RESOURCE_TYPES
+ add column UUID varchar(255) not null;
+
+alter table CCM_CORE.RESOURCE_TYPES
+ add constraint UK_ioax2ix2xmq3nw7el5k6orggb unique (UUID);
+
+
+
+
+
diff --git a/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_37__add_task_assignment_uuid.sql b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_37__add_task_assignment_uuid.sql
new file mode 100644
index 000000000..2507a4cff
--- /dev/null
+++ b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_37__add_task_assignment_uuid.sql
@@ -0,0 +1,11 @@
+alter table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS
+ add column UUID varchar(255) not null;
+
+alter table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS
+ add constraint UK_gv93k167pe9qy3go9vjau1q2t unique (UUID);
+
+
+
+
+
+
diff --git a/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_38_add_task_dependency_uuid.sql b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_38_add_task_dependency_uuid.sql
new file mode 100644
index 000000000..7d71aa244
--- /dev/null
+++ b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/h2/V7_0_0_38_add_task_dependency_uuid.sql
@@ -0,0 +1,12 @@
+alter table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES
+ add column UUID varchar(255) not null;
+
+alter table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES
+ add constraint UK_787va2ep8ucoul29qgsoaxnub unique (UUID);
+
+
+
+
+
+
+
diff --git a/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/pgsql/V7_0_0_34_add_resourcetype_uuid.sql b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/pgsql/V7_0_0_34_add_resourcetype_uuid.sql
new file mode 100644
index 000000000..36e608090
--- /dev/null
+++ b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm_core/pgsql/V7_0_0_34_add_resourcetype_uuid.sql
@@ -0,0 +1,10 @@
+alter table CCM_CORE.RESOURCE_TYPES
+ add column UUID varchar(255) not null;
+
+alter table CCM_CORE.RESOURCE_TYPES
+ add constraint UK_ioax2ix2xmq3nw7el5k6orggb unique (UUID);
+
+
+
+
+
diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java
index 8c22174ed..128b2e9cc 100644
--- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java
@@ -142,7 +142,6 @@ public class CategoryManagerTest {
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
.addAsLibraries(getModuleDependencies())
diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java
index 9ebf1852a..f45902272 100644
--- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryRepositoryTest.java
@@ -128,7 +128,6 @@ public class CategoryRepositoryTest {
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
.addAsLibraries(getModuleDependencies())
diff --git a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java
index 8444c3ae6..a81ab8fdb 100644
--- a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java
@@ -110,7 +110,6 @@ public class ConfigurationManagerTest {
.getPackage())
.addPackage(org.libreccm.l10n.LocalizedString.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addPackage(org.libreccm.security.Permission.class.getPackage())
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
diff --git a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
index e480c7d24..a1c7c1999 100644
--- a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
@@ -128,8 +128,6 @@ public class CcmObjectRepositoryTest {
.getPackage())
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
-// .addClass(org.libreccm.portation.Portable.class)
- .addPackage(org.libreccm.portation.Portable.class.getPackage())
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
.addAsLibraries(getModuleDependencies())
diff --git a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java
index 0c55ce931..06a40d574 100644
--- a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java
@@ -129,7 +129,6 @@ public class AuthorizationInterceptorTest {
.addPackage(com.arsdigita.xml.formatters.DateTimeFormatter.class
.getPackage())
.addClass(com.arsdigita.kernel.KernelConfig.class)
- .addClass(org.libreccm.portation.Portable.class)
.addClass(com.arsdigita.util.UncheckedWrapperException.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java
index 9d3dc2524..87468e25a 100644
--- a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java
@@ -132,7 +132,6 @@ public class ChallengeManagerTest {
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
.addAsLibraries(getModuleDependencies())
diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java
index a6b327a53..9d720ddf7 100644
--- a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java
@@ -123,7 +123,6 @@ public class GroupManagerTest {
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java
index 57e83946e..90cd195be 100644
--- a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java
@@ -123,7 +123,6 @@ public class GroupRepositoryTest {
.getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("configs/shiro.ini", "shiro.ini")
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java
index fb4366fcd..fc1e38f6e 100644
--- a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java
@@ -127,7 +127,6 @@ public class OneTimeAuthManagerTest {
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("configs/shiro.ini", "shiro.ini")
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java
index db18f7805..2e2ee52a3 100644
--- a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java
@@ -128,7 +128,6 @@ public class PartyRepositoryTest {
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("configs/shiro.ini", "shiro.ini")
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java
index 3d2c9cd4e..0b0307490 100644
--- a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java
@@ -131,7 +131,6 @@ public class PermissionCheckerTest {
.getPackage())
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java
index c68b2c827..449b6eb94 100644
--- a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java
@@ -132,7 +132,6 @@ public class PermissionManagerTest {
addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java
index 2bb96ccf8..b43ea4986 100644
--- a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java
@@ -120,7 +120,6 @@ public class RoleManagerTest {
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java
index b25a0dcb1..77d160796 100644
--- a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java
@@ -129,7 +129,6 @@ public class RoleRepositoryTest {
getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("configs/shiro.ini", "shiro.ini")
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java
index f9325fa62..6ea243b0e 100644
--- a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java
@@ -147,7 +147,6 @@ public class SecuredCollectionTest {
.addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage())
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java
index f25b6bbb8..33668043a 100644
--- a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java
@@ -149,7 +149,6 @@ public class SecuredIteratorTest {
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
.addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java
index 879970777..d616d9a06 100644
--- a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java
@@ -121,7 +121,6 @@ public class ShiroTest {
.addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage())
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addClass(org.libreccm.security.authorization.LabBean.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java
index 9d64908a6..2430c70a2 100644
--- a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java
@@ -123,7 +123,6 @@ public class UserManagerTest {
.addPackage(com.arsdigita.kernel.security.SecurityConfig.class
.getPackage())
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
diff --git a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java
index 377fc5c1a..40145fd57 100644
--- a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java
@@ -128,7 +128,6 @@ public class UserRepositoryTest {
.addClass(com.arsdigita.kernel.security.SecurityConfig.class)
.addClass(com.arsdigita.kernel.KernelConfig.class)
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addAsLibraries(getModuleDependencies())
.addAsResource("configs/shiro.ini", "shiro.ini")
.addAsResource("test-persistence.xml",
diff --git a/ccm-core/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_core_schema.sql b/ccm-core/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_core_schema.sql
index 236fa516a..c9af1d06e 100644
--- a/ccm-core/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_core_schema.sql
+++ b/ccm-core/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_core_schema.sql
@@ -4,7 +4,6 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create schema CCM_CORE;
-
create table CCM_CORE.APPLICATIONS (
APPLICATION_TYPE varchar(1024) not null,
PRIMARY_URL varchar(1024) not null,
@@ -40,6 +39,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CATEGORY_INDEX boolean,
OBJECT_ORDER bigint,
TYPE varchar(255),
+ UUID varchar(255) not null,
OBJECT_ID bigint,
CATEGORY_ID bigint,
primary key (CATEGORIZATION_ID)
@@ -123,6 +123,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CONTEXT varchar(255),
DOMAIN_ORDER bigint,
OWNER_ORDER bigint,
+ UUID varchar(255) not null,
domain_OBJECT_ID bigint not null,
owner_OBJECT_ID bigint not null,
primary key (OWNERSHIP_ID)
@@ -297,6 +298,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.GROUP_MEMBERSHIPS (
MEMBERSHIP_ID bigint not null,
+ UUID varchar(255) not null,
GROUP_ID bigint,
MEMBER_ID bigint,
primary key (MEMBERSHIP_ID)
@@ -452,6 +454,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CREATION_IP varchar(255),
GRANTED_PRIVILEGE varchar(255),
INHERITED boolean,
+ UUID varchar(255) not null,
CREATION_USER_ID bigint,
GRANTEE_ID bigint,
INHERITED_FROM_ID bigint,
@@ -510,6 +513,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
RESOURCE_TYPE_ID bigint not null,
SINGLETON boolean,
TITLE varchar(254) not null,
+ UUID varchar(255) not null,
EMBEDDED_VIEW boolean,
FULL_PAGE_VIEW boolean,
WORKSPACE_APP boolean,
@@ -533,6 +537,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.ROLE_MEMBERSHIPS (
MEMBERSHIP_ID bigint not null,
+ UUID varchar(255) not null,
MEMBER_ID bigint,
ROLE_ID bigint,
primary key (MEMBERSHIP_ID)
@@ -543,11 +548,11 @@ drop sequence if exists HIBERNATE_SEQUENCE;
SETTING_ID bigint not null,
CONFIGURATION_CLASS varchar(512) not null,
NAME varchar(512) not null,
- SETTING_VALUE_LONG bigint,
- SETTING_VALUE_BIG_DECIMAL decimal(19,2),
SETTING_VALUE_BOOLEAN boolean,
- SETTING_VALUE_DOUBLE double,
+ SETTING_VALUE_LONG bigint,
SETTING_VALUE_STRING varchar(1024),
+ SETTING_VALUE_DOUBLE double,
+ SETTING_VALUE_BIG_DECIMAL decimal(19,2),
primary key (SETTING_ID)
);
@@ -708,6 +713,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS (
TASK_ASSIGNMENT_ID bigint not null,
+ UUID varchar(255) not null,
ROLE_ID bigint,
TASK_ID bigint,
primary key (TASK_ASSIGNMENT_ID)
@@ -724,6 +730,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES (
TASK_DEPENDENCY_ID bigint not null,
+ uuid varchar(255) not null,
BLOCKED_TASK_ID bigint,
BLOCKING_TASK_ID bigint,
primary key (TASK_DEPENDENCY_ID)
@@ -764,6 +771,9 @@ drop sequence if exists HIBERNATE_SEQUENCE;
primary key (WORKFLOW_ID)
);
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint UK_da7jus3wn1tr8poyaw9btxbrc unique (UUID);
+
alter table CCM_CORE.CATEGORY_DOMAINS
add constraint UK_mb1riernf8a88u3mwl0bgfj8y unique (DOMAIN_KEY);
@@ -776,6 +786,12 @@ drop sequence if exists HIBERNATE_SEQUENCE;
alter table CCM_CORE.CCM_ROLES
add constraint UK_rfmsjqsq6kagolsod3ufkugll unique (UUID);
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint UK_j86gai9740v9hshascbsboudb unique (UUID);
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint UK_kkdoia60bmiwhhdru169p3n9g unique (UUID);
+
alter table CCM_CORE.HOSTS
add constraint UK9ramlv6uxwt13v0wj7q0tucsx unique (SERVER_NAME, SERVER_PORT);
@@ -785,15 +801,30 @@ drop sequence if exists HIBERNATE_SEQUENCE;
alter table CCM_CORE.PARTIES
add constraint UK_1hv061qace2mn4loroe3fwdel unique (UUID);
+ alter table CCM_CORE.PERMISSIONS
+ add constraint UK_p50se7rdexv7xnkiqsl6ijyti unique (UUID);
+
+ alter table CCM_CORE.RESOURCE_TYPES
+ add constraint UK_ioax2ix2xmq3nw7el5k6orggb unique (UUID);
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint UK_82wdq214bfs99eii71fp50s97 unique (UUID);
+
alter table CCM_CORE.SETTINGS
add constraint UK5whinfxdaepqs09e5ia9y71uk unique (CONFIGURATION_CLASS, NAME);
alter table CCM_CORE.SITES
add constraint UK_kou1h4y4st2m173he44yy8grx unique (DOMAIN_OF_SITE);
+ alter table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS
+ add constraint UK_gv93k167pe9qy3go9vjau1q2t unique (UUID);
+
alter table CCM_CORE.WORKFLOW_TASK_COMMENTS
add constraint UK_4nnedf08odyjxalfkg16fmjoi unique (UUID);
+ alter table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES
+ add constraint UK_787va2ep8ucoul29qgsoaxnub unique (uuid);
+
alter table CCM_CORE.WORKFLOW_TASKS
add constraint UK_2u6ruatxij8wfojl8a1eigqqd unique (UUID);
diff --git a/ccm-core/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_core_schema.sql b/ccm-core/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_core_schema.sql
index c153b00e0..5fbd3e0df 100644
--- a/ccm-core/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_core_schema.sql
+++ b/ccm-core/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_core_schema.sql
@@ -2,6 +2,8 @@ drop schema if exists CCM_CORE cascade;
drop sequence if exists HIBERNATE_SEQUENCE;
+create schema CCM_CORE;
+
create table CCM_CORE.APPLICATIONS (
APPLICATION_TYPE varchar(1024) not null,
PRIMARY_URL varchar(1024) not null,
@@ -37,6 +39,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CATEGORY_INDEX boolean,
OBJECT_ORDER int8,
TYPE varchar(255),
+ UUID varchar(255) not null,
OBJECT_ID int8,
CATEGORY_ID int8,
primary key (CATEGORIZATION_ID)
@@ -120,6 +123,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CONTEXT varchar(255),
DOMAIN_ORDER int8,
OWNER_ORDER int8,
+ UUID varchar(255) not null,
domain_OBJECT_ID int8 not null,
owner_OBJECT_ID int8 not null,
primary key (OWNERSHIP_ID)
@@ -294,6 +298,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.GROUP_MEMBERSHIPS (
MEMBERSHIP_ID int8 not null,
+ UUID varchar(255) not null,
GROUP_ID int8,
MEMBER_ID int8,
primary key (MEMBERSHIP_ID)
@@ -449,6 +454,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
CREATION_IP varchar(255),
GRANTED_PRIVILEGE varchar(255),
INHERITED boolean,
+ UUID varchar(255) not null,
CREATION_USER_ID int8,
GRANTEE_ID int8,
INHERITED_FROM_ID int8,
@@ -507,6 +513,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
RESOURCE_TYPE_ID int8 not null,
SINGLETON boolean,
TITLE varchar(254) not null,
+ UUID varchar(255) not null,
EMBEDDED_VIEW boolean,
FULL_PAGE_VIEW boolean,
WORKSPACE_APP boolean,
@@ -530,6 +537,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.ROLE_MEMBERSHIPS (
MEMBERSHIP_ID int8 not null,
+ UUID varchar(255) not null,
MEMBER_ID int8,
ROLE_ID int8,
primary key (MEMBERSHIP_ID)
@@ -540,11 +548,11 @@ drop sequence if exists HIBERNATE_SEQUENCE;
SETTING_ID int8 not null,
CONFIGURATION_CLASS varchar(512) not null,
NAME varchar(512) not null,
- SETTING_VALUE_LONG int8,
- SETTING_VALUE_BIG_DECIMAL numeric(19, 2),
SETTING_VALUE_BOOLEAN boolean,
- SETTING_VALUE_DOUBLE float8,
+ SETTING_VALUE_LONG int8,
SETTING_VALUE_STRING varchar(1024),
+ SETTING_VALUE_DOUBLE float8,
+ SETTING_VALUE_BIG_DECIMAL numeric(19, 2),
primary key (SETTING_ID)
);
@@ -705,6 +713,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS (
TASK_ASSIGNMENT_ID int8 not null,
+ UUID varchar(255) not null,
ROLE_ID int8,
TASK_ID int8,
primary key (TASK_ASSIGNMENT_ID)
@@ -721,6 +730,7 @@ drop sequence if exists HIBERNATE_SEQUENCE;
create table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES (
TASK_DEPENDENCY_ID int8 not null,
+ uuid varchar(255) not null,
BLOCKED_TASK_ID int8,
BLOCKING_TASK_ID int8,
primary key (TASK_DEPENDENCY_ID)
@@ -761,6 +771,9 @@ drop sequence if exists HIBERNATE_SEQUENCE;
primary key (WORKFLOW_ID)
);
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint UK_da7jus3wn1tr8poyaw9btxbrc unique (UUID);
+
alter table CCM_CORE.CATEGORY_DOMAINS
add constraint UK_mb1riernf8a88u3mwl0bgfj8y unique (DOMAIN_KEY);
@@ -773,6 +786,12 @@ drop sequence if exists HIBERNATE_SEQUENCE;
alter table CCM_CORE.CCM_ROLES
add constraint UK_rfmsjqsq6kagolsod3ufkugll unique (UUID);
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint UK_j86gai9740v9hshascbsboudb unique (UUID);
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint UK_kkdoia60bmiwhhdru169p3n9g unique (UUID);
+
alter table CCM_CORE.HOSTS
add constraint UK9ramlv6uxwt13v0wj7q0tucsx unique (SERVER_NAME, SERVER_PORT);
@@ -782,15 +801,30 @@ drop sequence if exists HIBERNATE_SEQUENCE;
alter table CCM_CORE.PARTIES
add constraint UK_1hv061qace2mn4loroe3fwdel unique (UUID);
+ alter table CCM_CORE.PERMISSIONS
+ add constraint UK_p50se7rdexv7xnkiqsl6ijyti unique (UUID);
+
+ alter table CCM_CORE.RESOURCE_TYPES
+ add constraint UK_ioax2ix2xmq3nw7el5k6orggb unique (UUID);
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint UK_82wdq214bfs99eii71fp50s97 unique (UUID);
+
alter table CCM_CORE.SETTINGS
add constraint UK5whinfxdaepqs09e5ia9y71uk unique (CONFIGURATION_CLASS, NAME);
alter table CCM_CORE.SITES
add constraint UK_kou1h4y4st2m173he44yy8grx unique (DOMAIN_OF_SITE);
+ alter table CCM_CORE.WORKFLOW_TASK_ASSIGNMENTS
+ add constraint UK_gv93k167pe9qy3go9vjau1q2t unique (UUID);
+
alter table CCM_CORE.WORKFLOW_TASK_COMMENTS
add constraint UK_4nnedf08odyjxalfkg16fmjoi unique (UUID);
+ alter table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES
+ add constraint UK_787va2ep8ucoul29qgsoaxnub unique (uuid);
+
alter table CCM_CORE.WORKFLOW_TASKS
add constraint UK_2u6ruatxij8wfojl8a1eigqqd unique (UUID);
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-add.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-add.yml
index 256c736b9..2956b350b 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-add.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-add.yml
@@ -66,25 +66,31 @@ ccm_core.groups:
ccm_core.group_memberships:
# admins <-> jdoe
- membership_id: -100
+ uuid: 1f9dad0a-c51a-49e7-8720-c3c669cde67e
group_id: -40
member_id: -10
# users <-> mmuster
- membership_id: -200
+ uuid: 3837b1c2-b4e4-44b9-a92f-2330d76b51df
group_id: -50
member_id: -20
# users <-> joe
- membership_id: -300
+ uuid: cf8ffbc6-96d3-4e23-9503-4b396ea112aa
group_id: -50
member_id: -30
# editors <-> joe
- membership_id: -400
+ uuid: 610ad227-cc55-4a8f-b532-3a5204f9d2dd
group_id: -60
member_id: -30
- # admins <-> mmuster
+ # admins <-> mmuster
- membership_id: -500
+ uuid: 555657c8-e8ce-41e1-a327-f853901c8813
group_id: -40
member_id: -20
# editors <-> jdoe
- membership_id: -600
+ uuid: ed78b175-3ff3-4f34-8a5f-829e2113c593
group_id: -60
member_id: -10
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-remove.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-remove.yml
index 794cf8db6..7f1050dad 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-remove.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/after-remove.yml
@@ -66,9 +66,11 @@ ccm_core.groups:
ccm_core.group_memberships:
# users <-> joe
- membership_id: -300
+ uuid: cf8ffbc6-96d3-4e23-9503-4b396ea112aa
group_id: -50
member_id: -30
# editors <-> joe
- membership_id: -400
+ uuid: 610ad227-cc55-4a8f-b532-3a5204f9d2dd
group_id: -60
member_id: -30
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/data.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/data.yml
index 5a67e7c81..bdb55df75 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/data.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/GroupManagerTest/data.yml
@@ -66,17 +66,21 @@ ccm_core.groups:
ccm_core.group_memberships:
# admins <-> jdoe
- membership_id: -100
+ uuid: 1f9dad0a-c51a-49e7-8720-c3c669cde67e
group_id: -40
member_id: -10
# users <-> mmuster
- membership_id: -200
+ uuid: 3837b1c2-b4e4-44b9-a92f-2330d76b51df
group_id: -50
member_id: -20
# users <-> joe
- membership_id: -300
+ uuid: cf8ffbc6-96d3-4e23-9503-4b396ea112aa
group_id: -50
member_id: -30
# editors <-> joe
- membership_id: -400
+ uuid: 610ad227-cc55-4a8f-b532-3a5204f9d2dd
group_id: -60
member_id: -30
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-copy.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-copy.yml
index 21ae28f3d..231d07ac4 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-copy.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-copy.yml
@@ -17,20 +17,24 @@ ccm_core.ccm_objects:
uuid: 1c31700a-f9db-4188-812f-12dba4186c75
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
inherited: false
- permission_id: -30004
+ uuid: 94efe5ec-94f0-4ffb-a6b1-720018915fd4
granted_privilege: privilege2
object_id: -20003
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-inherited.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-inherited.yml
index bdb7d9dc7..ef84fbc5e 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-inherited.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-inherited.yml
@@ -43,40 +43,48 @@ ccm_core.categories:
parent_category_id: -20002
ccm_core.categorizations:
- categorization_id: -40001
+ uuid: 3da32dd7-4f5f-4637-b87e-e431c44d5c14
category_id: -20003
object_id: -20004
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
inherited: false
- permission_id: -30004
+ uuid: 94efe5ec-94f0-4ffb-a6b1-720018915fd4
granted_privilege: privilege4
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30005
+ uuid: a5e89679-6a93-4336-a802-d7120ba1ef5a
granted_privilege: privilege4
object_id: -20002
grantee_id: -10001
inherited: false
- permission_id: -30006
+ uuid: db46a965-c6a9-490a-8dfb-28ddef1aa69a
granted_privilege: privilege4
object_id: -20003
grantee_id: -10001
inherited: true
inherited_from_id: -20002
- permission_id: -30007
+ uuid: 152bbdeb-834a-49ea-8087-44e1286ea5c2
granted_privilege: privilege4
object_id: -20004
grantee_id: -10001
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-recursivly.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-recursivly.yml
index 5053b5c5e..f5954b168 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-recursivly.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant-recursivly.yml
@@ -43,6 +43,7 @@ ccm_core.categories:
parent_category_id: -20002
ccm_core.categorizations:
- categorization_id: -40001
+ uuid: 3da32dd7-4f5f-4637-b87e-e431c44d5c14
category_id: -20003
object_id: -20004
category_index: false
@@ -50,37 +51,44 @@ ccm_core.categorizations:
object_order: 0
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
inherited: false
- permission_id: -30004
+ uuid: 94efe5ec-94f0-4ffb-a6b1-720018915fd4
granted_privilege: privilege4
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30005
+ uuid: a5e89679-6a93-4336-a802-d7120ba1ef5a
granted_privilege: privilege4
object_id: -20002
grantee_id: -10001
inherited: true
inherited_from_id: -20001
- permission_id: -30006
+ uuid: db46a965-c6a9-490a-8dfb-28ddef1aa69a
granted_privilege: privilege4
object_id: -20003
grantee_id: -10001
inherited: true
inherited_from_id: -20001
- permission_id: -30007
+ uuid: 152bbdeb-834a-49ea-8087-44e1286ea5c2
granted_privilege: privilege4
object_id: -20004
grantee_id: -10001
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant.yml
index 809e592ed..5f39fe7ca 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-grant.yml
@@ -17,21 +17,26 @@ ccm_core.ccm_objects:
uuid: 1c31700a-f9db-4188-812f-12dba4186c75
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
- permission_id: -30004
+ uuid: 94efe5ec-94f0-4ffb-a6b1-720018915fd4
granted_privilege: privilege2
object_id: -20003
grantee_id: -10002
- permission_id: -30005
+ uuid: 598beccb-a891-46e3-95c7-47e91d24668f
granted_privilege: privilege3
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke-recursivly.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke-recursivly.yml
index 6806bc685..1cc9c940e 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke-recursivly.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke-recursivly.yml
@@ -43,19 +43,23 @@ ccm_core.categories:
parent_category_id: -20002
ccm_core.categorizations:
- categorization_id: -40001
+ uuid: 3da32dd7-4f5f-4637-b87e-e431c44d5c14
category_id: -20003
object_id: -20004
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke.yml
index 8375d30ab..c20b76a29 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/after-revoke.yml
@@ -17,6 +17,7 @@ ccm_core.ccm_objects:
uuid: 1c31700a-f9db-4188-812f-12dba4186c75
ccm_core.permissions:
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data-recursivly.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data-recursivly.yml
index f8525f54b..dc9bae01b 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data-recursivly.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data-recursivly.yml
@@ -43,6 +43,7 @@ ccm_core.categories:
parent_category_id: -20002
ccm_core.categorizations:
- categorization_id: -40001
+ uuid: 3da32dd7-4f5f-4637-b87e-e431c44d5c14
category_id: -20003
object_id: -20004
category_index: false
@@ -50,15 +51,18 @@ ccm_core.categorizations:
object_order: 0
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data.yml
index 58eba61f9..1e4711116 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/PermissionManagerTest/data.yml
@@ -17,15 +17,18 @@ ccm_core.ccm_objects:
uuid: 1c31700a-f9db-4188-812f-12dba4186c75
ccm_core.permissions:
- permission_id: -30001
+ uuid: 0b6b8076-f88b-4111-880a-780103d06a55
granted_privilege: privilege1
grantee_id: -10001
inherited: false
- permission_id: -30002
+ uuid: 58210e1f-482c-4d69-9746-dd4d0d587491
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
- permission_id: -30003
+ uuid: 350d8860-e6b1-4788-82e5-6e579996c983
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-add.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-add.yml
index 40e616304..64fbbc0ff 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-add.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-add.yml
@@ -66,18 +66,22 @@ ccm_core.groups:
ccm_core.group_memberships:
# group1 <-> mmuster
- membership_id: -1000
+ uuid: db6c2569-f97d-4668-b2a0-406cb9c8edd6
group_id: -100
member_id: -20
# group2 <-> jdoe
- membership_id: -1100
+ uuid: d82c3896-e574-49f6-b123-ed517a50f4be
group_id: -200
member_id: -10
# group3 <-> mmuster
- membership_id: -1200
+ uuid: 7d7395b9-48f9-4076-9a98-7fde98123bfd
group_id: -300
member_id: -20
# group3 <-> joe
- membership_id: -1300
+ uuid: 258610b3-96b0-434a-bc08-3d58ed7525e9
group_id: -300
member_id: -30
ccm_core.ccm_roles:
@@ -93,25 +97,31 @@ ccm_core.ccm_roles:
ccm_core.role_memberships:
# role1 <-> jdoe
- membership_id: -3000
+ uuid: 364220da-f24d-448f-aed5-633e316acc29
role_id: -2000
member_id: -10
# role1 <-> group3
- membership_id: -3100
+ uuid: 28b9ee03-645d-4b8d-9b4e-9cc7442ffe77
role_id: -2000
member_id: -300
# role2 <-> group1
- membership_id: -3200
+ uuid: da515fdc-560d-44fb-8f6b-8dbc37fca39d
role_id: -2100
member_id: -100
# role3 <-> joe
- membership_id: -3300
+ uuid: 9ee86a1a-5aaf-4e8c-bfd5-77bfc846d0b5
role_id: -2200
member_id: -30
- # role1 <-> joe
+ # role1 <-> joe
- membership_id: -3400
+ uuid: 8d3e7346-afa5-44b0-ae86-aafad4a8ebdd
role_id: -2000
member_id: -30
# role3 <-> group1
- membership_id: -3500
+ uuid: 4c5007e9-fefc-4f2d-82de-2154c48fd908
role_id: -2200
member_id: -100
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-remove.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-remove.yml
index 833e27692..18b12ec04 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-remove.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/after-remove.yml
@@ -66,18 +66,22 @@ ccm_core.groups:
ccm_core.group_memberships:
# group1 <-> mmuster
- membership_id: -1000
+ uuid: db6c2569-f97d-4668-b2a0-406cb9c8edd6
group_id: -100
member_id: -20
# group2 <-> jdoe
- membership_id: -1100
+ uuid: d82c3896-e574-49f6-b123-ed517a50f4be
group_id: -200
member_id: -10
# group3 <-> mmuster
- membership_id: -1200
+ uuid: 7d7395b9-48f9-4076-9a98-7fde98123bfd
group_id: -300
member_id: -20
# group3 <-> joe
- membership_id: -1300
+ uuid: 258610b3-96b0-434a-bc08-3d58ed7525e9
group_id: -300
member_id: -30
ccm_core.ccm_roles:
@@ -93,9 +97,11 @@ ccm_core.ccm_roles:
ccm_core.role_memberships:
# role1 <-> group3
- membership_id: -3100
+ uuid: 28b9ee03-645d-4b8d-9b4e-9cc7442ffe77
role_id: -2000
member_id: -300
# role3 <-> joe
- membership_id: -3300
+ uuid: 9ee86a1a-5aaf-4e8c-bfd5-77bfc846d0b5
role_id: -2200
member_id: -30
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/data.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/data.yml
index 9de7856d2..9289f6d00 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/data.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/RoleManagerTest/data.yml
@@ -66,18 +66,22 @@ ccm_core.groups:
ccm_core.group_memberships:
# group1 <-> mmuster
- membership_id: -1000
+ uuid: db6c2569-f97d-4668-b2a0-406cb9c8edd6
group_id: -100
member_id: -20
# group2 <-> jdoe
- membership_id: -1100
+ uuid: d82c3896-e574-49f6-b123-ed517a50f4be
group_id: -200
member_id: -10
# group3 <-> mmuster
- membership_id: -1200
+ uuid: 7d7395b9-48f9-4076-9a98-7fde98123bfd
group_id: -300
member_id: -20
# group3 <-> joe
- membership_id: -1300
+ uuid: 258610b3-96b0-434a-bc08-3d58ed7525e9
group_id: -300
member_id: -30
ccm_core.ccm_roles:
@@ -93,17 +97,21 @@ ccm_core.ccm_roles:
ccm_core.role_memberships:
# role1 <-> jdoe
- membership_id: -3000
+ uuid: 364220da-f24d-448f-aed5-633e316acc29
role_id: -2000
member_id: -10
# role1 <-> group3
- membership_id: -3100
+ uuid: 28b9ee03-645d-4b8d-9b4e-9cc7442ffe77
role_id: -2000
member_id: -300
# role2 <-> group1
- membership_id: -3200
+ uuid: da515fdc-560d-44fb-8f6b-8dbc37fca39d
role_id: -2100
member_id: -100
# role3 <-> joe
- membership_id: -3300
+ uuid: 9ee86a1a-5aaf-4e8c-bfd5-77bfc846d0b5
role_id: -2200
member_id: -30
\ No newline at end of file
diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/security/ShiroTest/data.yml b/ccm-core/src/test/resources/datasets/org/libreccm/security/ShiroTest/data.yml
index 8e24d3709..2fb32017f 100644
--- a/ccm-core/src/test/resources/datasets/org/libreccm/security/ShiroTest/data.yml
+++ b/ccm-core/src/test/resources/datasets/org/libreccm/security/ShiroTest/data.yml
@@ -82,18 +82,22 @@ ccm_core.groups:
ccm_core.group_memberships:
# group1 <-> mmuster
- membership_id: -50001
+ uuid: 488f36d0-f947-4fd9-b31b-98f3aa031d1f
group_id: -42001
member_id: -41002
# group2 <-> jdoe
- membership_id: -50002
+ uuid: ed169bec-cf86-4b74-9614-69fa93f9dde0
group_id: -42002
member_id: -41001
# group3 <-> mmuster
- membership_id: -50003
+ uuid: 9bde3956-c622-41d8-bad6-17074e6b2c6c
group_id: -42003
member_id: -41002
# group3 <-> joe
- membership_id: -50004
+ uuid: 59424686-dddd-4574-b1f3-8abee245fce4
group_id: -42003
member_id: -41003
ccm_core.ccm_roles:
@@ -109,14 +113,17 @@ ccm_core.ccm_roles:
ccm_core.role_memberships:
# role1 <-> group1
- membership_id: -60001
+ uuid: a0da173a-8825-4262-923f-61b0944d74e5
role_id: -10001
member_id: -42001
# role2 <-> jdoe
- membership_id: -60002
+ uuid: d4f4b611-7048-4239-9aa1-dd79e4a22980
role_id: -10002
member_id: -41001
# public-role <-> public-user
- membership_id: -60003
+ uuid: 5bee29d5-11d0-4015-b91a-27199ce5190a
role_id: -10003
member_id: -41004
ccm_core.ccm_objects:
@@ -132,23 +139,27 @@ ccm_core.ccm_objects:
ccm_core.permissions:
# permission for privilege1 granted to role1
- permission_id: -30001
+ uuid: fb5f1353-5138-4570-9143-38bd96d1481e
granted_privilege: privilege1
grantee_id: -10001
inherited: false
# permission for privilege2 granted on object1 to role1
- permission_id: -30002
+ uuid: d1d06a40-3394-44d5-910d-a003215f1a7e
granted_privilege: privilege2
object_id: -20001
grantee_id: -10001
inherited: false
# permission for privilege2 granted on object2 to role2
- permission_id: -30003
+ uuid: a714cb3d-af1e-4ee7-bd6e-2c184d629472
granted_privilege: privilege2
object_id: -20002
grantee_id: -10002
inherited: false
# permission for privilege3 granted on object1 to public-role
- permission_id: -30004
+ uuid: 4a724998-28cd-4060-a92a-a6225e7260e4
granted_privilege: privilege3
object_id: -20001
grantee_id: -10003
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResource.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResource.java
index 492b81519..577b0fda1 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResource.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResource.java
@@ -22,7 +22,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.hibernate.validator.constraints.NotBlank;
import org.libreccm.core.CcmObject;
-import org.libreccm.portation.Portable;
+import org.libreccm.imexport.Exportable;
import org.libreccm.security.User;
import javax.persistence.Column;
@@ -33,6 +33,7 @@ import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
+
import java.util.Date;
/**
@@ -47,7 +48,7 @@ import java.util.Date;
*/
@Entity
@Table(schema = "CCM_DOCREPO", name = "RESOURCES")
-public abstract class AbstractResource extends CcmObject implements Portable {
+public abstract class AbstractResource extends CcmObject implements Exportable {
private static final Logger log = LogManager.getLogger(AbstractResource.class);
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceMarshaller.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceImExporter.java
similarity index 68%
rename from ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceMarshaller.java
rename to ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceImExporter.java
index 5fdb27dbf..4fea4073d 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceMarshaller.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/AbstractResourceImExporter.java
@@ -18,16 +18,17 @@
*/
package org.libreccm.docrepo;
-import org.libreccm.portation.AbstractMarshaller;
+import org.libreccm.imexport.AbstractEntityImExporter;
/**
- * Abstract Marshaller class for importing and exporting the {@code
+ * Abstract Im/Exporter class for importing and exporting the {@code
* AbstractResource}s.
*
- * @author Tobias Osmers
+ * @author Jens Pelzetter
+ * @param Type of resource
*/
-public abstract class AbstractResourceMarshaller
- extends AbstractMarshaller {
+public abstract class AbstractResourceImExporter
+ extends AbstractEntityImExporter {
}
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObject.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObject.java
index 261b6217a..70e8da7c0 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObject.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObject.java
@@ -21,7 +21,7 @@ package org.libreccm.docrepo;
import org.hibernate.validator.constraints.NotEmpty;
import org.libreccm.core.Identifiable;
-import org.libreccm.portation.Portable;
+import org.libreccm.imexport.Exportable;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -46,7 +46,7 @@ import java.util.Objects;
*/
@Entity
@Table(schema = "CCM_DOCREPO", name = "BLOB_OBJECTS")
-public class BlobObject implements Identifiable, Serializable, Portable {
+public class BlobObject implements Identifiable, Serializable, Exportable {
private static final long serialVersionUID = -7468014879548796218L;
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectMarshaller.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectImExporter.java
similarity index 62%
rename from ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectMarshaller.java
rename to ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectImExporter.java
index 96d94e012..c7480d6f3 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectMarshaller.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/BlobObjectImExporter.java
@@ -18,33 +18,37 @@
*/
package org.libreccm.docrepo;
-import org.libreccm.portation.AbstractMarshaller;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.Processes;
import javax.faces.bean.RequestScoped;
import javax.inject.Inject;
+import javax.transaction.Transactional;
/**
- * Marshaller class for importing and exporting {@code BlobObject}s from the
+ * Im/Exporter for importing and exporting {@code BlobObject}s from the
* system into a specified file and the other way around.
*
- * @author Tobias Osmers
+ * @author Jens Pelzetter
+ *
*/
@RequestScoped
-@Marshals(BlobObject.class)
-public class BlobObjectMarshaller extends AbstractMarshaller {
+@Processes(BlobObject.class)
+public class BlobObjectImExporter extends AbstractEntityImExporter {
@Inject
private BlobObjectRepository blobObjectRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return BlobObject.class;
}
@Override
- protected void insertIntoDb(BlobObject portableObject) {
- blobObjectRepository.save(portableObject);
+ @Transactional(Transactional.TxType.REQUIRED)
+ protected void saveImportedEntity(final BlobObject entity) {
+
+ blobObjectRepository.save(entity);
}
}
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/File.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/File.java
index c8396cf1c..17353906f 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/File.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/File.java
@@ -19,8 +19,6 @@
package org.libreccm.docrepo;
import javax.persistence.Entity;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/FileMarshaller.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/FileImExporter.java
similarity index 69%
rename from ccm-docrepo/src/main/java/org/libreccm/docrepo/FileMarshaller.java
rename to ccm-docrepo/src/main/java/org/libreccm/docrepo/FileImExporter.java
index dd7c9f5c7..03dbe861d 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/FileMarshaller.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/FileImExporter.java
@@ -18,33 +18,37 @@
*/
package org.libreccm.docrepo;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.Processes;
+
import javax.enterprise.context.RequestScoped;
-import org.libreccm.portation.Marshals;
import javax.inject.Inject;
+import javax.transaction.Transactional;
/**
- * Marshaller class for importing and exporting {@code File}s from the
+ * Im/Exporter for importing and exporting {@code File}s from the
* system into a specified file and the other way around.
*
* @author Tobias Osmers
- * @version created the 3/16/16
+ * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(File.class)
-public class FileMarshaller extends AbstractResourceMarshaller {
+@Processes(File.class)
+public class FileImExporter extends AbstractEntityImExporter {
@Inject
private FileRepository fileRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return File.class;
}
@Override
- protected void insertIntoDb(File portableObject) {
+ @Transactional(Transactional.TxType.REQUIRED)
+ protected void saveImportedEntity(final File portableObject) {
fileRepository.save(portableObject);
}
}
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderMarshaller.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderImExporter.java
similarity index 66%
rename from ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderMarshaller.java
rename to ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderImExporter.java
index 517d771ee..8d9f1d391 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderMarshaller.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/FolderImExporter.java
@@ -18,32 +18,34 @@
*/
package org.libreccm.docrepo;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.Processes;
import javax.faces.bean.RequestScoped;
import javax.inject.Inject;
+import javax.transaction.Transactional;
/**
- * Marshaller class for importing and exporting {@code Folder}s from the
+ * Im/Exporter for importing and exporting {@link Folder}s from the
* system into a specified file and the other way around.
*
- * @author Tobias Osmers
+ * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(Folder.class)
-public class FolderMarshaller extends AbstractResourceMarshaller {
+@Processes(Folder.class)
+public class FolderImExporter extends AbstractResourceImExporter {
@Inject
private FolderRepository folderRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return Folder.class;
}
@Override
- protected void insertIntoDb(Folder portableObject) {
- folderRepository.save(portableObject);
+ @Transactional(Transactional.TxType.REQUIRED)
+ protected void saveImportedEntity(final Folder entity) {
+ folderRepository.save(entity);
}
}
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/Repository.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/Repository.java
index 1ad2460ca..8e81cd27b 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/Repository.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/Repository.java
@@ -19,7 +19,7 @@
package org.libreccm.docrepo;
import org.hibernate.validator.constraints.NotBlank;
-import org.libreccm.portation.Portable;
+import org.libreccm.imexport.Exportable;
import org.libreccm.security.User;
import org.libreccm.web.CcmApplication;
@@ -31,6 +31,7 @@ import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
+
import java.util.List;
/**
@@ -46,7 +47,7 @@ import java.util.List;
@NamedQuery(name = "DocRepo.findRepositoriesForOwner",
query = "SELECT r FROM Repository r WHERE r.owner = :owner")
})
-public class Repository extends CcmApplication implements Portable {
+public class Repository extends CcmApplication implements Exportable {
private static final long serialVersionUID = 6673243021462798036L;
diff --git a/ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryMarshaller.java b/ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryImExporter.java
similarity index 70%
rename from ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryMarshaller.java
rename to ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryImExporter.java
index adc74dbbf..011d3f9c0 100644
--- a/ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryMarshaller.java
+++ b/ccm-docrepo/src/main/java/org/libreccm/docrepo/RepositoryImExporter.java
@@ -18,30 +18,30 @@
*/
package org.libreccm.docrepo;
-import org.libreccm.portation.AbstractMarshaller;
-import org.libreccm.portation.Marshals;
+import org.libreccm.imexport.AbstractEntityImExporter;
+import org.libreccm.imexport.Processes;
import javax.faces.bean.RequestScoped;
import javax.inject.Inject;
/**
- * @author Tobias Osmers
+ * @author Jens Pelzetter
*/
@RequestScoped
-@Marshals(Repository.class)
-public class RepositoryMarshaller extends AbstractMarshaller {
+@Processes(Repository.class)
+public class RepositoryImExporter extends AbstractEntityImExporter {
@Inject
private RepositoryRepository repositoryRepository;
@Override
- protected Class getObjectClass() {
+ protected Class getEntityClass() {
return Repository.class;
}
@Override
- protected void insertIntoDb(Repository portableObject) {
+ protected void saveImportedEntity(final Repository portableObject) {
repositoryRepository.save(portableObject);
}
}
diff --git a/ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/ArquillianExampleTest.java b/ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/ArquillianExampleTest.java.off
similarity index 100%
rename from ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/ArquillianExampleTest.java
rename to ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/ArquillianExampleTest.java.off
diff --git a/ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/FilePortationTest.java b/ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/FilePortationTest.java.off
similarity index 100%
rename from ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/FilePortationTest.java
rename to ccm-docrepo/src/test/java/org/libreccm/docrepo/portation/FilePortationTest.java.off
diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java
index 198bd45b7..92b3f760c 100644
--- a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java
+++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutManagerTest.java
@@ -116,7 +116,6 @@ public class ShortcutManagerTest {
.addPackage(org.libreccm.l10n.LocalizedString.class
.getPackage())
.addPackage(org.libreccm.security.Permission.class.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java
index 45dee0024..4992f3e8f 100644
--- a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java
+++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java
@@ -104,7 +104,6 @@ public class ShortcutRepositoryTest {
.getPackage())
.addPackage(org.libreccm.l10n.LocalizedString.class
.getPackage())
- .addClass(org.libreccm.portation.Portable.class)
.addPackage(org.libreccm.security.Permission.class.getPackage())
.addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
diff --git a/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/after-create.xml b/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/after-create.xml
index b3185182b..36ac83850 100644
--- a/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/after-create.xml
+++ b/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/after-create.xml
@@ -1,8 +1,10 @@
diff --git a/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/data.xml b/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/data.xml
index eb6acbe37..34b17c5c4 100644
--- a/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/data.xml
+++ b/ccm-shortcuts/src/test/resources/datasets/org/libreccm/shortcuts/ShortcutManagerTest/data.xml
@@ -1,8 +1,10 @@