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/05/27 12:20:52 UTC
[1/7] syncope git commit: Upgrading Tomcat
Repository: syncope
Updated Branches:
refs/heads/1_2_X 13abc8331 -> f672ce492
refs/heads/SYNCOPE-666 63108c8f8 -> c608b5854
refs/heads/master c74d19809 -> 8ea1e6acc
Upgrading Tomcat
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c74d1980
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c74d1980
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c74d1980
Branch: refs/heads/SYNCOPE-666
Commit: c74d198098eecc3c21e50749de6ec505dc0898a1
Parents: 55d846e
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 11:42:03 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 11:42:03 2015 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/c74d1980/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5253fd0..13f4ac1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -406,7 +406,7 @@ under the License.
<cargo.log>${log.directory}/cargo.log</cargo.log>
<cargo.output>${log.directory}/cargo-output.log</cargo.output>
- <tomcat.version>8.0.22</tomcat.version>
+ <tomcat.version>8.0.23</tomcat.version>
<anonymousUser>anonymous</anonymousUser>
<!-- static keys, only used for build: generated overlays will override during archetype:generate -->
[3/7] syncope git commit: [SYNCOPE-673] Applying provided patch
Posted by il...@apache.org.
[SYNCOPE-673] Applying provided patch
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f672ce49
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f672ce49
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f672ce49
Branch: refs/heads/1_2_X
Commit: f672ce4925667fd80582878bdd55b9b0d644af0d
Parents: 13abc83
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 11:58:25 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 11:58:25 2015 +0200
----------------------------------------------------------------------
.../syncope/core/sync/impl/RoleSyncResultHandler.java | 12 +++++-------
.../syncope/core/sync/impl/UserSyncResultHandler.java | 11 ++++-------
2 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index 72ab83d..42929fc 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -85,6 +85,9 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
WorkflowResult<Long> created = rwfAdapter.create(roleTO);
+
+ result.setId(created.getResult());
+
AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
@@ -97,12 +100,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- roleTO = roleDataBinder.getRoleTO(created.getResult());
-
- result.setId(created.getResult());
- result.setName(getName(subjectTO));
-
- return roleTO;
+ return roleDataBinder.getRoleTO(created.getResult());
}
@Override
@@ -152,7 +150,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- final RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
+ RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
result.setName(getName(after));
return after;
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index 979feb3..ce055af 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -78,8 +78,9 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
UserTO userTO = UserTO.class.cast(subjectTO);
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- WorkflowResult<Map.Entry<Long, Boolean>> created =
- uwfAdapter.create(userTO, true, enabled, true);
+ WorkflowResult<Map.Entry<Long, Boolean>> created = uwfAdapter.create(userTO, true, enabled, true);
+
+ result.setId(created.getResult().getKey());
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(created,
userTO.getPassword(), userTO.getVirAttrs(),
@@ -88,11 +89,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- userTO = userDataBinder.getUserTO(created.getResult().getKey());
-
- result.setId(created.getResult().getKey());
-
- return userTO;
+ return userDataBinder.getUserTO(created.getResult().getKey());
}
@Override
[6/7] syncope git commit: [SYNCOPE-673] Merge from 1_2_X
Posted by il...@apache.org.
[SYNCOPE-673] Merge from 1_2_X
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8ea1e6ac
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8ea1e6ac
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8ea1e6ac
Branch: refs/heads/SYNCOPE-666
Commit: 8ea1e6acc0972628aaf7a011e04370fc1cbd87df
Parents: c74d198 f672ce4
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 12:17:51 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 12:17:51 2015 +0200
----------------------------------------------------------------------
.../java/sync/GroupSyncResultHandlerImpl.java | 7 ++-----
.../java/sync/UserSyncResultHandlerImpl.java | 15 +++++++--------
2 files changed, 9 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8ea1e6ac/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --cc core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
index 1ce0357,0000000..1c66f20
mode 100644,000000..100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
@@@ -1,166 -1,0 +1,163 @@@
+/*
+ * 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.provisioning.java.sync;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.lib.mod.AbstractSubjectMod;
+import org.apache.syncope.common.lib.mod.AttrMod;
+import org.apache.syncope.common.lib.mod.GroupMod;
+import org.apache.syncope.common.lib.mod.UserMod;
+import org.apache.syncope.common.lib.to.AbstractSubjectTO;
+import org.apache.syncope.common.lib.to.PropagationStatus;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
+import org.apache.syncope.core.provisioning.api.sync.ProvisioningResult;
+import org.apache.syncope.core.provisioning.api.sync.GroupSyncResultHandler;
+import org.identityconnectors.framework.common.objects.SyncDelta;
+
+public class GroupSyncResultHandlerImpl extends AbstractSyncResultHandler implements GroupSyncResultHandler {
+
+ protected Map<Long, String> groupOwnerMap = new HashMap<>();
+
+ @Override
+ public Map<Long, String> getGroupOwnerMap() {
+ return this.groupOwnerMap;
+ }
+
+ @Override
+ protected AttributableUtils getAttributableUtils() {
+ return attrUtilsFactory.getInstance(AttributableType.GROUP);
+ }
+
+ @Override
+ protected String getName(final AbstractSubjectTO subjectTO) {
+ return GroupTO.class.cast(subjectTO).getName();
+ }
+
+ @Override
+ protected AbstractSubjectTO getSubjectTO(final long key) {
+ try {
+ return groupDataBinder.getGroupTO(key);
+ } catch (Exception e) {
+ LOG.warn("Error retrieving group {}", key, e);
+ return null;
+ }
+ }
+
+ @Override
+ protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
+ return connObjectUtils.getAttributableMod(
+ subjectTO.getKey(),
+ delta.getObject(),
+ subjectTO,
+ profile.getTask(),
+ attrUtilsFactory.getInstance(AttributableType.GROUP));
+ }
+
+ @Override
+ protected AbstractSubjectTO doCreate(
+ final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
+
+ GroupTO groupTO = GroupTO.class.cast(subjectTO);
+
+ Map.Entry<Long, List<PropagationStatus>> created = groupProvisioningManager.create(groupTO, groupOwnerMap,
+ Collections.singleton(profile.getTask().getResource().getKey()));
+
- groupTO = groupDataBinder.getGroupTO(created.getKey());
-
+ result.setKey(created.getKey());
- result.setName(getName(subjectTO));
+
- return groupTO;
++ return groupDataBinder.getGroupTO(created.getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doLink(
+ final AbstractSubjectTO before,
+ final ProvisioningResult result,
+ final boolean unlink) {
+
- final GroupMod groupMod = new GroupMod();
++ GroupMod groupMod = new GroupMod();
+ groupMod.setKey(before.getKey());
+
+ if (unlink) {
+ groupMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ } else {
+ groupMod.getResourcesToAdd().add(profile.getTask().getResource().getKey());
+ }
+
+ return groupDataBinder.getGroupTO(gwfAdapter.update(groupMod).getResult());
+ }
+
+ @Override
+ protected AbstractSubjectTO doUpdate(
+ final AbstractSubjectTO before,
+ final AbstractSubjectMod subjectMod,
+ final SyncDelta delta,
+ final ProvisioningResult result) {
+
+ GroupMod groupMod = GroupMod.class.cast(subjectMod);
+
+ Map.Entry<Long, List<PropagationStatus>> updated = groupProvisioningManager.update(groupMod);
+
+ // moved after group provisioning manager
+ String groupOwner = null;
+ for (AttrMod attrMod : groupMod.getPlainAttrsToUpdate()) {
+ if (attrMod.getSchema().isEmpty()) {
+ groupOwner = attrMod.getValuesToBeAdded().iterator().next();
+ }
+ }
+ if (groupOwner != null) {
+ groupOwnerMap.put(updated.getKey(), groupOwner);
+ }
+
+ final GroupTO after = groupDataBinder.getGroupTO(updated.getKey());
+
+ result.setName(getName(after));
+
+ return after;
+ }
+
+ @Override
+ protected void doDeprovision(final Long id, final boolean unlink) {
+ taskExecutor.execute(
+ propagationManager.getGroupDeleteTasks(id, profile.getTask().getResource().getKey()));
+
+ if (unlink) {
+ final UserMod userMod = new UserMod();
+ userMod.setKey(id);
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ }
+ }
+
+ @Override
+ protected void doDelete(final Long id) {
+ try {
+ taskExecutor.execute(
+ propagationManager.getGroupDeleteTasks(id, profile.getTask().getResource().getKey()));
+ } catch (Exception e) {
+ // A propagation failure doesn't imply a synchronization failure.
+ // The propagation exception status will be reported into the propagation task execution.
+ LOG.error("Could not propagate user " + id, e);
+ }
+
+ groupProvisioningManager.delete(id);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8ea1e6ac/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --cc core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
index d32a855,0000000..d111ac6
mode 100644,000000..100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
@@@ -1,146 -1,0 +1,145 @@@
+/*
+ * 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.provisioning.java.sync;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.lib.mod.AbstractSubjectMod;
+import org.apache.syncope.common.lib.mod.UserMod;
+import org.apache.syncope.common.lib.to.AbstractSubjectTO;
+import org.apache.syncope.common.lib.to.PropagationStatus;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
+import org.apache.syncope.core.provisioning.api.sync.ProvisioningResult;
+import org.apache.syncope.core.provisioning.api.sync.UserSyncResultHandler;
+import org.identityconnectors.framework.common.objects.SyncDelta;
+
+public class UserSyncResultHandlerImpl extends AbstractSyncResultHandler implements UserSyncResultHandler {
+
+ @Override
+ protected AttributableUtils getAttributableUtils() {
+ return attrUtilsFactory.getInstance(AttributableType.USER);
+ }
+
+ @Override
+ protected String getName(final AbstractSubjectTO subjectTO) {
+ return UserTO.class.cast(subjectTO).getUsername();
+ }
+
+ @Override
+ protected AbstractSubjectTO getSubjectTO(final long key) {
+ try {
+ return userDataBinder.getUserTO(key);
+ } catch (Exception e) {
+ LOG.warn("Error retrieving user {}", key, e);
+ return null;
+ }
+ }
+
+ @Override
- protected AbstractSubjectMod getSubjectMod(
- final AbstractSubjectTO subjectTO, final SyncDelta delta) {
-
++ protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
+ return connObjectUtils.getAttributableMod(subjectTO.getKey(),
+ delta.getObject(),
+ subjectTO,
+ profile.getTask(),
+ getAttributableUtils());
+ }
+
+ @Override
+ protected AbstractSubjectTO doCreate(
+ final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
+
+ UserTO userTO = UserTO.class.cast(subjectTO);
+
+ Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
- Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,
- Collections.singleton(profile.getTask().getResource().getKey()));
++ Map.Entry<Long, List<PropagationStatus>> created =
++ userProvisioningManager.create(userTO, true, true, enabled,
++ Collections.singleton(profile.getTask().getResource().getKey()));
+
+ result.setKey(created.getKey());
+
+ return userDataBinder.getUserTO(created.getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doLink(
+ final AbstractSubjectTO before,
+ final ProvisioningResult result,
+ final boolean unlink) {
+
- final UserMod userMod = new UserMod();
++ UserMod userMod = new UserMod();
+ userMod.setKey(before.getKey());
+
+ if (unlink) {
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ } else {
+ userMod.getResourcesToAdd().add(profile.getTask().getResource().getKey());
+ }
+
+ return userDataBinder.getUserTO(uwfAdapter.update(userMod).getResult().getKey().getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doUpdate(
+ final AbstractSubjectTO before,
+ final AbstractSubjectMod subjectMod,
+ final SyncDelta delta,
+ final ProvisioningResult result) {
+
- final UserMod userMod = UserMod.class.cast(subjectMod);
- final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
++ UserMod userMod = UserMod.class.cast(subjectMod);
++ Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
+
+ Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.update(userMod, before.getKey(),
+ result, enabled, Collections.singleton(profile.getTask().getResource().getKey()));
+
+ return userDataBinder.getUserTO(updated.getKey());
+ }
+
+ @Override
+ protected void doDeprovision(
+ final Long key,
+ final boolean unlink) {
+
+ taskExecutor.execute(
+ propagationManager.getUserDeleteTasks(
+ key, Collections.singleton(profile.getTask().getResource().getKey())));
+
+ if (unlink) {
+ final UserMod userMod = new UserMod();
+ userMod.setKey(key);
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ }
+ }
+
+ @Override
+ protected void doDelete(final Long key) {
+ try {
+ userProvisioningManager.
+ delete(key, Collections.<String>singleton(profile.getTask().getResource().getKey()));
+ } catch (Exception e) {
+ // A propagation failure doesn't imply a synchronization failure.
+ // The propagation exception status will be reported into the propagation task execution.
+ LOG.error("Could not propagate user " + key, e);
+ }
+
+ uwfAdapter.delete(key);
+ }
+}
[5/7] syncope git commit: [SYNCOPE-673] Merge from 1_2_X
Posted by il...@apache.org.
[SYNCOPE-673] Merge from 1_2_X
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8ea1e6ac
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8ea1e6ac
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8ea1e6ac
Branch: refs/heads/master
Commit: 8ea1e6acc0972628aaf7a011e04370fc1cbd87df
Parents: c74d198 f672ce4
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 12:17:51 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 12:17:51 2015 +0200
----------------------------------------------------------------------
.../java/sync/GroupSyncResultHandlerImpl.java | 7 ++-----
.../java/sync/UserSyncResultHandlerImpl.java | 15 +++++++--------
2 files changed, 9 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8ea1e6ac/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --cc core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
index 1ce0357,0000000..1c66f20
mode 100644,000000..100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
@@@ -1,166 -1,0 +1,163 @@@
+/*
+ * 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.provisioning.java.sync;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.lib.mod.AbstractSubjectMod;
+import org.apache.syncope.common.lib.mod.AttrMod;
+import org.apache.syncope.common.lib.mod.GroupMod;
+import org.apache.syncope.common.lib.mod.UserMod;
+import org.apache.syncope.common.lib.to.AbstractSubjectTO;
+import org.apache.syncope.common.lib.to.PropagationStatus;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
+import org.apache.syncope.core.provisioning.api.sync.ProvisioningResult;
+import org.apache.syncope.core.provisioning.api.sync.GroupSyncResultHandler;
+import org.identityconnectors.framework.common.objects.SyncDelta;
+
+public class GroupSyncResultHandlerImpl extends AbstractSyncResultHandler implements GroupSyncResultHandler {
+
+ protected Map<Long, String> groupOwnerMap = new HashMap<>();
+
+ @Override
+ public Map<Long, String> getGroupOwnerMap() {
+ return this.groupOwnerMap;
+ }
+
+ @Override
+ protected AttributableUtils getAttributableUtils() {
+ return attrUtilsFactory.getInstance(AttributableType.GROUP);
+ }
+
+ @Override
+ protected String getName(final AbstractSubjectTO subjectTO) {
+ return GroupTO.class.cast(subjectTO).getName();
+ }
+
+ @Override
+ protected AbstractSubjectTO getSubjectTO(final long key) {
+ try {
+ return groupDataBinder.getGroupTO(key);
+ } catch (Exception e) {
+ LOG.warn("Error retrieving group {}", key, e);
+ return null;
+ }
+ }
+
+ @Override
+ protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
+ return connObjectUtils.getAttributableMod(
+ subjectTO.getKey(),
+ delta.getObject(),
+ subjectTO,
+ profile.getTask(),
+ attrUtilsFactory.getInstance(AttributableType.GROUP));
+ }
+
+ @Override
+ protected AbstractSubjectTO doCreate(
+ final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
+
+ GroupTO groupTO = GroupTO.class.cast(subjectTO);
+
+ Map.Entry<Long, List<PropagationStatus>> created = groupProvisioningManager.create(groupTO, groupOwnerMap,
+ Collections.singleton(profile.getTask().getResource().getKey()));
+
- groupTO = groupDataBinder.getGroupTO(created.getKey());
-
+ result.setKey(created.getKey());
- result.setName(getName(subjectTO));
+
- return groupTO;
++ return groupDataBinder.getGroupTO(created.getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doLink(
+ final AbstractSubjectTO before,
+ final ProvisioningResult result,
+ final boolean unlink) {
+
- final GroupMod groupMod = new GroupMod();
++ GroupMod groupMod = new GroupMod();
+ groupMod.setKey(before.getKey());
+
+ if (unlink) {
+ groupMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ } else {
+ groupMod.getResourcesToAdd().add(profile.getTask().getResource().getKey());
+ }
+
+ return groupDataBinder.getGroupTO(gwfAdapter.update(groupMod).getResult());
+ }
+
+ @Override
+ protected AbstractSubjectTO doUpdate(
+ final AbstractSubjectTO before,
+ final AbstractSubjectMod subjectMod,
+ final SyncDelta delta,
+ final ProvisioningResult result) {
+
+ GroupMod groupMod = GroupMod.class.cast(subjectMod);
+
+ Map.Entry<Long, List<PropagationStatus>> updated = groupProvisioningManager.update(groupMod);
+
+ // moved after group provisioning manager
+ String groupOwner = null;
+ for (AttrMod attrMod : groupMod.getPlainAttrsToUpdate()) {
+ if (attrMod.getSchema().isEmpty()) {
+ groupOwner = attrMod.getValuesToBeAdded().iterator().next();
+ }
+ }
+ if (groupOwner != null) {
+ groupOwnerMap.put(updated.getKey(), groupOwner);
+ }
+
+ final GroupTO after = groupDataBinder.getGroupTO(updated.getKey());
+
+ result.setName(getName(after));
+
+ return after;
+ }
+
+ @Override
+ protected void doDeprovision(final Long id, final boolean unlink) {
+ taskExecutor.execute(
+ propagationManager.getGroupDeleteTasks(id, profile.getTask().getResource().getKey()));
+
+ if (unlink) {
+ final UserMod userMod = new UserMod();
+ userMod.setKey(id);
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ }
+ }
+
+ @Override
+ protected void doDelete(final Long id) {
+ try {
+ taskExecutor.execute(
+ propagationManager.getGroupDeleteTasks(id, profile.getTask().getResource().getKey()));
+ } catch (Exception e) {
+ // A propagation failure doesn't imply a synchronization failure.
+ // The propagation exception status will be reported into the propagation task execution.
+ LOG.error("Could not propagate user " + id, e);
+ }
+
+ groupProvisioningManager.delete(id);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8ea1e6ac/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --cc core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
index d32a855,0000000..d111ac6
mode 100644,000000..100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
@@@ -1,146 -1,0 +1,145 @@@
+/*
+ * 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.provisioning.java.sync;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.lib.mod.AbstractSubjectMod;
+import org.apache.syncope.common.lib.mod.UserMod;
+import org.apache.syncope.common.lib.to.AbstractSubjectTO;
+import org.apache.syncope.common.lib.to.PropagationStatus;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
+import org.apache.syncope.core.provisioning.api.sync.ProvisioningResult;
+import org.apache.syncope.core.provisioning.api.sync.UserSyncResultHandler;
+import org.identityconnectors.framework.common.objects.SyncDelta;
+
+public class UserSyncResultHandlerImpl extends AbstractSyncResultHandler implements UserSyncResultHandler {
+
+ @Override
+ protected AttributableUtils getAttributableUtils() {
+ return attrUtilsFactory.getInstance(AttributableType.USER);
+ }
+
+ @Override
+ protected String getName(final AbstractSubjectTO subjectTO) {
+ return UserTO.class.cast(subjectTO).getUsername();
+ }
+
+ @Override
+ protected AbstractSubjectTO getSubjectTO(final long key) {
+ try {
+ return userDataBinder.getUserTO(key);
+ } catch (Exception e) {
+ LOG.warn("Error retrieving user {}", key, e);
+ return null;
+ }
+ }
+
+ @Override
- protected AbstractSubjectMod getSubjectMod(
- final AbstractSubjectTO subjectTO, final SyncDelta delta) {
-
++ protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
+ return connObjectUtils.getAttributableMod(subjectTO.getKey(),
+ delta.getObject(),
+ subjectTO,
+ profile.getTask(),
+ getAttributableUtils());
+ }
+
+ @Override
+ protected AbstractSubjectTO doCreate(
+ final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
+
+ UserTO userTO = UserTO.class.cast(subjectTO);
+
+ Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
- Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,
- Collections.singleton(profile.getTask().getResource().getKey()));
++ Map.Entry<Long, List<PropagationStatus>> created =
++ userProvisioningManager.create(userTO, true, true, enabled,
++ Collections.singleton(profile.getTask().getResource().getKey()));
+
+ result.setKey(created.getKey());
+
+ return userDataBinder.getUserTO(created.getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doLink(
+ final AbstractSubjectTO before,
+ final ProvisioningResult result,
+ final boolean unlink) {
+
- final UserMod userMod = new UserMod();
++ UserMod userMod = new UserMod();
+ userMod.setKey(before.getKey());
+
+ if (unlink) {
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ } else {
+ userMod.getResourcesToAdd().add(profile.getTask().getResource().getKey());
+ }
+
+ return userDataBinder.getUserTO(uwfAdapter.update(userMod).getResult().getKey().getKey());
+ }
+
+ @Override
+ protected AbstractSubjectTO doUpdate(
+ final AbstractSubjectTO before,
+ final AbstractSubjectMod subjectMod,
+ final SyncDelta delta,
+ final ProvisioningResult result) {
+
- final UserMod userMod = UserMod.class.cast(subjectMod);
- final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
++ UserMod userMod = UserMod.class.cast(subjectMod);
++ Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
+
+ Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.update(userMod, before.getKey(),
+ result, enabled, Collections.singleton(profile.getTask().getResource().getKey()));
+
+ return userDataBinder.getUserTO(updated.getKey());
+ }
+
+ @Override
+ protected void doDeprovision(
+ final Long key,
+ final boolean unlink) {
+
+ taskExecutor.execute(
+ propagationManager.getUserDeleteTasks(
+ key, Collections.singleton(profile.getTask().getResource().getKey())));
+
+ if (unlink) {
+ final UserMod userMod = new UserMod();
+ userMod.setKey(key);
+ userMod.getResourcesToRemove().add(profile.getTask().getResource().getKey());
+ }
+ }
+
+ @Override
+ protected void doDelete(final Long key) {
+ try {
+ userProvisioningManager.
+ delete(key, Collections.<String>singleton(profile.getTask().getResource().getKey()));
+ } catch (Exception e) {
+ // A propagation failure doesn't imply a synchronization failure.
+ // The propagation exception status will be reported into the propagation task execution.
+ LOG.error("Could not propagate user " + key, e);
+ }
+
+ uwfAdapter.delete(key);
+ }
+}
[2/7] syncope git commit: [SYNCOPE-673] Applying provided patch
Posted by il...@apache.org.
[SYNCOPE-673] Applying provided patch
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f672ce49
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f672ce49
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f672ce49
Branch: refs/heads/master
Commit: f672ce4925667fd80582878bdd55b9b0d644af0d
Parents: 13abc83
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 11:58:25 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 11:58:25 2015 +0200
----------------------------------------------------------------------
.../syncope/core/sync/impl/RoleSyncResultHandler.java | 12 +++++-------
.../syncope/core/sync/impl/UserSyncResultHandler.java | 11 ++++-------
2 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index 72ab83d..42929fc 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -85,6 +85,9 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
WorkflowResult<Long> created = rwfAdapter.create(roleTO);
+
+ result.setId(created.getResult());
+
AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
@@ -97,12 +100,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- roleTO = roleDataBinder.getRoleTO(created.getResult());
-
- result.setId(created.getResult());
- result.setName(getName(subjectTO));
-
- return roleTO;
+ return roleDataBinder.getRoleTO(created.getResult());
}
@Override
@@ -152,7 +150,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- final RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
+ RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
result.setName(getName(after));
return after;
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index 979feb3..ce055af 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -78,8 +78,9 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
UserTO userTO = UserTO.class.cast(subjectTO);
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- WorkflowResult<Map.Entry<Long, Boolean>> created =
- uwfAdapter.create(userTO, true, enabled, true);
+ WorkflowResult<Map.Entry<Long, Boolean>> created = uwfAdapter.create(userTO, true, enabled, true);
+
+ result.setId(created.getResult().getKey());
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(created,
userTO.getPassword(), userTO.getVirAttrs(),
@@ -88,11 +89,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- userTO = userDataBinder.getUserTO(created.getResult().getKey());
-
- result.setId(created.getResult().getKey());
-
- return userTO;
+ return userDataBinder.getUserTO(created.getResult().getKey());
}
@Override
[7/7] syncope git commit: [SYNCOPE-673] Merge from master
Posted by il...@apache.org.
[SYNCOPE-673] Merge from master
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c608b585
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c608b585
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c608b585
Branch: refs/heads/SYNCOPE-666
Commit: c608b58540b1f6089e466096522042fd244b5368
Parents: 63108c8 8ea1e6a
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 12:20:38 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 12:20:38 2015 +0200
----------------------------------------------------------------------
.../java/sync/GroupSyncResultHandlerImpl.java | 5 +----
.../java/sync/UserSyncResultHandlerImpl.java | 11 ++++++-----
pom.xml | 2 +-
3 files changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/c608b585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/c608b585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --cc core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
index 8487fa8,d111ac6..d5c41db
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
@@@ -55,12 -55,24 +55,13 @@@ public class UserSyncResultHandlerImpl
}
@Override
- protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
- return connObjectUtils.getAttributableMod(subjectTO.getKey(),
- delta.getObject(),
- subjectTO,
- profile.getTask(),
- getAttributableUtils());
- }
-
- @Override
- protected AbstractSubjectTO doCreate(
- final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
-
- UserTO userTO = UserTO.class.cast(subjectTO);
+ protected AnyTO doCreate(final AnyTO anyTO, final SyncDelta delta, final ProvisioningResult result) {
+ UserTO userTO = UserTO.class.cast(anyTO);
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
- Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,
- Collections.singleton(profile.getTask().getResource().getKey()));
+ Map.Entry<Long, List<PropagationStatus>> created =
+ userProvisioningManager.create(userTO, true, true, enabled,
+ Collections.singleton(profile.getTask().getResource().getKey()));
result.setKey(created.getKey());
@@@ -92,8 -104,8 +93,8 @@@
final SyncDelta delta,
final ProvisioningResult result) {
- final UserMod userMod = UserMod.class.cast(anyMod);
- final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
- UserMod userMod = UserMod.class.cast(subjectMod);
++ UserMod userMod = UserMod.class.cast(anyMod);
+ Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.update(userMod, before.getKey(),
result, enabled, Collections.singleton(profile.getTask().getResource().getKey()));
http://git-wip-us.apache.org/repos/asf/syncope/blob/c608b585/pom.xml
----------------------------------------------------------------------
[4/7] syncope git commit: [SYNCOPE-673] Applying provided patch
Posted by il...@apache.org.
[SYNCOPE-673] Applying provided patch
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f672ce49
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f672ce49
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f672ce49
Branch: refs/heads/SYNCOPE-666
Commit: f672ce4925667fd80582878bdd55b9b0d644af0d
Parents: 13abc83
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed May 27 11:58:25 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed May 27 11:58:25 2015 +0200
----------------------------------------------------------------------
.../syncope/core/sync/impl/RoleSyncResultHandler.java | 12 +++++-------
.../syncope/core/sync/impl/UserSyncResultHandler.java | 11 ++++-------
2 files changed, 9 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index 72ab83d..42929fc 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -85,6 +85,9 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
WorkflowResult<Long> created = rwfAdapter.create(roleTO);
+
+ result.setId(created.getResult());
+
AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
@@ -97,12 +100,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- roleTO = roleDataBinder.getRoleTO(created.getResult());
-
- result.setId(created.getResult());
- result.setName(getName(subjectTO));
-
- return roleTO;
+ return roleDataBinder.getRoleTO(created.getResult());
}
@Override
@@ -152,7 +150,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- final RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
+ RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
result.setName(getName(after));
return after;
http://git-wip-us.apache.org/repos/asf/syncope/blob/f672ce49/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index 979feb3..ce055af 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -78,8 +78,9 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
UserTO userTO = UserTO.class.cast(subjectTO);
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- WorkflowResult<Map.Entry<Long, Boolean>> created =
- uwfAdapter.create(userTO, true, enabled, true);
+ WorkflowResult<Map.Entry<Long, Boolean>> created = uwfAdapter.create(userTO, true, enabled, true);
+
+ result.setId(created.getResult().getKey());
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(created,
userTO.getPassword(), userTO.getVirAttrs(),
@@ -88,11 +89,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
taskExecutor.execute(tasks);
- userTO = userDataBinder.getUserTO(created.getResult().getKey());
-
- result.setId(created.getResult().getKey());
-
- return userTO;
+ return userDataBinder.getUserTO(created.getResult().getKey());
}
@Override