syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject [31/34] syncope git commit: [SYNCOPE-1369] Flowable support refactored as extension + code review (now with variable cleanup)
Date Tue, 25 Sep 2018 12:32:29 GMT
http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowDefinitionTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowDefinitionTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowDefinitionTO.java
deleted file mode 100644
index 804d75c..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowDefinitionTO.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.to;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-
-@XmlRootElement(name = "workflowDefinition")
-@XmlType
-public class WorkflowDefinitionTO extends AbstractBaseBean {
-
-    private static final long serialVersionUID = -7044543391316529128L;
-
-    private String key;
-
-    private String modelId;
-
-    private String name;
-
-    private boolean main;
-
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(final String key) {
-        this.key = key;
-    }
-
-    public String getModelId() {
-        return modelId;
-    }
-
-    public void setModelId(final String modelId) {
-        this.modelId = modelId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(final String name) {
-        this.name = name;
-    }
-
-    public boolean isMain() {
-        return main;
-    }
-
-    public void setMain(final boolean main) {
-        this.main = main;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
deleted file mode 100644
index 59bfc1e..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.to;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.HashMap;
-import java.util.Map;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
-import org.apache.syncope.common.lib.types.WorkflowFormPropertyType;
-
-@XmlRootElement(name = "workflowFormProperty")
-@XmlType
-public class WorkflowFormPropertyTO extends AbstractBaseBean {
-
-    private static final long serialVersionUID = 9139969592634304261L;
-
-    private String id;
-
-    private String name;
-
-    private WorkflowFormPropertyType type;
-
-    private String value;
-
-    private boolean readable;
-
-    private boolean writable;
-
-    private boolean required;
-
-    private String datePattern;
-
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    private final Map<String, String> enumValues = new HashMap<>();
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(final String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(final String name) {
-        this.name = name;
-    }
-
-    public boolean isReadable() {
-        return readable;
-    }
-
-    public void setReadable(final boolean readable) {
-        this.readable = readable;
-    }
-
-    public boolean isRequired() {
-        return required;
-    }
-
-    public void setRequired(final boolean required) {
-        this.required = required;
-    }
-
-    public WorkflowFormPropertyType getType() {
-        return type;
-    }
-
-    public void setType(final WorkflowFormPropertyType type) {
-        this.type = type;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(final String value) {
-        this.value = value;
-    }
-
-    public boolean isWritable() {
-        return writable;
-    }
-
-    public void setWritable(final boolean writable) {
-        this.writable = writable;
-    }
-
-    public String getDatePattern() {
-        return datePattern;
-    }
-
-    public void setDatePattern(final String datePattern) {
-        this.datePattern = datePattern;
-    }
-
-    @JsonProperty
-    public Map<String, String> getEnumValues() {
-        return enumValues;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
deleted file mode 100644
index 2f99b65..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.to;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.patch.UserPatch;
-
-@XmlRootElement(name = "workflowForm")
-@XmlType
-public class WorkflowFormTO extends AbstractBaseBean {
-
-    private static final long serialVersionUID = -7044543391316529128L;
-
-    private String username;
-
-    private String taskId;
-
-    private String key;
-
-    private Date createTime;
-
-    private Date dueDate;
-
-    private String owner;
-
-    private UserTO userTO;
-
-    private UserPatch userPatch;
-
-    private final List<WorkflowFormPropertyTO> properties = new ArrayList<>();
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(final String username) {
-        this.username = username;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(final String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(final String key) {
-        this.key = key;
-    }
-
-    public Date getCreateTime() {
-        if (createTime != null) {
-            return new Date(createTime.getTime());
-        }
-        return null;
-    }
-
-    public void setCreateTime(final Date createTime) {
-        if (createTime != null) {
-            this.createTime = new Date(createTime.getTime());
-        } else {
-            this.createTime = null;
-        }
-    }
-
-    public Date getDueDate() {
-        if (dueDate != null) {
-            return new Date(dueDate.getTime());
-        }
-        return null;
-    }
-
-    public void setDueDate(final Date dueDate) {
-        if (dueDate != null) {
-            this.dueDate = new Date(dueDate.getTime());
-        } else {
-            this.dueDate = null;
-        }
-    }
-
-    public String getOwner() {
-        return owner;
-    }
-
-    public void setOwner(final String owner) {
-        this.owner = owner;
-    }
-
-    public UserTO getUserTO() {
-        return userTO;
-    }
-
-    public void setUserTO(final UserTO userTO) {
-        this.userTO = userTO;
-    }
-
-    public UserPatch getUserPatch() {
-        return userPatch;
-    }
-
-    public void setUserPatch(final UserPatch userPatch) {
-        this.userPatch = userPatch;
-    }
-
-    @JsonIgnore
-    public Optional<WorkflowFormPropertyTO> getProperty(final String id) {
-        return properties.stream().filter(property -> id.equals(property.getId())).findFirst();
-    }
-
-    @XmlElementWrapper(name = "workflowFormProperties")
-    @XmlElement(name = "workflowFormProperty")
-    @JsonProperty("workflowFormProperties")
-    public List<WorkflowFormPropertyTO> getProperties() {
-        return properties;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowTaskTO.java
deleted file mode 100644
index d2834c8..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowTaskTO.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.to;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-
-@XmlRootElement(name = "workflowTask")
-@XmlType
-public class WorkflowTaskTO extends AbstractBaseBean {
-
-    private static final long serialVersionUID = -3095016727396210808L;
-
-    private String name;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(final String name) {
-        this.name = name;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/types/StandardEntitlement.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/StandardEntitlement.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/StandardEntitlement.java
index 0968f34..69f417a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/StandardEntitlement.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/StandardEntitlement.java
@@ -202,24 +202,6 @@ public final class StandardEntitlement {
 
     public static final String POLICY_DELETE = "POLICY_DELETE";
 
-    public static final String WORKFLOW_DEF_LIST = "WORKFLOW_DEF_LIST";
-
-    public static final String WORKFLOW_DEF_GET = "WORKFLOW_DEF_GET";
-
-    public static final String WORKFLOW_DEF_SET = "WORKFLOW_DEF_SET";
-
-    public static final String WORKFLOW_DEF_DELETE = "WORKFLOW_DEF_DELETE";
-
-    public static final String WORKFLOW_TASK_LIST = "WORKFLOW_TASK_LIST";
-
-    public static final String WORKFLOW_FORM_LIST = "WORKFLOW_FORM_LIST";
-
-    public static final String WORKFLOW_FORM_READ = "WORKFLOW_FORM_READ";
-
-    public static final String WORKFLOW_FORM_CLAIM = "WORKFLOW_FORM_CLAIM";
-
-    public static final String WORKFLOW_FORM_SUBMIT = "WORKFLOW_FORM_SUBMIT";
-
     public static final String MAIL_TEMPLATE_LIST = "MAIL_TEMPLATE_LIST";
 
     public static final String MAIL_TEMPLATE_CREATE = "MAIL_TEMPLATE_CREATE";

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
deleted file mode 100644
index ec2db4a..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.types;
-
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
-public enum WorkflowFormPropertyType {
-
-    String,
-    Long,
-    Enum,
-    Date,
-    Boolean
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
deleted file mode 100644
index d23b1bc..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.types;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-public class WorkflowTasks {
-
-    private List<String> tasks;
-
-    public WorkflowTasks() {
-        this.tasks = new ArrayList<>();
-    }
-
-    public WorkflowTasks(final Collection<String> tasks) {
-        this();
-        this.tasks.addAll(tasks);
-    }
-
-    public List<String> getTasks() {
-        return tasks;
-    }
-
-    public void setTasks(final List<String> tasks) {
-        this.tasks = tasks;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
----------------------------------------------------------------------
diff --git a/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java b/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
index bf2ab85..375faf7 100644
--- a/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
+++ b/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.util.UUID;
+import org.apache.syncope.common.lib.patch.GroupPatch;
 import org.apache.syncope.common.lib.patch.PasswordPatch;
 import org.apache.syncope.common.lib.patch.StringPatchItem;
 import org.apache.syncope.common.lib.patch.StringReplacePatchItem;
@@ -35,7 +36,6 @@ import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.PropagationStatus;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
-import org.apache.syncope.common.lib.to.WorkflowFormPropertyTO;
 import org.apache.syncope.common.lib.types.PatchOperation;
 import org.junit.jupiter.api.Test;
 
@@ -43,16 +43,16 @@ public class JSONTest {
 
     @Test
     public void map() throws IOException {
-        WorkflowFormPropertyTO prop = new WorkflowFormPropertyTO();
-        prop.getEnumValues().put("key1", "value1");
-        prop.getEnumValues().put("key2", "value2");
+        GroupPatch prop = new GroupPatch();
+        prop.getADynMembershipConds().put("key1", "value1");
+        prop.getADynMembershipConds().put("key2", "value2");
 
         ObjectMapper mapper = new ObjectMapper();
 
         StringWriter writer = new StringWriter();
         mapper.writeValue(writer, prop);
 
-        WorkflowFormPropertyTO unserializedProp = mapper.readValue(writer.toString(), WorkflowFormPropertyTO.class);
+        GroupPatch unserializedProp = mapper.readValue(writer.toString(), GroupPatch.class);
         assertEquals(prop, unserializedProp);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/WorkflowFormQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/WorkflowFormQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/WorkflowFormQuery.java
deleted file mode 100644
index c3454bf..0000000
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/WorkflowFormQuery.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.beans;
-
-public class WorkflowFormQuery extends AbstractQuery {
-
-    private static final long serialVersionUID = -4762457303770028554L;
-
-    public static class Builder extends AbstractQuery.Builder<WorkflowFormQuery, Builder> {
-
-        @Override
-        protected WorkflowFormQuery newInstance() {
-            return new WorkflowFormQuery();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
index eb3f9aa..a7300d7 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
@@ -134,6 +135,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
      * @param schemaType schema type
      * @param schema schema
      */
+    @Operation(operationId = "deleteAttr")
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @DELETE
@@ -150,6 +152,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
      * @param key any object key or name
      * @return Response object featuring the deleted any object enriched with propagation status information
      */
+    @Operation(operationId = "deleteAny")
     @Parameter(name = RESTHeaders.PREFER, in = ParameterIn.HEADER,
             description = "Allows client to specify a preference for the result to be returned from the server",
             allowEmptyValue = true, schema =

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 3eb45a4..fc0829a 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -44,7 +44,7 @@ import org.apache.syncope.common.lib.to.SecurityQuestionTO;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 
 /**
- * REST operations for configuration.
+ * REST operations for security questions.
  */
 @Tag(name = "SecurityQuestions")
 @SecurityRequirements({

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
deleted file mode 100644
index c38746f..0000000
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.service;
-
-import io.swagger.v3.oas.annotations.security.SecurityRequirement;
-import io.swagger.v3.oas.annotations.security.SecurityRequirements;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import java.util.List;
-import javax.validation.constraints.NotNull;
-import javax.ws.rs.BeanParam;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.WorkflowFormTO;
-import org.apache.syncope.common.lib.to.WorkflowTaskTO;
-import org.apache.syncope.common.rest.api.RESTHeaders;
-import org.apache.syncope.common.rest.api.beans.WorkflowFormQuery;
-
-/**
- * REST operations related to user workflow.
- */
-@Tag(name = "UserWorkflow")
-@SecurityRequirements({
-    @SecurityRequirement(name = "BasicAuthentication"),
-    @SecurityRequirement(name = "Bearer") })
-@Path("userworkflow")
-public interface UserWorkflowService extends JAXRSService {
-
-    /**
-     * Returns a list of all available workflow forms.
-     *
-     * @param query query conditions
-     * @return list of all available workflow forms
-     */
-    @GET
-    @Path("forms")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    PagedResult<WorkflowFormTO> getForms(@BeanParam WorkflowFormQuery query);
-
-    /**
-     * Returns a list of available forms for the given user key.
-     *
-     * @param userKey user key
-     * @return list of available forms for the given user key
-     */
-    @GET
-    @Path("forms/{userKey}")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    WorkflowFormTO getFormForUser(@NotNull @PathParam("userKey") String userKey);
-
-    /**
-     * Claims the form for the given task id.
-     *
-     * @param taskId workflow task id
-     * @return the workflow form for the given task id
-     */
-    @POST
-    @Path("forms/{taskId}/claim")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    WorkflowFormTO claimForm(@NotNull @PathParam("taskId") String taskId);
-
-    /**
-     * Submits a workflow form.
-     *
-     * @param form workflow form.
-     * @return updated user
-     */
-    @POST
-    @Path("forms")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    UserTO submitForm(@NotNull WorkflowFormTO form);
-
-    /**
-     * Returns a list of available tasks for the given user key.
-     *
-     * @param userKey user key
-     * @return list of available tasks for the given user key
-     */
-    @GET
-    @Path("tasks/{userKey}")
-    List<WorkflowTaskTO> getAvailableTasks(@NotNull @PathParam("userKey") String userKey);
-
-    /**
-     * Executes workflow task for matching id.
-     *
-     * @param taskId workflow task id
-     * @param userTO argument to be passed to workflow task
-     * @return updated user
-     */
-    @POST
-    @Path("tasks/{taskId}/execute")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    UserTO executeTask(@NotNull @PathParam("taskId") String taskId, @NotNull UserTO userTO);
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
deleted file mode 100644
index 25e3f7a..0000000
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.service;
-
-import io.swagger.v3.oas.annotations.responses.ApiResponse;
-import io.swagger.v3.oas.annotations.responses.ApiResponses;
-import io.swagger.v3.oas.annotations.security.SecurityRequirement;
-import io.swagger.v3.oas.annotations.security.SecurityRequirements;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import java.util.List;
-import javax.validation.constraints.NotNull;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
-import org.apache.syncope.common.rest.api.RESTHeaders;
-
-/**
- * REST operations for workflow definition.
- */
-@Tag(name = "Workflow")
-@SecurityRequirements({
-    @SecurityRequirement(name = "BasicAuthentication"),
-    @SecurityRequirement(name = "Bearer") })
-@Path("workflows")
-public interface WorkflowService extends JAXRSService {
-
-    /**
-     * Lists the available workflow definitions, for the given any object type.
-     *
-     * @param anyType any object type
-     * @return available workflow definitions, for the given any object type
-     */
-    @GET
-    @Path("{anyType}")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    List<WorkflowDefinitionTO> list(@NotNull @PathParam("anyType") String anyType);
-
-    /**
-     * Exports the workflow definition for matching any object type and key.
-     *
-     * @param anyType any object type
-     * @param key workflow definition key
-     * @return workflow definition for matching any object type and key
-     */
-    @GET
-    @Path("{anyType}/{key}")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    Response get(
-            @NotNull @PathParam("anyType") String anyType,
-            @NotNull @PathParam("key") String key);
-
-    /**
-     * Exports the workflow diagram representation (if available), for matching any object type and key.
-     *
-     * @param anyType any object type
-     * @param key workflow definition key
-     * @return workflow diagram representation
-     */
-    @GET
-    @Path("{anyType}/{key}/diagram.png")
-    @Produces({ RESTHeaders.MEDIATYPE_IMAGE_PNG })
-    Response exportDiagram(
-            @NotNull @PathParam("anyType") String anyType,
-            @NotNull @PathParam("key") String key);
-
-    /**
-     * Imports the workflow definition for matching any object type, under the provided key.
-     *
-     * @param anyType any object type
-     * @param key workflow definition key
-     * @param definition workflow definition for matching kind
-     */
-    @ApiResponses(
-            @ApiResponse(responseCode = "204", description = "Operation was successful"))
-    @PUT
-    @Path("{anyType}/{key}")
-    @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    void set(
-            @NotNull @PathParam("anyType") String anyType,
-            @NotNull @PathParam("key") String key,
-            @NotNull String definition);
-
-    /**
-     * Removes the workflow definition for matching any object type, under the provided key.
-     *
-     * @param anyType any object type
-     * @param key workflow definition key
-     */
-    @ApiResponses(
-            @ApiResponse(responseCode = "204", description = "Operation was successful"))
-    @DELETE
-    @Path("{anyType}/{key}")
-    @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    void delete(
-            @NotNull @PathParam("anyType") String anyType,
-            @NotNull @PathParam("key") String key);
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
index 46285f2..9377628 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
@@ -60,7 +60,7 @@ public class SecurityQuestionLogic extends AbstractTransactionalLogic<SecurityQu
         if (securityQuestion == null) {
             LOG.error("Could not find security question '" + key + "'");
 
-            throw new NotFoundException(String.valueOf(key));
+            throw new NotFoundException(key);
         }
 
         return binder.getSecurityQuestionTO(securityQuestion);
@@ -77,7 +77,7 @@ public class SecurityQuestionLogic extends AbstractTransactionalLogic<SecurityQu
         if (securityQuestion == null) {
             LOG.error("Could not find security question '" + securityQuestionTO.getKey() + "'");
 
-            throw new NotFoundException(String.valueOf(securityQuestionTO.getKey()));
+            throw new NotFoundException(securityQuestionTO.getKey());
         }
 
         binder.update(securityQuestion, securityQuestionTO);
@@ -92,7 +92,7 @@ public class SecurityQuestionLogic extends AbstractTransactionalLogic<SecurityQu
         if (securityQuestion == null) {
             LOG.error("Could not find security question '" + key + "'");
 
-            throw new NotFoundException(String.valueOf(key));
+            throw new NotFoundException(key);
         }
 
         SecurityQuestionTO deleted = binder.getSecurityQuestionTO(securityQuestion);

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
deleted file mode 100644
index 8023c25..0000000
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.logic;
-
-import java.lang.reflect.Method;
-import java.util.List;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.common.lib.patch.AnyPatch;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.to.PropagationTaskTO;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.to.WorkflowFormTO;
-import org.apache.syncope.common.lib.to.WorkflowTaskTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.syncope.core.persistence.api.dao.UserDAO;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
-import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.provisioning.api.propagation.PropagationManager;
-import org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor;
-import org.apache.syncope.core.workflow.api.UserWorkflowAdapter;
-import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.data.UserDataBinder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class UserWorkflowLogic extends AbstractTransactionalLogic<WorkflowFormTO> {
-
-    @Autowired
-    private UserWorkflowAdapter uwfAdapter;
-
-    @Autowired
-    private PropagationManager propagationManager;
-
-    @Autowired
-    private PropagationTaskExecutor taskExecutor;
-
-    @Autowired
-    private UserDataBinder binder;
-
-    @Autowired
-    private UserDAO userDAO;
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_FORM_CLAIM + "')")
-    public WorkflowFormTO claimForm(final String taskId) {
-        return uwfAdapter.claimForm(taskId);
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.USER_UPDATE + "')")
-    public UserTO executeWorkflowTask(final UserTO userTO, final String taskId) {
-        WorkflowResult<String> updated = uwfAdapter.execute(userTO, taskId);
-
-        UserPatch userPatch = new UserPatch();
-        userPatch.setKey(userTO.getKey());
-
-        List<PropagationTaskTO> tasks = propagationManager.getUserUpdateTasks(
-                new WorkflowResult<>(
-                        Pair.<UserPatch, Boolean>of(userPatch, null),
-                        updated.getPropByRes(), updated.getPerformedTasks()));
-
-        taskExecutor.execute(tasks, false);
-
-        return binder.getUserTO(updated.getResult());
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_FORM_READ + "') "
-            + "and hasRole('" + StandardEntitlement.USER_READ + "')")
-    @Transactional(readOnly = true)
-    public WorkflowFormTO getFormForUser(final String key) {
-        User user = userDAO.authFind(key);
-        return uwfAdapter.getForm(user.getWorkflowId());
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_FORM_LIST + "')")
-    @Transactional(readOnly = true)
-    public Pair<Integer, List<WorkflowFormTO>> getForms(
-            final int page,
-            final int size,
-            final List<OrderByClause> orderByClauses) {
-
-        return uwfAdapter.getForms(page, size, orderByClauses);
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_TASK_LIST + "') "
-            + "and hasRole('" + StandardEntitlement.USER_READ + "')")
-    public List<WorkflowTaskTO> getAvailableTasks(final String key) {
-        User user = userDAO.authFind(key);
-        return uwfAdapter.getAvailableTasks(user.getWorkflowId());
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_FORM_SUBMIT + "')")
-    public UserTO submitForm(final WorkflowFormTO form) {
-        WorkflowResult<? extends AnyPatch> updated = uwfAdapter.submitForm(form);
-
-        // propByRes can be made empty by the workflow definition if no propagation should occur 
-        // (for example, with rejected users)
-        if (updated.getResult() instanceof UserPatch
-                && updated.getPropByRes() != null && !updated.getPropByRes().isEmpty()) {
-
-            List<PropagationTaskTO> tasks = propagationManager.getUserUpdateTasks(
-                    new WorkflowResult<>(
-                            Pair.of((UserPatch) updated.getResult(), Boolean.TRUE),
-                            updated.getPropByRes(),
-                            updated.getPerformedTasks()));
-
-            taskExecutor.execute(tasks, false);
-        }
-
-        return binder.getUserTO(updated.getResult().getKey());
-    }
-
-    @Override
-    protected WorkflowFormTO resolveReference(final Method method, final Object... args)
-            throws UnresolvedReferenceException {
-
-        throw new UnresolvedReferenceException();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/logic/src/main/java/org/apache/syncope/core/logic/WorkflowLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/WorkflowLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/WorkflowLogic.java
deleted file mode 100644
index 4f3e512..0000000
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/WorkflowLogic.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.logic;
-
-import java.io.OutputStream;
-import java.lang.reflect.Method;
-import java.util.List;
-import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
-import org.apache.syncope.core.persistence.api.dao.NotFoundException;
-import org.apache.syncope.core.persistence.api.entity.AnyType;
-import org.apache.syncope.core.workflow.api.AnyObjectWorkflowDefinitionAdapter;
-import org.apache.syncope.core.workflow.api.GroupWorkflowDefinitionAdapter;
-import org.apache.syncope.core.workflow.api.UserWorkflowDefinitionAdapter;
-import org.apache.syncope.core.workflow.api.WorkflowDefinitionAdapter;
-import org.apache.syncope.core.workflow.api.WorkflowDefinitionFormat;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class WorkflowLogic extends AbstractTransactionalLogic<WorkflowDefinitionTO> {
-
-    @Autowired
-    private AnyTypeDAO anyTypeDAO;
-
-    @Autowired
-    private AnyObjectWorkflowDefinitionAdapter awfAdapter;
-
-    @Autowired
-    private UserWorkflowDefinitionAdapter uwfAdapter;
-
-    @Autowired
-    private GroupWorkflowDefinitionAdapter gwfAdapter;
-
-    private WorkflowDefinitionAdapter getAdapter(final String anyTypeKey) {
-        AnyType anyType = anyTypeDAO.find(anyTypeKey);
-        if (anyType == null) {
-            LOG.error("Could not find anyType '" + anyTypeKey + "'");
-            throw new NotFoundException(anyTypeKey);
-        }
-
-        switch (anyType.getKind()) {
-            case ANY_OBJECT:
-                return awfAdapter;
-
-            case GROUP:
-                return gwfAdapter;
-
-            case USER:
-            default:
-                return uwfAdapter;
-        }
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_DEF_LIST + "')")
-    @Transactional(readOnly = true)
-    public List<WorkflowDefinitionTO> list(final String anyType) {
-        return getAdapter(anyType).getDefinitions();
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_DEF_GET + "')")
-    @Transactional(readOnly = true)
-    public void exportDefinition(
-            final String anyType, final String key, final WorkflowDefinitionFormat format, final OutputStream os) {
-
-        getAdapter(anyType).exportDefinition(key, format, os);
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_DEF_GET + "')")
-    @Transactional(readOnly = true)
-    public void exportDiagram(final String anyType, final String key, final OutputStream os) {
-        getAdapter(anyType).exportDiagram(key, os);
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_DEF_GET + "')")
-    public void importDefinition(
-            final String anyType, final String key, final WorkflowDefinitionFormat format, final String definition) {
-
-        getAdapter(anyType).importDefinition(key, format, definition);
-    }
-
-    @PreAuthorize("hasRole('" + StandardEntitlement.WORKFLOW_DEF_DELETE + "')")
-    public void delete(final String anyType, final String key) {
-        getAdapter(anyType).deleteDefinition(key);
-    }
-
-    @Override
-    protected WorkflowDefinitionTO resolveReference(final Method method, final Object... args)
-            throws UnresolvedReferenceException {
-
-        throw new UnresolvedReferenceException();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
index 042a799..1408585 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
@@ -39,8 +39,6 @@ public interface AnyDAO<A extends Any<?>> extends DAO<A> {
 
     A find(String key);
 
-    A findByWorkflowId(String workflowId);
-
     List<A> findByPlainAttrValue(String schemaName, PlainAttrValue attrValue, boolean ignoreCaseMatch);
 
     A findByPlainAttrUniqueValue(String schemaName, PlainAttrValue attrUniqueValue, boolean ignoreCaseMatch);

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
index 0ec609e..a9ec46a 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
@@ -36,10 +36,6 @@ public interface Any<P extends PlainAttr<?>> extends AnnotatedEntity {
 
     void setStatus(String status);
 
-    String getWorkflowId();
-
-    void setWorkflowId(String workflowId);
-
     boolean add(P attr);
 
     boolean remove(P attr);

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
index 90805da..30601d9 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
@@ -91,13 +91,4 @@ public interface User extends
     boolean add(Role role);
 
     List<? extends Role> getRoles();
-
-    String getLastRecertificator();
-
-    void setLastRecertificator(String lastRecertificator);
-
-    Date getLastRecertification();
-
-    void setLastRecertification(Date lastRecertificion);
-
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
index 180c395..567a6fc 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
@@ -29,7 +29,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
-import javax.persistence.NoResultException;
 import javax.persistence.Query;
 import javax.persistence.TemporalType;
 import org.apache.commons.jexl3.parser.Parser;
@@ -177,23 +176,6 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
         return (A) entityManager().find(anyUtils().anyClass(), key);
     }
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public A findByWorkflowId(final String workflowId) {
-        Query query = entityManager().createQuery("SELECT e FROM " + anyUtils().anyClass().getSimpleName()
-                + " e WHERE e.workflowId = :workflowId", User.class);
-        query.setParameter("workflowId", workflowId);
-
-        A result = null;
-        try {
-            result = (A) query.getSingleResult();
-        } catch (NoResultException e) {
-            LOG.debug("No user found with workflow id {}", workflowId, e);
-        }
-
-        return result;
-    }
-
     private Query findByPlainAttrValueQuery(final String entityName, final boolean ignoreCaseMatch) {
         String query = "SELECT e FROM " + entityName + " e"
                 + " WHERE e.attribute.schema.id = :schemaKey AND (e.stringValue IS NOT NULL"

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
index 64550a7..4d8aaea 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
@@ -264,8 +264,8 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
         });
 
         entityManager().remove(anyObject);
-        publisher.publishEvent(
-                new AnyDeletedEvent(this, AnyTypeKind.ANY_OBJECT, anyObject.getKey(), AuthContextUtils.getDomain()));
+        publisher.publishEvent(new AnyDeletedEvent(
+                this, AnyTypeKind.ANY_OBJECT, anyObject.getKey(), anyObject.getName(), AuthContextUtils.getDomain()));
     }
 
     @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
index f565358..cdb25918 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
@@ -380,8 +380,8 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
         clearADynMembers(group);
 
         entityManager().remove(group);
-        publisher.publishEvent(
-                new AnyDeletedEvent(this, AnyTypeKind.GROUP, group.getKey(), AuthContextUtils.getDomain()));
+        publisher.publishEvent(new AnyDeletedEvent(
+                this, AnyTypeKind.GROUP, group.getKey(), group.getName(), AuthContextUtils.getDomain()));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
index c9b18ec..f105da5 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
@@ -23,8 +23,7 @@ import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.api.dao.SecurityQuestionDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
-import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.persistence.jpa.entity.JPASecurityQuestion;
+import org.apache.syncope.core.persistence.jpa.entity.user.JPASecurityQuestion;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
@@ -41,7 +40,7 @@ public class JPASecurityQuestionDAO extends AbstractDAO<SecurityQuestion> implem
 
     @Override
     public List<SecurityQuestion> findAll() {
-        final TypedQuery<SecurityQuestion> query = entityManager().createQuery(
+        TypedQuery<SecurityQuestion> query = entityManager().createQuery(
                 "SELECT e FROM " + JPASecurityQuestion.class.getSimpleName() + " e ", SecurityQuestion.class);
         return query.getResultList();
     }
@@ -58,13 +57,12 @@ public class JPASecurityQuestionDAO extends AbstractDAO<SecurityQuestion> implem
             return;
         }
 
-        for (User user : userDAO.findBySecurityQuestion(securityQuestion)) {
+        userDAO.findBySecurityQuestion(securityQuestion).forEach(user -> {
             user.setSecurityQuestion(null);
             user.setSecurityAnswer(null);
             userDAO.save(user);
-        }
+        });
 
         entityManager().remove(securityQuestion);
     }
-
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
index b85147f..adc36f5 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
@@ -429,8 +429,8 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
         }
 
         entityManager().remove(user);
-        publisher.publishEvent(
-                new AnyDeletedEvent(this, AnyTypeKind.USER, user.getKey(), AuthContextUtils.getDomain()));
+        publisher.publishEvent(new AnyDeletedEvent(
+                this, AnyTypeKind.USER, user.getKey(), user.getUsername(), AuthContextUtils.getDomain()));
     }
 
     @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
index e77fb7d..86e2dd5 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
@@ -36,8 +36,6 @@ public abstract class AbstractAny<P extends PlainAttr<?>> extends AbstractAnnota
     @ManyToOne(fetch = FetchType.EAGER, optional = false)
     private JPARealm realm;
 
-    private String workflowId;
-
     @Column(nullable = true)
     private String status;
 
@@ -53,16 +51,6 @@ public abstract class AbstractAny<P extends PlainAttr<?>> extends AbstractAnnota
     }
 
     @Override
-    public String getWorkflowId() {
-        return workflowId;
-    }
-
-    @Override
-    public void setWorkflowId(final String workflowId) {
-        this.workflowId = workflowId;
-    }
-
-    @Override
     public String getStatus() {
         return status;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
index 1fa7787..96a333a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.core.persistence.jpa.entity;
 
+import org.apache.syncope.core.persistence.jpa.entity.user.JPASecurityQuestion;
 import org.apache.syncope.core.persistence.api.entity.AccessToken;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPasswordPolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPullPolicy;

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASecurityQuestion.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASecurityQuestion.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASecurityQuestion.java
deleted file mode 100644
index ab6e9d5..0000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASecurityQuestion.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
-
-@Entity
-@Table(name = JPASecurityQuestion.TABLE)
-public class JPASecurityQuestion extends AbstractGeneratedKeyEntity implements SecurityQuestion {
-
-    private static final long serialVersionUID = 7675321820453579744L;
-
-    public static final String TABLE = "SecurityQuestion";
-
-    @Column(unique = true)
-    private String content;
-
-    @Override
-    public String getContent() {
-        return content;
-    }
-
-    @Override
-    public void setContent(final String content) {
-        this.content = content;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
index b84330b..b4be360 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
@@ -95,16 +95,6 @@ public class JPAConf extends AbstractProvidedKeyEntity implements Conf {
     }
 
     @Override
-    public String getWorkflowId() {
-        return null;
-    }
-
-    @Override
-    public void setWorkflowId(final String workflowId) {
-        // nothing to do
-    }
-
-    @Override
     public String getStatus() {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPASecurityQuestion.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPASecurityQuestion.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPASecurityQuestion.java
new file mode 100644
index 0000000..d82f7ed
--- /dev/null
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPASecurityQuestion.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.entity.user;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
+import org.apache.syncope.core.persistence.jpa.entity.AbstractGeneratedKeyEntity;
+
+@Entity
+@Table(name = JPASecurityQuestion.TABLE)
+public class JPASecurityQuestion extends AbstractGeneratedKeyEntity implements SecurityQuestion {
+
+    private static final long serialVersionUID = 7675321820453579744L;
+
+    public static final String TABLE = "SecurityQuestion";
+
+    @Column(unique = true)
+    private String content;
+
+    @Override
+    public String getContent() {
+        return content;
+    }
+
+    @Override
+    public void setContent(final String content) {
+        this.content = content;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
index 4686aa6..4ede8b7 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
@@ -49,7 +49,6 @@ import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
 import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
-import org.apache.syncope.core.persistence.jpa.entity.JPASecurityQuestion;
 import org.apache.syncope.core.spring.security.Encryptor;
 import org.apache.syncope.core.spring.security.SecureRandomUtils;
 import org.apache.syncope.core.spring.ApplicationContextProvider;
@@ -96,8 +95,6 @@ public class JPAUser
     @Valid
     private List<JPAUPlainAttr> plainAttrs = new ArrayList<>();
 
-    private String workflowId;
-
     @Column(nullable = true)
     private String status;
 
@@ -144,13 +141,6 @@ public class JPAUser
     @Temporal(TemporalType.TIMESTAMP)
     private Date changePwdDate;
 
-    @Column(nullable = true)
-    private String lastRecertificator;
-
-    @Column(nullable = true)
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date lastRecertification;
-
     private Boolean suspended = false;
 
     private Boolean mustChangePassword = false;
@@ -282,16 +272,6 @@ public class JPAUser
     }
 
     @Override
-    public String getWorkflowId() {
-        return workflowId;
-    }
-
-    @Override
-    public void setWorkflowId(final String workflowId) {
-        this.workflowId = workflowId;
-    }
-
-    @Override
     public String getStatus() {
         return status;
     }
@@ -386,31 +366,6 @@ public class JPAUser
     }
 
     @Override
-    public String getLastRecertificator() {
-        return lastRecertificator;
-    }
-
-    @Override
-    public void setLastRecertificator(final String lastRecertificator) {
-        this.lastRecertificator = lastRecertificator;
-    }
-
-    @Override
-    public Date getLastRecertification() {
-        if (lastRecertification != null) {
-            return new Date(lastRecertification.getTime());
-        }
-        return null;
-    }
-
-    @Override
-    public void setLastRecertification(final Date lastRecertification) {
-        this.lastRecertification = lastRecertification == null
-                ? null
-                : new Date(lastRecertification.getTime());
-    }
-
-    @Override
     public String getUsername() {
         return username;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/MultiJarAwarePersistenceUnitPostProcessor.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/MultiJarAwarePersistenceUnitPostProcessor.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/MultiJarAwarePersistenceUnitPostProcessor.java
index b4a598f..a40aa8a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/MultiJarAwarePersistenceUnitPostProcessor.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/MultiJarAwarePersistenceUnitPostProcessor.java
@@ -22,7 +22,6 @@ import javax.persistence.Entity;
 import org.apache.syncope.core.persistence.jpa.entity.AbstractEntity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
 import org.springframework.core.type.filter.AnnotationTypeFilter;
 import org.springframework.orm.jpa.persistenceunit.MutablePersistenceUnitInfo;
@@ -40,10 +39,9 @@ public class MultiJarAwarePersistenceUnitPostProcessor implements PersistenceUni
         ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
         scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
 
-        for (BeanDefinition bd : scanner.findCandidateComponents(AbstractEntity.class.getPackage().getName())) {
+        scanner.findCandidateComponents(AbstractEntity.class.getPackage().getName()).forEach(bd -> {
             LOG.debug("Adding JPA entity {}", bd.getBeanClassName());
             pui.addManagedClassName(bd.getBeanClassName());
-        }
+        });
     }
-
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/resources/domains/MasterContent.xml b/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
index 123e500..fd66eb6 100644
--- a/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/main/resources/domains/MasterContent.xml
@@ -126,15 +126,6 @@ under the License.
   <CPlainAttrValue id="e5fa94db-b524-4309-908d-8198d0b3f779"
                    attribute_id="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a" booleanValue="0"/>
 
-  <!-- Identity Recertification interval in days -->                   
-  <SyncopeSchema id="identity.recertification.day.interval"/>
-  <PlainSchema id="identity.recertification.day.interval" type="Long"
-               mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr id="bcfd7efc-0605-4b5e-b4bb-85c1d5f64bbb"
-              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="identity.recertification.day.interval"/>
-  <CPlainAttrValue id="e5fa94db-b524-4309-908d-8198d0b3f77b"
-                   attribute_id="bcfd7efc-0605-4b5e-b4bb-85c1d5f64bbb" longValue="-1"/>
-
   <!--  JWT lifetime in minutes -->                   
   <SyncopeSchema id="jwt.lifetime.minutes"/>
   <PlainSchema id="jwt.lifetime.minutes" type="Long"
@@ -185,10 +176,6 @@ under the License.
   <Implementation id="PushJobDelegate" type="TASKJOB_DELEGATE" engine="JAVA"
                   body="org.apache.syncope.core.provisioning.java.pushpull.PushJobDelegate"/>
 
-  <Implementation id="IdentityRecertification" type="TASKJOB_DELEGATE" engine="JAVA"
-                  body="org.apache.syncope.core.provisioning.java.job.IdentityRecertification"/>
-  <Task DTYPE="SchedTask" id="e95555d2-1b09-42c8-b25b-f4c4ec598989" name="Identity Recertification Task"  active="1"
-        jobDelegate_id="IdentityRecertification"/>
 
   <Implementation id="ExpiredAccessTokenCleanup" type="TASKJOB_DELEGATE" engine="JAVA"
                   body="org.apache.syncope.core.provisioning.java.job.ExpiredAccessTokenCleanup"/>
@@ -196,7 +183,7 @@ under the License.
         jobDelegate_id="ExpiredAccessTokenCleanup" cronExpression="0 0/5 * * * ?"/>
   <Implementation id="ExpiredBatchCleanup" type="TASKJOB_DELEGATE" engine="JAVA"
                   body="org.apache.syncope.core.provisioning.java.job.ExpiredBatchCleanup"/>
-  <Task DTYPE="SchedTask" id="8ea0ea51-ce08-4fe3-a0c8-c281b31b5893" name="Access Token Cleanup Task"  active="1"
+  <Task DTYPE="SchedTask" id="8ea0ea51-ce08-4fe3-a0c8-c281b31b5893" name="Expired Batch Operations Cleanup Task"  active="1"
         jobDelegate_id="ExpiredBatchCleanup" cronExpression="0 0/5 * * * ?"/>
 
   <!-- Password reset notifications -->

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
index f505fbe..2f29e17 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
@@ -43,7 +43,7 @@ public class ImplementationTest extends AbstractTest {
         List<Implementation> implementations = implementationDAO.findAll();
         assertFalse(implementations.isEmpty());
 
-        assertEquals(19, implementations.size());
+        assertEquals(18, implementations.size());
 
         implementations = implementationDAO.find(ImplementationType.PULL_ACTIONS);
         assertEquals(1, implementations.size());
@@ -52,7 +52,7 @@ public class ImplementationTest extends AbstractTest {
         assertEquals(1, implementations.size());
 
         implementations = implementationDAO.find(ImplementationType.TASKJOB_DELEGATE);
-        assertEquals(6, implementations.size());
+        assertEquals(5, implementations.size());
 
         implementations = implementationDAO.find(ImplementationType.REPORTLET);
         assertEquals(2, implementations.size());

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
index caabb79..8197a55 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
@@ -76,7 +76,7 @@ public class MultitenancyTest extends AbstractTest {
 
     @Test
     public void readPlainSchemas() {
-        assertEquals(13, plainSchemaDAO.findAll().size());
+        assertEquals(12, plainSchemaDAO.findAll().size());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainSchemaTest.java
index 94fbf40..ff46d62 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainSchemaTest.java
@@ -53,7 +53,7 @@ public class PlainSchemaTest extends AbstractTest {
     @Test
     public void findAll() {
         List<PlainSchema> schemas = plainSchemaDAO.findAll();
-        assertEquals(42, schemas.size());
+        assertEquals(41, schemas.size());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
index a912d42..803984e 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
@@ -97,7 +97,7 @@ public class TaskTest extends AbstractTest {
     public void findAll() {
         assertEquals(5, taskDAO.findAll(TaskType.PROPAGATION).size());
         assertEquals(1, taskDAO.findAll(TaskType.NOTIFICATION).size());
-        assertEquals(4, taskDAO.findAll(TaskType.SCHEDULED).size());
+        assertEquals(3, taskDAO.findAll(TaskType.SCHEDULED).size());
         assertEquals(10, taskDAO.findAll(TaskType.PULL).size());
         assertEquals(11, taskDAO.findAll(TaskType.PUSH).size());
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/66b3a04e/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 1f0fd44..fb05d94 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -126,15 +126,6 @@ under the License.
   <CPlainAttrValue id="e5fa94db-b524-4309-908d-8198d0b3f779"
                    attribute_id="bcfd7efc-0605-4b5e-b4bb-85c1d5f6493a" booleanValue="0"/>
   
-  <!-- Identity Recertification interval in days -->                   
-  <SyncopeSchema id="identity.recertification.day.interval"/>
-  <PlainSchema id="identity.recertification.day.interval" type="Long"
-               mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
-  <CPlainAttr id="bcfd7efc-0605-4b5e-b4bb-85c1d5f64bbb"
-              owner_id="cd64d66f-6fff-4008-b966-a06b1cc1436d" schema_id="identity.recertification.day.interval"/>
-  <CPlainAttrValue id="e5fa94db-b524-4309-908d-8198d0b3f77b"
-                   attribute_id="bcfd7efc-0605-4b5e-b4bb-85c1d5f64bbb" longValue="365"/>
-
   <!--  JWT lifetime in minutes -->                   
   <SyncopeSchema id="jwt.lifetime.minutes"/>
   <PlainSchema id="jwt.lifetime.minutes" type="Long"
@@ -290,30 +281,30 @@ under the License.
   <SyncopeRole_Realm role_id="Connector and Resource for realm evenTwo"
                      realm_id="0679e069-7355-4b20-bd11-a5a0a5453c7c"/>
 
-  <SyncopeUser mustChangePassword="0" id="1417acbe-cbf6-4277-9372-e75e04f97000" workflowId="4" status="active"
+  <SyncopeUser mustChangePassword="0" id="1417acbe-cbf6-4277-9372-e75e04f97000" status="active"
                password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
                realm_id="c5b75db1-fce7-470f-b780-3b9934d82a9d"
                username="rossini" creator="admin" lastModifier="admin"
                creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
   <SyncopeUser_SyncopeRole user_id="1417acbe-cbf6-4277-9372-e75e04f97000" role_id="Other"/>
-  <SyncopeUser mustChangePassword="0" id="74cd8ece-715a-44a4-a736-e17b46c4e7e6" workflowId="6" status="active"
+  <SyncopeUser mustChangePassword="0" id="74cd8ece-715a-44a4-a736-e17b46c4e7e6" status="active"
                password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
                realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
                username="verdi" creator="admin" lastModifier="admin"
                creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
-  <SyncopeUser mustChangePassword="0" id="b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee" workflowId="8" status="active"
+  <SyncopeUser mustChangePassword="0" id="b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee" status="active"
                password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
                realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
                username="vivaldi" creator="admin" lastModifier="admin"
                creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
-  <SyncopeUser mustChangePassword="0" id="c9b2dec2-00a7-4855-97c0-d854842b4b24" workflowId="10" status="active"
+  <SyncopeUser mustChangePassword="0" id="c9b2dec2-00a7-4855-97c0-d854842b4b24" status="active"
                password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
                realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
                username="bellini" creator="admin" lastModifier="admin"
                creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
   <SyncopeUser_SyncopeRole user_id="c9b2dec2-00a7-4855-97c0-d854842b4b24" role_id="User reviewer"/>
   <SyncopeUser_SyncopeRole user_id="c9b2dec2-00a7-4855-97c0-d854842b4b24" role_id="User manager"/>
-  <SyncopeUser mustChangePassword="0" id="823074dc-d280-436d-a7dd-07399fae48ec" workflowId="12" status="active"
+  <SyncopeUser mustChangePassword="0" id="823074dc-d280-436d-a7dd-07399fae48ec" status="active"
                password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
                realm_id="e4c28e7a-9dbf-4ee7-9441-93812a0d4a28"
                username="puccini" creator="admin" lastModifier="admin" 
@@ -1210,10 +1201,6 @@ under the License.
                   body="org.apache.syncope.fit.core.reference.TestSampleJobDelegate"/>
   <Task DTYPE="SchedTask" id="e95555d2-1b09-42c8-b25b-f4c4ec597979" name="SampleJob Task" active="1"
         jobDelegate_id="TestSampleJobDelegate" cronExpression="0 0 0 1 * ?"/>
-  <Implementation id="IdentityRecertification" type="TASKJOB_DELEGATE" engine="JAVA"
-                  body="org.apache.syncope.core.provisioning.java.job.IdentityRecertification"/>
-  <Task DTYPE="SchedTask" id="e95555d2-1b09-42c8-b25b-f4c4ec598989" name="Identity Recertification Task"  active="1"
-        jobDelegate_id="IdentityRecertification"/>
   <Implementation id="ExpiredAccessTokenCleanup" type="TASKJOB_DELEGATE" engine="JAVA"
                   body="org.apache.syncope.core.provisioning.java.job.ExpiredAccessTokenCleanup"/>
   <Task DTYPE="SchedTask" id="89de5014-e3f5-4462-84d8-d97575740baf" name="Access Token Cleanup Task"  active="1"
@@ -1335,7 +1322,7 @@ under the License.
         unmatchingRule="PROVISION" matchingRule="UPDATE" active="1" jobDelegate_id="PullJobDelegate"/>
   <Implementation id="ExpiredBatchCleanup" type="TASKJOB_DELEGATE" engine="JAVA"
                   body="org.apache.syncope.core.provisioning.java.job.ExpiredBatchCleanup"/>
-  <Task DTYPE="SchedTask" id="8ea0ea51-ce08-4fe3-a0c8-c281b31b5893" name="Access Token Cleanup Task"  active="1"
+  <Task DTYPE="SchedTask" id="8ea0ea51-ce08-4fe3-a0c8-c281b31b5893" name="Expired Batch Operations Cleanup Task"  active="1"
         jobDelegate_id="ExpiredBatchCleanup" cronExpression="0 0/5 * * * ?"/>
 
   <MailTemplate id="requestPasswordReset"
@@ -2557,7 +2544,7 @@ $$ }&#10;
   
   <Report id="0062ea9c-924d-4ecf-9961-4492a8cc6d1b" name="test" active="1" template_id="sample"/>
   <Implementation id="UserReportletConf" type="REPORTLET" engine="JAVA"
-                  body='{"@class":"org.apache.syncope.common.lib.report.UserReportletConf","name":"testUserReportlet","matchingCond":null,"plainAttrs":["fullname","gender"],"derAttrs":["cn"],"virAttrs":["virtualdata"],"features":["key","username","workflowId","status","creationDate","lastLoginDate","changePwdDate","passwordHistorySize","failedLoginCount","memberships","resources"]}'/>
+                  body='{"@class":"org.apache.syncope.common.lib.report.UserReportletConf","name":"testUserReportlet","matchingCond":null,"plainAttrs":["fullname","gender"],"derAttrs":["cn"],"virAttrs":["virtualdata"],"features":["key","username","status","creationDate","lastLoginDate","changePwdDate","passwordHistorySize","failedLoginCount","memberships","resources"]}'/>
   <ReportReportlet report_id="0062ea9c-924d-4ecf-9961-4492a8cc6d1b" implementation_id="UserReportletConf"/>
   <ReportExec report_id="0062ea9c-924d-4ecf-9961-4492a8cc6d1b" id="c13f39c5-0d35-4bff-ba79-3cd5de940369"
               status="SUCCESS" startDate="2012-02-26 15:40:04" endDate="2012-02-26 15:41:04"/>


Mime
View raw message