You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/01/26 15:48:17 UTC
[11/12] syncope git commit: [SYNCOPE-620] IT with Activiti
[SYNCOPE-620] IT with Activiti
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/1327b2a4
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/1327b2a4
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/1327b2a4
Branch: refs/heads/2_0_X
Commit: 1327b2a44abe1cc1cea08540af17749bdbd88d4e
Parents: 702810d
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 26 15:47:02 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 26 15:47:02 2015 +0100
----------------------------------------------------------------------
.../syncope/common/to/WorkflowFormTO.java | 1 -
.../syncope/client/lib/SyncopeClient.java | 28 -
.../apache/syncope/common/lib/to/SyncopeTO.java | 186 ++++
.../common/lib/to/WorkflowFormPropertyTO.java | 12 +-
.../syncope/common/lib/to/WorkflowFormTO.java | 24 +-
.../common/lib/wrap/CorrelationRuleClass.java | 30 -
.../syncope/common/lib/wrap/JobClass.java | 30 -
.../syncope/common/lib/wrap/MailTemplate.java | 30 -
.../common/lib/wrap/PropagationActionClass.java | 30 -
.../common/lib/wrap/PushActionClass.java | 30 -
.../common/lib/wrap/SyncActionClass.java | 30 -
.../syncope/common/lib/wrap/Validator.java | 30 -
.../rest/api/service/ConfigurationService.java | 23 -
.../common/rest/api/service/PolicyService.java | 11 -
.../rest/api/service/ResourceService.java | 11 -
.../common/rest/api/service/SyncopeService.java | 33 +
.../common/rest/api/service/TaskService.java | 36 +-
syncope620/fit/reference/pom.xml | 56 +-
.../src/main/resources/userWorkflow.bpmn20.xml | 577 ++++++++++++
.../src/main/resources/workflow.properties | 20 +
.../fit/server/reference/AbstractITCase.java | 4 +
.../fit/server/reference/ActivitiDetector.java | 10 +-
.../server/reference/AuthenticationITCase.java | 2 +-
.../fit/server/reference/PolicyITCase.java | 2 +-
.../fit/server/reference/ResourceITCase.java | 3 +-
.../fit/server/reference/TaskITCase.java | 12 +-
.../fit/server/reference/UserITCase.java | 6 +-
.../fit/server/reference/UserSelfITCase.java | 14 +-
.../server/reference/UserWorkflowITCase.java | 6 +-
.../fit/server/reference/WorkflowITCase.java | 17 +-
.../src/test/resources/addActivitiToContent.xsl | 50 ++
syncope620/pom.xml | 15 +-
.../server/logic/ConfigurationLogic.java | 47 -
.../syncope/server/logic/EntitlementLogic.java | 2 +-
.../syncope/server/logic/LoggerLogic.java | 2 +-
.../syncope/server/logic/NotificationLogic.java | 12 +-
.../syncope/server/logic/PolicyLogic.java | 10 -
.../syncope/server/logic/ReportLogic.java | 40 +-
.../syncope/server/logic/ResourceLogic.java | 27 +-
.../apache/syncope/server/logic/RoleLogic.java | 14 +-
.../syncope/server/logic/SchemaLogic.java | 19 +-
.../server/logic/SecurityQuestionLogic.java | 12 +-
.../syncope/server/logic/SyncopeLogic.java | 143 +++
.../apache/syncope/server/logic/TaskLogic.java | 32 +-
.../apache/syncope/server/logic/UserLogic.java | 16 +-
.../init/ImplementationClassNamesLoader.java | 15 +-
.../logic/src/main/resources/logicContext.xml | 4 +
.../src/test/resources/content.xml | 2 +-
.../provisioning/api/ConnIdBundleManager.java | 2 +
.../java/ConnIdBundleManagerImpl.java | 7 +
.../provisioning/java/sync/SyncJobImpl.java | 4 +-
.../cxf/service/ConfigurationServiceImpl.java | 14 -
.../rest/cxf/service/PolicyServiceImpl.java | 9 +-
.../rest/cxf/service/ResourceServiceImpl.java | 7 -
.../rest/cxf/service/SyncopeServiceImpl.java | 38 +
.../rest/cxf/service/TaskServiceImpl.java | 19 -
syncope620/server/workflow-activiti/pom.xml | 5 +
.../activiti/ActivitiDefinitionLoader.java | 104 +++
.../workflow/activiti/ActivitiImportUtils.java | 92 ++
.../activiti/ActivitiUserWorkflowAdapter.java | 893 +++++++++++++++++++
.../activiti/SyncopeEntitiesVariableType.java | 35 +
.../workflow/activiti/SyncopeGroupManager.java | 122 +++
.../activiti/SyncopeGroupQueryImpl.java | 157 ++++
.../workflow/activiti/SyncopeSession.java | 26 +
.../activiti/SyncopeSessionFactory.java | 45 +
.../workflow/activiti/SyncopeUserManager.java | 170 ++++
.../workflow/activiti/SyncopeUserQueryImpl.java | 218 +++++
.../task/AbstractActivitiServiceTask.java | 48 +
.../workflow/activiti/task/AutoActivate.java | 31 +
.../server/workflow/activiti/task/Create.java | 51 ++
.../server/workflow/activiti/task/Delete.java | 40 +
.../workflow/activiti/task/GenerateToken.java | 43 +
.../server/workflow/activiti/task/Notify.java | 62 ++
.../workflow/activiti/task/PasswordReset.java | 44 +
.../workflow/activiti/task/Reactivate.java | 29 +
.../server/workflow/activiti/task/Suspend.java | 29 +
.../server/workflow/activiti/task/Update.java | 54 ++
.../activiti/ActivitiDefinitionLoader.java | 104 ---
.../workflow/activiti/ActivitiImportUtils.java | 92 --
.../activiti/ActivitiUserWorkflowAdapter.java | 893 -------------------
.../activiti/SyncopeEntitiesVariableType.java | 35 -
.../workflow/activiti/SyncopeGroupManager.java | 122 ---
.../activiti/SyncopeGroupQueryImpl.java | 157 ----
.../workflow/activiti/SyncopeSession.java | 26 -
.../activiti/SyncopeSessionFactory.java | 45 -
.../workflow/activiti/SyncopeUserManager.java | 170 ----
.../workflow/activiti/SyncopeUserQueryImpl.java | 218 -----
.../task/AbstractActivitiServiceTask.java | 48 -
.../workflow/activiti/task/AutoActivate.java | 31 -
.../syncope/workflow/activiti/task/Create.java | 51 --
.../syncope/workflow/activiti/task/Delete.java | 40 -
.../workflow/activiti/task/GenerateToken.java | 43 -
.../syncope/workflow/activiti/task/Notify.java | 62 --
.../workflow/activiti/task/PasswordReset.java | 44 -
.../workflow/activiti/task/Reactivate.java | 29 -
.../syncope/workflow/activiti/task/Suspend.java | 29 -
.../syncope/workflow/activiti/task/Update.java | 54 --
.../src/main/resources/workflow.properties | 20 +
.../main/resources/workflowActivitiContext.xml | 14 +-
.../src/main/resources/workflow.properties | 2 +
100 files changed, 3584 insertions(+), 2909 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java b/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
index 0269e92..26d023b 100644
--- a/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
+++ b/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
@@ -32,7 +32,6 @@ import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.AbstractBaseBean;
-import org.apache.syncope.common.to.WorkflowFormPropertyTO;
@XmlRootElement(name = "workflowForm")
@XmlType
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/syncope620/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java b/syncope620/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index 8407662..11bfa51 100644
--- a/syncope620/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/syncope620/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -20,16 +20,13 @@ package org.apache.syncope.client.lib;
import javax.ws.rs.core.EntityTag;
import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.common.lib.search.OrderByClauseBuilder;
import org.apache.syncope.common.lib.search.RoleFiqlSearchConditionBuilder;
import org.apache.syncope.common.lib.search.UserFiqlSearchConditionBuilder;
-import org.apache.syncope.common.lib.types.SubjectType;
import org.apache.syncope.common.rest.api.Preference;
import org.apache.syncope.common.rest.api.RESTHeaders;
import org.apache.syncope.common.rest.api.service.UserSelfService;
-import org.apache.syncope.common.rest.api.service.WorkflowService;
/**
* Entry point for client access to all REST services exposed by Syncope core; obtain instances via
@@ -239,31 +236,6 @@ public class SyncopeClient {
}
/**
- * Checks whether Activiti workflow is enabled for users / roles, by calling <tt>WorkflowService</tt>'s options.
- *
- * @param subjectType user / role
- * @return whether Activiti workflow is enabled for given attributable type
- * @see WorkflowService#getOptions(org.apache.syncope.common.types.SubjectType)
- */
- public boolean isActivitiEnabledFor(final SubjectType subjectType) {
- Response options = getService(WorkflowService.class).getOptions(subjectType);
-
- boolean result;
- switch (subjectType) {
- case ROLE:
- result = Boolean.valueOf(options.getHeaderString(RESTHeaders.ACTIVITI_ROLE_ENABLED));
- break;
-
- case USER:
- default:
- result = Boolean.valueOf(options.getHeaderString(RESTHeaders.ACTIVITI_USER_ENABLED));
- break;
- }
-
- return result;
- }
-
- /**
* Fetches <tt>ETag</tt> header value from latest service run (if available).
*
* @param <T> any service class
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/SyncopeTO.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/SyncopeTO.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/SyncopeTO.java
new file mode 100644
index 0000000..d21e03f
--- /dev/null
+++ b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/SyncopeTO.java
@@ -0,0 +1,186 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+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;
+
+@XmlRootElement(name = "syncope")
+@XmlType
+public class SyncopeTO extends AbstractBaseBean {
+
+ private static final long serialVersionUID = -7941853999417673827L;
+
+ private String version;
+
+ private final List<String> connIdLocations = new ArrayList<>();
+
+ private String attributableTransformer;
+
+ private String userWorkflowAdapter;
+
+ private String roleWorkflowAdapter;
+
+ private String userProvisioningManager;
+
+ private String roleProvisioningManager;
+
+ private final List<String> reportlets = new ArrayList<>();
+
+ private final List<String> taskJobs = new ArrayList<>();
+
+ private final List<String> propagationActions = new ArrayList<>();
+
+ private final List<String> syncActions = new ArrayList<>();
+
+ private final List<String> pushActions = new ArrayList<>();
+
+ private final List<String> syncCorrelationRules = new ArrayList<>();
+
+ private final List<String> pushCorrelationRules = new ArrayList<>();
+
+ private final List<String> validators = new ArrayList<>();
+
+ private final List<String> mailTemplates = new ArrayList<>();
+
+ public String getVersion() {
+ return version;
+ }
+
+ @XmlElementWrapper(name = "connIdLocations")
+ @XmlElement(name = "connIdLocation")
+ @JsonProperty("connIdLocations")
+ public List<String> getConnIdLocations() {
+ return connIdLocations;
+ }
+
+ public String getAttributableTransformer() {
+ return attributableTransformer;
+ }
+
+ public String getUserWorkflowAdapter() {
+ return userWorkflowAdapter;
+ }
+
+ public String getRoleWorkflowAdapter() {
+ return roleWorkflowAdapter;
+ }
+
+ public String getUserProvisioningManager() {
+ return userProvisioningManager;
+ }
+
+ public String getRoleProvisioningManager() {
+ return roleProvisioningManager;
+ }
+
+ @XmlElementWrapper(name = "reportlets")
+ @XmlElement(name = "reportlet")
+ @JsonProperty("reportlets")
+ public List<String> getReportlets() {
+ return reportlets;
+ }
+
+ @XmlElementWrapper(name = "taskJobs")
+ @XmlElement(name = "taskJob")
+ @JsonProperty("taskJobs")
+ public List<String> getTaskJobs() {
+ return taskJobs;
+ }
+
+ @XmlElementWrapper(name = "propagationActions")
+ @XmlElement(name = "propagationAction")
+ @JsonProperty("propagationActions")
+ public List<String> getPropagationActions() {
+ return propagationActions;
+ }
+
+ @XmlElementWrapper(name = "syncActions")
+ @XmlElement(name = "syncAction")
+ @JsonProperty("syncActions")
+ public List<String> getSyncActions() {
+ return syncActions;
+ }
+
+ @XmlElementWrapper(name = "pushActions")
+ @XmlElement(name = "pushAction")
+ @JsonProperty("pushActions")
+ public List<String> getPushActions() {
+ return pushActions;
+ }
+
+ @XmlElementWrapper(name = "syncCorrelationRules")
+ @XmlElement(name = "syncCorrelationRule")
+ @JsonProperty("syncCorrelationRules")
+ public List<String> getSyncCorrelationRules() {
+ return syncCorrelationRules;
+ }
+
+ @XmlElementWrapper(name = "pushCorrelationRules")
+ @XmlElement(name = "pushCorrelationRule")
+ @JsonProperty("pushCorrelationRules")
+ public List<String> getPushCorrelationRules() {
+ return pushCorrelationRules;
+ }
+
+ @XmlElementWrapper(name = "validators")
+ @XmlElement(name = "validator")
+ @JsonProperty("validators")
+ public List<String> getValidators() {
+ return validators;
+ }
+
+ @XmlElementWrapper(name = "mailTemplates")
+ @XmlElement(name = "mailTemplate")
+ @JsonProperty("mailTemplates")
+ public List<String> getMailTemplates() {
+ return mailTemplates;
+ }
+
+ public void setVersion(final String version) {
+ this.version = version;
+ }
+
+ public void setAttributableTransformer(final String attributableTransformer) {
+ this.attributableTransformer = attributableTransformer;
+ }
+
+ public void setUserWorkflowAdapter(final String userWorkflowAdapter) {
+ this.userWorkflowAdapter = userWorkflowAdapter;
+ }
+
+ public void setRoleWorkflowAdapter(final String roleWorkflowAdapter) {
+ this.roleWorkflowAdapter = roleWorkflowAdapter;
+ }
+
+ public void setUserProvisioningManager(final String userProvisioningManager) {
+ this.userProvisioningManager = userProvisioningManager;
+ }
+
+ public void setRoleProvisioningManager(final String roleProvisioningManager) {
+ this.roleProvisioningManager = roleProvisioningManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
index c89bfcd..5b67c92 100644
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
+++ b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
@@ -31,7 +31,7 @@ public class WorkflowFormPropertyTO extends AbstractBaseBean {
private static final long serialVersionUID = 9139969592634304261L;
- private String key;
+ private String id;
private String name;
@@ -47,14 +47,14 @@ public class WorkflowFormPropertyTO extends AbstractBaseBean {
private String datePattern;
- private Map<String, String> enumValues = new HashMap<>();
+ private final Map<String, String> enumValues = new HashMap<>();
- public String getKey() {
- return key;
+ public String getId() {
+ return id;
}
- public void setKey(final String key) {
- this.key = key;
+ public void setId(final String id) {
+ this.id = id;
}
public String getName() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
index f63d9fe..90dc7c2 100644
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
+++ b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
@@ -52,11 +52,7 @@ public class WorkflowFormTO extends AbstractBaseBean {
private String owner;
- private final List<WorkflowFormPropertyTO> properties;
-
- public WorkflowFormTO() {
- properties = new ArrayList<>();
- }
+ private final List<WorkflowFormPropertyTO> properties = new ArrayList<>();
public long getUserKey() {
return userKey;
@@ -133,27 +129,21 @@ public class WorkflowFormTO extends AbstractBaseBean {
@JsonIgnore
public Map<String, WorkflowFormPropertyTO> getPropertyMap() {
- Map<String, WorkflowFormPropertyTO> result;
-
- if (getProperties() == null) {
- result = Collections.emptyMap();
- } else {
- result = new HashMap<>();
- for (WorkflowFormPropertyTO prop : getProperties()) {
- result.put(prop.getKey(), prop);
- }
- result = Collections.unmodifiableMap(result);
+ Map<String, WorkflowFormPropertyTO> result = new HashMap<>();
+ for (WorkflowFormPropertyTO prop : getProperties()) {
+ result.put(prop.getId(), prop);
}
+ result = Collections.unmodifiableMap(result);
return result;
}
@JsonIgnore
public Map<String, String> getPropertiesForSubmit() {
- Map<String, String> props = new HashMap<String, String>();
+ Map<String, String> props = new HashMap<>();
for (WorkflowFormPropertyTO prop : getProperties()) {
if (prop.isWritable()) {
- props.put(prop.getKey(), prop.getValue());
+ props.put(prop.getId(), prop.getValue());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/CorrelationRuleClass.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/CorrelationRuleClass.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/CorrelationRuleClass.java
deleted file mode 100644
index 6a8997c..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/CorrelationRuleClass.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "correlationRuleClass")
-@XmlType
-public class CorrelationRuleClass extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = -6715106427060816725L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/JobClass.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/JobClass.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/JobClass.java
deleted file mode 100644
index b85a6f5..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/JobClass.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "jobClass")
-@XmlType
-public class JobClass extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = -1953799905627918822L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/MailTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/MailTemplate.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/MailTemplate.java
deleted file mode 100644
index 11e254d..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/MailTemplate.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "mailTemplate")
-@XmlType
-public class MailTemplate extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = 7232619557172031478L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PropagationActionClass.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PropagationActionClass.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PropagationActionClass.java
deleted file mode 100644
index f8e54b6..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PropagationActionClass.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "propagationActionClass")
-@XmlType
-public class PropagationActionClass extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = 2187654394121198308L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PushActionClass.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PushActionClass.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PushActionClass.java
deleted file mode 100644
index e12fd8e..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/PushActionClass.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "pushActionClass")
-@XmlType
-public class PushActionClass extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = 1669581609310071906L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/SyncActionClass.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/SyncActionClass.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/SyncActionClass.java
deleted file mode 100644
index d6c7a77..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/SyncActionClass.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "syncActionClass")
-@XmlType
-public class SyncActionClass extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = 1669581609310071905L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/Validator.java
----------------------------------------------------------------------
diff --git a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/Validator.java b/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/Validator.java
deleted file mode 100644
index 71cad00..0000000
--- a/syncope620/common/lib/src/main/java/org/apache/syncope/common/lib/wrap/Validator.java
+++ /dev/null
@@ -1,30 +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.wrap;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "validator")
-@XmlType
-public class Validator extends AbstractWrappable<String> {
-
- private static final long serialVersionUID = 7233619557177034453L;
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index d886b91..3fa5f8a 100644
--- a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.common.rest.api.service;
-import java.util.List;
import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -31,8 +30,6 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.ConfTO;
-import org.apache.syncope.common.lib.wrap.MailTemplate;
-import org.apache.syncope.common.lib.wrap.Validator;
/**
* REST operations for configuration.
@@ -50,26 +47,6 @@ public interface ConfigurationService extends JAXRSService {
Response export();
/**
- * Returns a list of known mail-template names.
- *
- * @return a list of known mail-template names
- */
- @GET
- @Path("mailTemplates")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<MailTemplate> getMailTemplates();
-
- /**
- * Returns a list of known validator names.
- *
- * @return a list of known validator names
- */
- @GET
- @Path("validators")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<Validator> getValidators();
-
- /**
* Returns all configuration parameters.
*
* @return all configuration parameters
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index 6050d9c..c2a4e6a 100644
--- a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -36,7 +36,6 @@ import org.apache.cxf.jaxrs.model.wadl.Descriptions;
import org.apache.cxf.jaxrs.model.wadl.DocTarget;
import org.apache.syncope.common.lib.to.AbstractPolicyTO;
import org.apache.syncope.common.lib.types.PolicyType;
-import org.apache.syncope.common.lib.wrap.CorrelationRuleClass;
/**
* REST operations for policies.
@@ -45,16 +44,6 @@ import org.apache.syncope.common.lib.wrap.CorrelationRuleClass;
public interface PolicyService extends JAXRSService {
/**
- * Returns a list of classes to be used as correlation rules.
- *
- * @return list of classes to be used as correlation rules
- */
- @GET
- @Path("syncCorrelationRuleClasses")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<CorrelationRuleClass> getSyncCorrelationRuleClasses();
-
- /**
* Returns the policy matching the given key.
*
* @param policyKey key of requested policy
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index 044025b..313b0e9 100644
--- a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -40,7 +40,6 @@ import org.apache.syncope.common.lib.to.ConnObjectTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.ResourceDeassociationActionType;
import org.apache.syncope.common.lib.types.SubjectType;
-import org.apache.syncope.common.lib.wrap.PropagationActionClass;
import org.apache.syncope.common.lib.wrap.SubjectId;
/**
@@ -64,16 +63,6 @@ public interface ResourceService extends JAXRSService {
@NotNull @PathParam("type") SubjectType type, @NotNull @PathParam("key") Long key);
/**
- * Returns a list of classes that can be used to customize the propagation process.
- *
- * @return list of classes that can be used to customize the propagation process
- */
- @GET
- @Path("propagationActionsClasses")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<PropagationActionClass> getPropagationActionsClasses();
-
- /**
* Returns the resource with matching name.
*
* @param resourceKey Name of resource to be read
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
----------------------------------------------------------------------
diff --git a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
new file mode 100644
index 0000000..55cc092
--- /dev/null
+++ b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
@@ -0,0 +1,33 @@
+/*
+ * 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 javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import org.apache.syncope.common.lib.to.SyncopeTO;
+
+@Path("")
+public interface SyncopeService extends JAXRSService {
+
+ @GET
+ @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_XHTML_XML })
+ SyncopeTO info();
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index c3296dd..24c9b0e 100644
--- a/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/syncope620/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.common.rest.api.service;
-import java.util.List;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
@@ -45,9 +44,6 @@ import org.apache.syncope.common.lib.to.ReportExecTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
import org.apache.syncope.common.lib.to.TaskExecTO;
import org.apache.syncope.common.lib.types.TaskType;
-import org.apache.syncope.common.lib.wrap.JobClass;
-import org.apache.syncope.common.lib.wrap.PushActionClass;
-import org.apache.syncope.common.lib.wrap.SyncActionClass;
/**
* REST operations for tasks.
@@ -56,37 +52,7 @@ import org.apache.syncope.common.lib.wrap.SyncActionClass;
public interface TaskService extends JAXRSService {
/**
- * Returns a list of classes to be used for jobs.
- *
- * @return list of classes to be used for jobs
- */
- @GET
- @Path("jobClasses")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<JobClass> getJobClasses();
-
- /**
- * Returns a list of classes to be used as synchronization actions.
- *
- * @return list of classes to be used as synchronization actions
- */
- @GET
- @Path("syncActionsClasses")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<SyncActionClass> getSyncActionsClasses();
-
- /**
- * Returns a list of classes to be used as push actions.
- *
- * @return list of classes to be used as push actions
- */
- @GET
- @Path("pushActionsClasses")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<PushActionClass> getPushActionsClasses();
-
- /**
- * Returns the task matching the given id.
+ * Returns the task matching the given key.
*
* @param taskKey key of task to be read
* @param <T> type of taskTO
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/pom.xml
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/pom.xml b/syncope620/fit/reference/pom.xml
index 564d8f0..ec094cb 100644
--- a/syncope620/fit/reference/pom.xml
+++ b/syncope620/fit/reference/pom.xml
@@ -241,7 +241,7 @@ under the License.
<cargo.tomcat.ajp.port>${cargo.tomcat.ajp.port}</cargo.tomcat.ajp.port>
<cargo.rmi.port>${cargo.rmi.port}</cargo.rmi.port>
- <cargo.jvmargs>-noverify -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m</cargo.jvmargs>
+ <cargo.jvmargs>-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m</cargo.jvmargs>
</properties>
<configfiles>
<configfile>
@@ -355,7 +355,7 @@ under the License.
<configuration>
<properties>
<cargo.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
- -noverify -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m</cargo.jvmargs>
+ -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m</cargo.jvmargs>
</properties>
</configuration>
</configuration>
@@ -427,5 +427,57 @@ under the License.
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>all</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.syncope.server</groupId>
+ <artifactId>syncope-server-workflow-activiti</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <!-- Adds Activiti test content -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>xml-maven-plugin</artifactId>
+ <inherited>true</inherited>
+ <executions>
+ <execution>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>transform</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <transformationSets>
+ <transformationSet>
+ <dir>${project.build.directory}/classes</dir>
+ <includes>
+ <include>content.xml</include>
+ </includes>
+ <outputDir>${project.build.directory}/classes</outputDir>
+ <stylesheet>${basedir}/src/test/resources/addActivitiToContent.xsl</stylesheet>
+ <outputProperties>
+ <outputProperty>
+ <name>indent</name>
+ <value>yes</value>
+ </outputProperty>
+ </outputProperties>
+ </transformationSet>
+ </transformationSets>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/main/resources/userWorkflow.bpmn20.xml
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/main/resources/userWorkflow.bpmn20.xml b/syncope620/fit/reference/src/main/resources/userWorkflow.bpmn20.xml
new file mode 100644
index 0000000..d26dbe3
--- /dev/null
+++ b/syncope620/fit/reference/src/main/resources/userWorkflow.bpmn20.xml
@@ -0,0 +1,577 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:activiti="http://activiti.org/bpmn"
+ xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
+ xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
+ xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
+ typeLanguage="http://www.w3.org/2001/XMLSchema"
+ expressionLanguage="http://www.w3.org/1999/XPath"
+ targetNamespace="http://activiti.org/bpmn20">
+
+ <process id="userWorkflow" name="User Workflow" isExecutable="true">
+ <startEvent id="theStart"/>
+ <sequenceFlow id="flow1" sourceRef="theStart" targetRef="create"/>
+ <serviceTask id="create" name="Create" activiti:expression="#{create.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow2" sourceRef="create" targetRef="createGW"/>
+ <exclusiveGateway id="createGW"/>
+ <sequenceFlow id="createAsAnonymous2Approval" sourceRef="createGW" targetRef="createApproval">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${wfExecutor == 'anonymous' || user.getRoleKeys().contains(9)}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="create2Activate" sourceRef="createGW" targetRef="enableGW">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!user.getRoleKeys().contains(9)}]]></conditionExpression>
+ </sequenceFlow>
+ <userTask id="createApproval" name="Create approval" activiti:candidateGroups="7" activiti:formKey="createApproval">
+ <extensionElements>
+ <activiti:formProperty id="username" name="Username" type="string" expression="${user.username}" writable="false"/>
+ <activiti:formProperty id="approve" name="Approve?" type="boolean" variable="approve" required="true"/>
+ <activiti:formProperty id="rejectReason" name="Reason for rejecting" type="string" variable="rejectReason"/>
+ </extensionElements>
+ </userTask>
+ <sequenceFlow id="flow3" sourceRef="createApproval" targetRef="createApprovalGW"/>
+ <exclusiveGateway id="createApprovalGW"/>
+ <sequenceFlow id="createApprovalGW2EnableGW" sourceRef="createApprovalGW" targetRef="enableGW">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="createApproval2Reject" sourceRef="createApprovalGW" targetRef="reject">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approve}]]></conditionExpression>
+ </sequenceFlow>
+ <exclusiveGateway id="enableGW"/>
+ <sequenceFlow id="createApprovalGW2OptIn" sourceRef="enableGW" targetRef="generateToken">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${user.getRoleKeys().contains(11)}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="createApprovalGW2Activate" sourceRef="enableGW" targetRef="activate">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${enabled == null}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="createApprovalGW2Active" sourceRef="enableGW" targetRef="active">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${enabled}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="createApprovalGW2Suspended" sourceRef="enableGW" targetRef="suspend">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!enabled}]]></conditionExpression>
+ </sequenceFlow>
+ <serviceTask id="activate" name="Activate" activiti:expression="#{autoActivate.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow4" sourceRef="activate" targetRef="active"/>
+ <serviceTask id="generateToken" name="Generate token" activiti:expression="#{generateToken.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow5" sourceRef="generateToken" targetRef="created"/>
+ <userTask id="created" name="Created"/>
+ <sequenceFlow id="flow6" sourceRef="created" targetRef="optinGW"/>
+ <exclusiveGateway id="optinGW"/>
+ <sequenceFlow id="created2Activate" sourceRef="optinGW" targetRef="removeToken">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${user.checkToken(token)}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="created2Created" sourceRef="optinGW" targetRef="created">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!user.checkToken(token)}]]></conditionExpression>
+ </sequenceFlow>
+ <scriptTask id="removeToken" name="Remove Token and Activate" scriptFormat="groovy" activiti:autoStoreVariables="false">
+ <script>
+ user.removeToken()
+ </script>
+ </scriptTask>
+ <sequenceFlow id="flow7" sourceRef="removeToken" targetRef="active"/>
+ <userTask id="active" name="Active"/>
+ <sequenceFlow id="flow8" sourceRef="active" targetRef="activeGw"/>
+ <exclusiveGateway id="activeGw"/>
+ <sequenceFlow id="active2UpdateApproval" sourceRef="activeGw" targetRef="updateApproval">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${wfExecutor == user.getUsername() and task == 'update'
+ and (!userMod.getMembershipsToAdd().isEmpty() or !userMod.getMembershipsToRemove().isEmpty())}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2DeleteApproval" sourceRef="activeGw" targetRef="deleteApproval">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${wfExecutor == user.getUsername() and task == 'delete'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2Update" sourceRef="activeGw" targetRef="update">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'update'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2Suspend" sourceRef="activeGw" targetRef="suspend">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'suspend'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2Delete" sourceRef="activeGw" targetRef="delete">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'delete'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2RequestPasswordReset" sourceRef="activeGw" targetRef="generateToken4PasswordReset">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'requestPasswordReset'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="active2ConfirmPasswordReset" sourceRef="activeGw" targetRef="checkToken4ConfirmPasswordReset">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'confirmPasswordReset'}]]></conditionExpression>
+ </sequenceFlow>
+ <userTask id="updateApproval" name="Update approval" activiti:candidateGroups="7" activiti:formKey="updateApproval">
+ <extensionElements>
+ <activiti:formProperty id="username" name="Username" type="string" expression="${user.username}" writable="false"/>
+ <activiti:formProperty id="approve" name="Approve?" type="boolean" variable="approve" required="true"/>
+ <activiti:formProperty id="rejectReason" name="Reason for rejecting" type="string" variable="rejectReason"/>
+ </extensionElements>
+ </userTask>
+ <sequenceFlow id="flow8bis" sourceRef="updateApproval" targetRef="updateApprovalGW"/>
+ <exclusiveGateway id="updateApprovalGW"/>
+ <sequenceFlow id="updateApprovalGW2Update" sourceRef="updateApprovalGW" targetRef="update">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="updateApprovalGW2Reject" sourceRef="updateApprovalGW" targetRef="rejectUpdate">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approve}]]></conditionExpression>
+ </sequenceFlow>
+ <scriptTask id="rejectUpdate" name="Reject update" scriptFormat="groovy" activiti:autoStoreVariables="false">
+ <script>
+ execution.setVariable("propByResource", null);
+ </script>
+ </scriptTask>
+ <sequenceFlow id="flow8ter" sourceRef="rejectUpdate" targetRef="active"/>
+ <serviceTask id="update" name="Update" activiti:expression="#{update.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow9" sourceRef="update" targetRef="active"/>
+ <serviceTask id="suspend" name="Suspend" activiti:expression="#{suspend.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow10" sourceRef="suspend" targetRef="suspended"/>
+ <userTask id="suspended" name="Suspended"/>
+ <sequenceFlow id="flow11" sourceRef="suspended" targetRef="suspendedGw"/>
+ <exclusiveGateway id="suspendedGw"/>
+ <sequenceFlow id="suspended2Reactivate" sourceRef="suspendedGw" targetRef="reactivate">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'reactivate'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="suspended2Delete" sourceRef="suspendedGw" targetRef="delete">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'delete'}]]></conditionExpression>
+ </sequenceFlow>
+ <serviceTask id="reactivate" name="Reactivate" activiti:expression="#{reactivate.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow12" sourceRef="reactivate" targetRef="active"/>
+ <scriptTask id="reject" name="Reject" scriptFormat="groovy" activiti:autoStoreVariables="false">
+ <script>
+ def scriptVar = rejectReason
+ execution.setVariable("propByResource", null);
+ </script>
+ </scriptTask>
+ <sequenceFlow id="flow13" sourceRef="reject" targetRef="rejected"/>
+ <userTask id="rejected" name="Rejected"/>
+ <sequenceFlow id="flow14" sourceRef="rejected" targetRef="rejectedGw"/>
+ <exclusiveGateway id="rejectedGw"/>
+ <sequenceFlow id="rejected2Delete" sourceRef="rejectedGw" targetRef="delete">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${task == 'delete'}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="rejected2Rejected" sourceRef="rejectedGw" targetRef="rejected">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${empty task}]]></conditionExpression>
+ </sequenceFlow>
+ <userTask id="deleteApproval" name="Delete approval" activiti:candidateGroups="7" activiti:formKey="deleteApproval">
+ <extensionElements>
+ <activiti:formProperty id="username" name="Username" type="string" expression="${user.username}" writable="false"/>
+ <activiti:formProperty id="approve" name="Approve?" type="boolean" variable="approve" required="true"/>
+ <activiti:formProperty id="rejectReason" name="Reason for rejecting" type="string" variable="rejectReason"/>
+ </extensionElements>
+ </userTask>
+ <sequenceFlow id="flow14bis" sourceRef="deleteApproval" targetRef="deleteApprovalGW"/>
+ <exclusiveGateway id="deleteApprovalGW"/>
+ <sequenceFlow id="deleteApprovalGW2Delete" sourceRef="deleteApprovalGW" targetRef="delete">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve}]]></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="deleteApprovalGW2Reject" sourceRef="deleteApprovalGW" targetRef="rejectDelete">
+ <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approve}]]></conditionExpression>
+ </sequenceFlow>
+ <scriptTask id="rejectDelete" name="Reject delete" scriptFormat="groovy" activiti:autoStoreVariables="false">
+ <script>
+ execution.setVariable("propByResource", null);
+ </script>
+ </scriptTask>
+ <sequenceFlow id="flow14ter" sourceRef="rejectDelete" targetRef="active"/>
+
+ <serviceTask id="generateToken4PasswordReset" name="Generate token" activiti:expression="#{generateToken.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow15" sourceRef="generateToken4PasswordReset" targetRef="notify4RequestPasswordReset"/>
+ <serviceTask id="notify4RequestPasswordReset" name="Notification" activiti:expression="#{notify.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow16" sourceRef="notify4RequestPasswordReset" targetRef="active"/>
+
+ <serviceTask id="checkToken4ConfirmPasswordReset" name="Check token, remove and update password" activiti:expression="#{passwordReset.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow17" sourceRef="checkToken4ConfirmPasswordReset" targetRef="notify4ConfirmPasswordReset"/>
+ <serviceTask id="notify4ConfirmPasswordReset" name="Notification" activiti:expression="#{notify.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow18" sourceRef="notify4ConfirmPasswordReset" targetRef="active"/>
+
+ <serviceTask id="delete" name="Delete" activiti:expression="#{delete.execute(execution.processInstanceId)}"/>
+ <sequenceFlow id="flow99" sourceRef="delete" targetRef="theEnd"/>
+ <endEvent id="theEnd"/>
+ </process>
+
+ <bpmndi:BPMNDiagram id="BPMNDiagram_userWorkflow">
+ <bpmndi:BPMNPlane bpmnElement="userWorkflow" id="BPMNPlane_userWorkflow">
+ <bpmndi:BPMNShape bpmnElement="theStart" id="BPMNShape_theStart">
+ <omgdc:Bounds height="30.0" width="30.0" x="0.0" y="512.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="create" id="BPMNShape_create">
+ <omgdc:Bounds height="60.0" width="100.0" x="80.0" y="497.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="createGW" id="BPMNShape_createGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="230.0" y="506.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="createApproval" id="BPMNShape_createApproval">
+ <omgdc:Bounds height="60.0" width="100.0" x="320.0" y="560.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="createApprovalGW" id="BPMNShape_createApprovalGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="470.0" y="556.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="enableGW" id="BPMNShape_enableGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="590.0" y="429.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="activate" id="BPMNShape_activate">
+ <omgdc:Bounds height="60.0" width="100.0" x="710.0" y="610.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="generateToken" id="BPMNShape_generateToken">
+ <omgdc:Bounds height="60.0" width="100.0" x="702.0" y="188.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="created" id="BPMNShape_created">
+ <omgdc:Bounds height="60.0" width="100.0" x="852.0" y="213.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="optinGW" id="BPMNShape_optinGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="1002.0" y="240.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="removeToken" id="BPMNShape_removeToken">
+ <omgdc:Bounds height="60.0" width="100.0" x="1092.0" y="248.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="active" id="BPMNShape_active">
+ <omgdc:Bounds height="60.0" width="100.0" x="1030.0" y="511.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="activeGw" id="BPMNShape_activeGw">
+ <omgdc:Bounds height="40.0" width="40.0" x="1400.0" y="520.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="updateApproval" id="BPMNShape_updateApproval">
+ <omgdc:Bounds height="60.0" width="100.0" x="1490.0" y="740.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="updateApprovalGW" id="BPMNShape_updateApprovalGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="1670.0" y="740.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="rejectUpdate" id="BPMNShape_rejectUpdate">
+ <omgdc:Bounds height="60.0" width="100.0" x="1790.0" y="840.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="update" id="BPMNShape_update">
+ <omgdc:Bounds height="60.0" width="100.0" x="1790.0" y="700.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="suspend" id="BPMNShape_suspend">
+ <omgdc:Bounds height="60.0" width="100.0" x="1490.0" y="100.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="suspended" id="BPMNShape_suspended">
+ <omgdc:Bounds height="60.0" width="100.0" x="1640.0" y="120.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="suspendedGw" id="BPMNShape_suspendedGw">
+ <omgdc:Bounds height="40.0" width="40.0" x="1820.0" y="180.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="reactivate" id="BPMNShape_reactivate">
+ <omgdc:Bounds height="60.0" width="100.0" x="1940.0" y="110.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="reject" id="BPMNShape_reject">
+ <omgdc:Bounds height="60.0" width="100.0" x="560.0" y="659.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="rejected" id="BPMNShape_rejected">
+ <omgdc:Bounds height="60.0" width="100.0" x="710.0" y="770.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="rejectedGw" id="BPMNShape_rejectedGw">
+ <omgdc:Bounds height="40.0" width="40.0" x="890.0" y="775.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="deleteApproval" id="BPMNShape_deleteApproval">
+ <omgdc:Bounds height="60.0" width="100.0" x="1490.0" y="280.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="deleteApprovalGW" id="BPMNShape_deleteApprovalGW">
+ <omgdc:Bounds height="40.0" width="40.0" x="1670.0" y="300.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="rejectDelete" id="BPMNShape_rejectDelete">
+ <omgdc:Bounds height="60.0" width="100.0" x="1790.0" y="240.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="delete" id="BPMNShape_delete">
+ <omgdc:Bounds height="60.0" width="100.0" x="1940.0" y="358.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="theEnd" id="BPMNShape_theEnd">
+ <omgdc:Bounds height="28.0" width="28.0" x="2078.1893792531678" y="374.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="generateToken4PasswordReset" id="BPMNShape_generateToken4PasswordReset">
+ <omgdc:Bounds height="59.99999999999994" width="100.0" x="1543.209935088986" y="452.6749142927693"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="notify4RequestPasswordReset" id="BPMNShape_notify4RequestPasswordReset">
+ <omgdc:Bounds height="60.00000000000006" width="100.0" x="1748.9712597675173" y="452.6749142927692"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="checkToken4ConfirmPasswordReset" id="BPMNShape_checkToken4ConfirmPasswordReset">
+ <omgdc:Bounds height="60.0" width="100.0" x="1558.797798366986" y="561.167207412115"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape bpmnElement="notify4ConfirmPasswordReset" id="BPMNShape_notify4ConfirmPasswordReset">
+ <omgdc:Bounds height="60.0" width="100.0" x="1748.971259767517" y="561.167207412115"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
+ <omgdi:waypoint x="1658.797798366986" y="591.167207412115"/>
+ <omgdi:waypoint x="1748.971259767517" y="591.167207412115"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
+ <omgdi:waypoint x="1940.0" y="129.51612903225805"/>
+ <omgdi:waypoint x="1928.0" y="127.0"/>
+ <omgdi:waypoint x="1378.0" y="40.0"/>
+ <omgdi:waypoint x="1097.8443113772455" y="511.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
+ <omgdi:waypoint x="1740.0" y="150.0"/>
+ <omgdi:waypoint x="1752.0" y="150.0"/>
+ <omgdi:waypoint x="1752.0" y="200.0"/>
+ <omgdi:waypoint x="1820.0" y="200.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2DeleteApproval" id="BPMNEdge_active2DeleteApproval">
+ <omgdi:waypoint x="1440.0" y="540.0"/>
+ <omgdi:waypoint x="1454.0" y="540.0"/>
+ <omgdi:waypoint x="1454.0" y="310.0"/>
+ <omgdi:waypoint x="1490.0" y="310.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow14bis" id="BPMNEdge_flow14bis">
+ <omgdi:waypoint x="1590.0" y="310.0"/>
+ <omgdi:waypoint x="1602.0" y="310.0"/>
+ <omgdi:waypoint x="1602.0" y="320.0"/>
+ <omgdi:waypoint x="1670.0" y="320.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
+ <omgdi:waypoint x="1590.0" y="130.0"/>
+ <omgdi:waypoint x="1602.0" y="130.0"/>
+ <omgdi:waypoint x="1602.0" y="150.0"/>
+ <omgdi:waypoint x="1640.0" y="150.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2RequestPasswordReset" id="BPMNEdge_active2RequestPasswordReset">
+ <omgdi:waypoint x="1439.5" y="540.5"/>
+ <omgdi:waypoint x="1593.209935088986" y="540.5"/>
+ <omgdi:waypoint x="1593.209935088986" y="512.6749142927692"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2ConfirmPasswordReset" id="BPMNEdge_active2ConfirmPasswordReset">
+ <omgdi:waypoint x="1439.5" y="540.5"/>
+ <omgdi:waypoint x="1608.797798366986" y="540.5"/>
+ <omgdi:waypoint x="1608.797798366986" y="561.167207412115"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="deleteApprovalGW2Delete" id="BPMNEdge_deleteApprovalGW2Delete">
+ <omgdi:waypoint x="1710.0" y="320.0"/>
+ <omgdi:waypoint x="1752.0" y="320.0"/>
+ <omgdi:waypoint x="1752.0" y="388.0"/>
+ <omgdi:waypoint x="1940.0" y="388.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApproval2Reject" id="BPMNEdge_createApproval2Reject">
+ <omgdi:waypoint x="510.0" y="576.0"/>
+ <omgdi:waypoint x="522.0" y="576.0"/>
+ <omgdi:waypoint x="522.0" y="689.0"/>
+ <omgdi:waypoint x="560.0" y="689.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2Delete" id="BPMNEdge_active2Delete">
+ <omgdi:waypoint x="1440.0" y="540.0"/>
+ <omgdi:waypoint x="1452.0" y="540.0"/>
+ <omgdi:waypoint x="1452.0" y="680.6812757582483"/>
+ <omgdi:waypoint x="1955.9214707261015" y="680.6812757582483"/>
+ <omgdi:waypoint x="1986.506931044467" y="418.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="updateApprovalGW2Update" id="BPMNEdge_updateApprovalGW2Update">
+ <omgdi:waypoint x="1710.0" y="760.0"/>
+ <omgdi:waypoint x="1752.0" y="760.0"/>
+ <omgdi:waypoint x="1752.0" y="730.0"/>
+ <omgdi:waypoint x="1790.0" y="730.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2UpdateApproval" id="BPMNEdge_active2UpdateApproval">
+ <omgdi:waypoint x="1440.0" y="540.0"/>
+ <omgdi:waypoint x="1454.0" y="540.0"/>
+ <omgdi:waypoint x="1454.0" y="770.0"/>
+ <omgdi:waypoint x="1490.0" y="770.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="rejected2Delete" id="BPMNEdge_rejected2Delete">
+ <omgdi:waypoint x="930.0" y="795.0"/>
+ <omgdi:waypoint x="972.0" y="795.0"/>
+ <omgdi:waypoint x="1470.0" y="911.0"/>
+ <omgdi:waypoint x="1990.0" y="911.0"/>
+ <omgdi:waypoint x="1990.0" y="418.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApprovalGW2Active" id="BPMNEdge_createApprovalGW2Active">
+ <omgdi:waypoint x="630.0" y="449.0"/>
+ <omgdi:waypoint x="674.0" y="449.0"/>
+ <omgdi:waypoint x="674.0" y="540.0"/>
+ <omgdi:waypoint x="1030.0" y="540.8768472906404"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="updateApprovalGW2Reject" id="BPMNEdge_updateApprovalGW2Reject">
+ <omgdi:waypoint x="1710.0" y="760.0"/>
+ <omgdi:waypoint x="1752.0" y="760.0"/>
+ <omgdi:waypoint x="1752.0" y="870.0"/>
+ <omgdi:waypoint x="1790.0" y="870.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow8ter" id="BPMNEdge_flow8ter">
+ <omgdi:waypoint x="1790.0" y="879.6774193548387"/>
+ <omgdi:waypoint x="1778.0" y="882.0"/>
+ <omgdi:waypoint x="1225.0" y="787.0"/>
+ <omgdi:waypoint x="1080.0" y="726.0"/>
+ <omgdi:waypoint x="1080.0" y="571.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
+ <omgdi:waypoint x="1643.209935088986" y="482.6749142927693"/>
+ <omgdi:waypoint x="1748.9712597675173" y="482.67491429276924"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="suspended2Reactivate" id="BPMNEdge_suspended2Reactivate">
+ <omgdi:waypoint x="1860.0" y="200.0"/>
+ <omgdi:waypoint x="1902.0" y="200.0"/>
+ <omgdi:waypoint x="1902.0" y="140.0"/>
+ <omgdi:waypoint x="1940.0" y="140.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
+ <omgdi:waypoint x="660.0" y="689.0"/>
+ <omgdi:waypoint x="672.0" y="689.0"/>
+ <omgdi:waypoint x="672.0" y="800.0"/>
+ <omgdi:waypoint x="710.0" y="800.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
+ <omgdi:waypoint x="760.0" y="770.0"/>
+ <omgdi:waypoint x="760.0" y="732.8074937730017"/>
+ <omgdi:waypoint x="910.0" y="732.8074937730017"/>
+ <omgdi:waypoint x="910.0" y="775.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApprovalGW2EnableGW" id="BPMNEdge_createApprovalGW2EnableGW">
+ <omgdi:waypoint x="510.0" y="576.0"/>
+ <omgdi:waypoint x="522.0" y="576.0"/>
+ <omgdi:waypoint x="522.0" y="449.0"/>
+ <omgdi:waypoint x="590.0" y="449.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2Update" id="BPMNEdge_active2Update">
+ <omgdi:waypoint x="1440.0" y="540.0"/>
+ <omgdi:waypoint x="1456.0" y="540.0"/>
+ <omgdi:waypoint x="1456.0" y="730.0"/>
+ <omgdi:waypoint x="1790.0" y="730.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="create2Activate" id="BPMNEdge_create2Activate">
+ <omgdi:waypoint x="270.0" y="526.0"/>
+ <omgdi:waypoint x="282.0" y="526.0"/>
+ <omgdi:waypoint x="282.0" y="449.0"/>
+ <omgdi:waypoint x="590.0" y="449.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="active2Suspend" id="BPMNEdge_active2Suspend">
+ <omgdi:waypoint x="1440.0" y="540.0"/>
+ <omgdi:waypoint x="1452.0" y="540.0"/>
+ <omgdi:waypoint x="1452.0" y="130.0"/>
+ <omgdi:waypoint x="1490.0" y="130.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="suspended2Delete" id="BPMNEdge_suspended2Delete">
+ <omgdi:waypoint x="1860.0" y="200.0"/>
+ <omgdi:waypoint x="1990.0" y="200.0"/>
+ <omgdi:waypoint x="1990.0" y="358.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="created2Activate" id="BPMNEdge_created2Activate">
+ <omgdi:waypoint x="1042.0" y="260.0"/>
+ <omgdi:waypoint x="1054.0" y="260.0"/>
+ <omgdi:waypoint x="1054.0" y="278.0"/>
+ <omgdi:waypoint x="1092.0" y="278.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createAsAnonymous2Approval" id="BPMNEdge_createAsAnonymous2Approval">
+ <omgdi:waypoint x="270.0" y="526.0"/>
+ <omgdi:waypoint x="282.0" y="526.0"/>
+ <omgdi:waypoint x="282.0" y="590.0"/>
+ <omgdi:waypoint x="320.0" y="590.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+ <omgdi:waypoint x="420.0" y="590.0"/>
+ <omgdi:waypoint x="432.0" y="590.0"/>
+ <omgdi:waypoint x="432.0" y="576.0"/>
+ <omgdi:waypoint x="470.0" y="576.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+ <omgdi:waypoint x="180.0" y="527.0"/>
+ <omgdi:waypoint x="192.0" y="527.0"/>
+ <omgdi:waypoint x="192.0" y="526.0"/>
+ <omgdi:waypoint x="230.0" y="526.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="rejected2Rejected" id="BPMNEdge_rejected2Rejected">
+ <omgdi:waypoint x="890.6451612903226" y="795.6451612903226"/>
+ <omgdi:waypoint x="810.0" y="798.3333333333334"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+ <omgdi:waypoint x="802.0" y="218.0"/>
+ <omgdi:waypoint x="814.0" y="218.0"/>
+ <omgdi:waypoint x="814.0" y="243.0"/>
+ <omgdi:waypoint x="852.0" y="243.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+ <omgdi:waypoint x="810.0" y="640.0"/>
+ <omgdi:waypoint x="822.0" y="640.0"/>
+ <omgdi:waypoint x="959.0" y="640.0"/>
+ <omgdi:waypoint x="1043.3333333333333" y="571.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApprovalGW2Suspended" id="BPMNEdge_createApprovalGW2Suspended">
+ <omgdi:waypoint x="630.0" y="449.0"/>
+ <omgdi:waypoint x="672.0" y="449.0"/>
+ <omgdi:waypoint x="672.0" y="130.0"/>
+ <omgdi:waypoint x="1490.0" y="130.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow14ter" id="BPMNEdge_flow14ter">
+ <omgdi:waypoint x="1790.0" y="260.7608891486752"/>
+ <omgdi:waypoint x="1424.117736926915" y="193.1523534073587"/>
+ <omgdi:waypoint x="1109.678315230625" y="511.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApprovalGW2OptIn" id="BPMNEdge_createApprovalGW2OptIn">
+ <omgdi:waypoint x="630.0" y="449.0"/>
+ <omgdi:waypoint x="674.0" y="449.0"/>
+ <omgdi:waypoint x="700.0" y="449.0"/>
+ <omgdi:waypoint x="745.2467532467532" y="248.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+ <omgdi:waypoint x="30.0" y="527.0"/>
+ <omgdi:waypoint x="80.0" y="527.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow16" id="BPMNEdge_flow16">
+ <omgdi:waypoint x="1748.9712597675173" y="459.5470829510475"/>
+ <omgdi:waypoint x="1592.4096593525787" y="387.128477171313"/>
+ <omgdi:waypoint x="1130.0" y="525.9854974413342"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="created2Created" id="BPMNEdge_created2Created">
+ <omgdi:waypoint x="1002.0" y="260.0"/>
+ <omgdi:waypoint x="990.0" y="260.0"/>
+ <omgdi:waypoint x="990.0" y="243.0"/>
+ <omgdi:waypoint x="952.0" y="243.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18">
+ <omgdi:waypoint x="1748.971259767517" y="619.7464352880323"/>
+ <omgdi:waypoint x="1673.525420205687" y="662.8701121105813"/>
+ <omgdi:waypoint x="1130.0" y="551.266629529393"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="createApprovalGW2Activate" id="BPMNEdge_createApprovalGW2Activate">
+ <omgdi:waypoint x="630.0" y="449.0"/>
+ <omgdi:waypoint x="672.0" y="449.0"/>
+ <omgdi:waypoint x="672.0" y="640.0"/>
+ <omgdi:waypoint x="710.0" y="640.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+ <omgdi:waypoint x="1134.9277566539924" y="308.0"/>
+ <omgdi:waypoint x="1087.0722433460076" y="511.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+ <omgdi:waypoint x="952.0" y="252.67741935483872"/>
+ <omgdi:waypoint x="964.0" y="255.0"/>
+ <omgdi:waypoint x="964.0" y="260.0"/>
+ <omgdi:waypoint x="1002.0" y="260.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
+ <omgdi:waypoint x="1828.6246202240113" y="760.0"/>
+ <omgdi:waypoint x="1811.88836468294" y="804.1381014189917"/>
+ <omgdi:waypoint x="1474.4398193359375" y="804.1381014189917"/>
+ <omgdi:waypoint x="1124.969521769241" y="571.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="deleteApprovalGW2Reject" id="BPMNEdge_deleteApprovalGW2Reject">
+ <omgdi:waypoint x="1710.0" y="320.0"/>
+ <omgdi:waypoint x="1752.0" y="320.0"/>
+ <omgdi:waypoint x="1752.0" y="270.0"/>
+ <omgdi:waypoint x="1790.0" y="270.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow8bis" id="BPMNEdge_flow8bis">
+ <omgdi:waypoint x="1590.0" y="770.0"/>
+ <omgdi:waypoint x="1602.0" y="770.0"/>
+ <omgdi:waypoint x="1602.0" y="760.0"/>
+ <omgdi:waypoint x="1670.0" y="760.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow99" id="BPMNEdge_flow99">
+ <omgdi:waypoint x="2040.0" y="388.0"/>
+ <omgdi:waypoint x="2078.1893792531678" y="388.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+ <omgdi:waypoint x="1130.0" y="540.8529411764706"/>
+ <omgdi:waypoint x="1400.058651026393" y="540.0586510263929"/>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</definitions>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/main/resources/workflow.properties
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/main/resources/workflow.properties b/syncope620/fit/reference/src/main/resources/workflow.properties
new file mode 100644
index 0000000..0cad37e
--- /dev/null
+++ b/syncope620/fit/reference/src/main/resources/workflow.properties
@@ -0,0 +1,20 @@
+# 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.
+wf.directory=${conf.directory}
+jobExecutorActivate=true
+uwfAdapter=org.apache.syncope.server.workflow.activiti.ActivitiUserWorkflowAdapter
+rwfAdapter=org.apache.syncope.server.workflow.java.DefaultRoleWorkflowAdapter
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AbstractITCase.java
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AbstractITCase.java b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AbstractITCase.java
index fc81657..255666c 100644
--- a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AbstractITCase.java
+++ b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AbstractITCase.java
@@ -59,6 +59,7 @@ import org.apache.syncope.common.rest.api.service.ResourceService;
import org.apache.syncope.common.rest.api.service.RoleService;
import org.apache.syncope.common.rest.api.service.SchemaService;
import org.apache.syncope.common.rest.api.service.SecurityQuestionService;
+import org.apache.syncope.common.rest.api.service.SyncopeService;
import org.apache.syncope.common.rest.api.service.TaskService;
import org.apache.syncope.common.rest.api.service.UserSelfService;
import org.apache.syncope.common.rest.api.service.UserService;
@@ -142,6 +143,8 @@ public abstract class AbstractITCase {
protected static SyncopeClient adminClient;
+ protected static SyncopeService syncopeService;
+
protected static UserService userService;
protected static UserSelfService userSelfService;
@@ -207,6 +210,7 @@ public abstract class AbstractITCase {
adminClient = clientFactory.create(ADMIN_UNAME, ADMIN_PWD);
+ syncopeService = adminClient.getService(SyncopeService.class);
userService = adminClient.getService(UserService.class);
userSelfService = adminClient.getService(UserSelfService.class);
userWorkflowService = adminClient.getService(UserWorkflowService.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ActivitiDetector.java
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ActivitiDetector.java b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ActivitiDetector.java
index ae35a23..03b686b 100644
--- a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ActivitiDetector.java
+++ b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ActivitiDetector.java
@@ -18,19 +18,19 @@
*/
package org.apache.syncope.fit.server.reference;
+import org.apache.syncope.common.rest.api.service.SyncopeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-// TODO: REMOVE!!!
public class ActivitiDetector {
private static final Logger LOG = LoggerFactory.getLogger(ActivitiDetector.class);
- public static boolean isActivitiEnabledForUsers() {
- return false;
+ public static boolean isActivitiEnabledForUsers(final SyncopeService syncopeService) {
+ return syncopeService.info().getUserWorkflowAdapter().indexOf("Activiti") != -1;
}
- public static boolean isActivitiEnabledForRoles() {
- return false;
+ public static boolean isActivitiEnabledForRoles(final SyncopeService syncopeService) {
+ return syncopeService.info().getRoleWorkflowAdapter().indexOf("Activiti") != -1;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AuthenticationITCase.java b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AuthenticationITCase.java
index 9c18a4d..5b3b4b0 100644
--- a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AuthenticationITCase.java
+++ b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/AuthenticationITCase.java
@@ -366,7 +366,7 @@ public class AuthenticationITCase extends AbstractITCase {
@Test
public void issueSYNCOPE434() {
- Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers());
+ Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers(syncopeService));
// 1. create user with role 9 (users with role 9 are defined in workflow as subject to approval)
UserTO userTO = UserITCase.getUniqueSampleTO("createWithReject@syncope.apache.org");
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/PolicyITCase.java
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/PolicyITCase.java b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/PolicyITCase.java
index 075cdd9..c25dc7f 100644
--- a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/PolicyITCase.java
+++ b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/PolicyITCase.java
@@ -205,7 +205,7 @@ public class PolicyITCase extends AbstractITCase {
@Test
public void getCorrelationRules() {
- assertEquals(1, policyService.getSyncCorrelationRuleClasses().size());
+ assertEquals(1, syncopeService.info().getSyncCorrelationRules().size());
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/1327b2a4/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ResourceITCase.java
----------------------------------------------------------------------
diff --git a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ResourceITCase.java b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ResourceITCase.java
index 6cb624a..69f26e3 100644
--- a/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ResourceITCase.java
+++ b/syncope620/fit/reference/src/test/java/org/apache/syncope/fit/server/reference/ResourceITCase.java
@@ -43,7 +43,6 @@ import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.common.lib.types.IntMappingType;
import org.apache.syncope.common.lib.types.MappingPurpose;
-import org.apache.syncope.common.lib.wrap.PropagationActionClass;
import org.apache.syncope.common.rest.api.service.ResourceService;
import org.junit.FixMethodOrder;
import org.junit.Test;
@@ -88,7 +87,7 @@ public class ResourceITCase extends AbstractITCase {
@Test
public void getPropagationActionsClasses() {
- List<PropagationActionClass> actions = resourceService.getPropagationActionsClasses();
+ List<String> actions = syncopeService.info().getPropagationActions();
assertNotNull(actions);
assertFalse(actions.isEmpty());
}