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 2019/10/24 09:45:54 UTC
[syncope] branch master updated (def38ca -> 1a99144)
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git.
from def38ca Upgrading Elasticsearch
new f3a3367 Upgrading Quartz
new 1a99144 [SYNCOPE-957] Reverting changes to Actions classes, as transactional support for Functions is troublesome
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../console/implementations/MyLogicActions.groovy | 53 +++++-------------
.../console/implementations/MyPullActions.groovy | 11 ++--
.../console/implementations/MyPushActions.groovy | 2 +-
.../syncope/core/logic/AbstractAnyLogic.java | 44 +++++++--------
.../core/provisioning/api/LogicActions.java | 25 +++++----
.../provisioning/api/pushpull/PullActions.java | 8 +--
.../java/pushpull/AbstractPullResultHandler.java | 9 ++--
.../pushpull/DefaultRealmPullResultHandler.java | 9 ++--
.../syncope/core/logic/oidc/OIDCUserManager.java | 29 +++++-----
.../core/provisioning/api/OIDCProviderActions.java | 17 +++---
.../syncope/core/logic/saml2/SAML2UserManager.java | 29 +++++-----
.../core/provisioning/api/SAML2IdPActions.java | 17 +++---
.../test/resources/DoubleValueLogicActions.groovy | 63 ++++++++++------------
pom.xml | 2 +-
14 files changed, 127 insertions(+), 191 deletions(-)
[syncope] 01/02: Upgrading Quartz
Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit f3a3367c1748186b3046d684a795f9169a18ce88
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Oct 24 08:10:28 2019 +0200
Upgrading Quartz
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index b7de9ad..2d3b3bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -414,7 +414,7 @@ under the License.
<jasypt.version>1.9.3</jasypt.version>
- <quartz.version>2.3.1</quartz.version>
+ <quartz.version>2.3.2</quartz.version>
<cocoon.version>3.0.0-alpha-3</cocoon.version>
[syncope] 02/02: [SYNCOPE-957] Reverting changes to Actions classes,
as transactional support for Functions is troublesome
Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 1a99144a90a7d11ff520cf7f9ee1004feda976f4
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Oct 24 10:34:57 2019 +0200
[SYNCOPE-957] Reverting changes to Actions classes, as transactional support for Functions is troublesome
---
.../console/implementations/MyLogicActions.groovy | 53 +++++-------------
.../console/implementations/MyPullActions.groovy | 11 ++--
.../console/implementations/MyPushActions.groovy | 2 +-
.../syncope/core/logic/AbstractAnyLogic.java | 44 +++++++--------
.../core/provisioning/api/LogicActions.java | 25 +++++----
.../provisioning/api/pushpull/PullActions.java | 8 +--
.../java/pushpull/AbstractPullResultHandler.java | 9 ++--
.../pushpull/DefaultRealmPullResultHandler.java | 9 ++--
.../syncope/core/logic/oidc/OIDCUserManager.java | 29 +++++-----
.../core/provisioning/api/OIDCProviderActions.java | 17 +++---
.../syncope/core/logic/saml2/SAML2UserManager.java | 29 +++++-----
.../core/provisioning/api/SAML2IdPActions.java | 17 +++---
.../test/resources/DoubleValueLogicActions.groovy | 63 ++++++++++------------
13 files changed, 126 insertions(+), 190 deletions(-)
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyLogicActions.groovy b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyLogicActions.groovy
index 8cef253..abdb3a4 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyLogicActions.groovy
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyLogicActions.groovy
@@ -17,68 +17,41 @@
* under the License.
*/
import groovy.transform.CompileStatic
-import java.util.List
-import java.util.function.Function
import org.apache.syncope.common.lib.request.AnyCR;
import org.apache.syncope.common.lib.request.AnyUR;
-import org.apache.syncope.common.lib.to.AnyTO
-import org.apache.syncope.common.lib.to.PropagationStatus
+import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.core.provisioning.api.LogicActions
@CompileStatic
class MyLogicActions implements LogicActions {
@Override
- <C extends AnyCR> Function<C, C> beforeCreate() {
- Function function = {
- C input ->
- return input;
- }
- return function;
+ <C extends AnyCR> C beforeCreate(C input) {
+ return input;
}
@Override
- <A extends AnyTO> Function<A, A> afterCreate(List<PropagationStatus> statuses) {
- Function function = {
- A input ->
- return input;
- }
- return function;
+ <A extends AnyTO> A afterCreate(A input) {
+ return input;
}
@Override
- <U extends AnyUR> Function<U, U> beforeUpdate() {
- Function function = {
- U input ->
- return input;
- }
- return function;
+ <U extends AnyUR> U beforeUpdate(U input) {
+ return input;
}
@Override
- <A extends AnyTO> Function<A, A> afterUpdate(List<PropagationStatus> statuses) {
- Function function = {
- A input ->
- return input;
- }
- return function;
+ <A extends AnyTO> A afterUpdate(A input) {
+ return input;
}
@Override
- <A extends AnyTO> Function<A, A> beforeDelete() {
- Function function = {
- A input ->
- return input;
- }
- return function;
+ <A extends AnyTO> A beforeDelete(A input) {
+ return input;
}
@Override
- <A extends AnyTO> Function<A, A> afterDelete(List<PropagationStatus> statuses) {
- Function function = {
- A input ->
- return input;
- }
- return function;
+ <A extends AnyTO> A afterDelete(A input) {
+ return input;
}
}
\ No newline at end of file
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPullActions.groovy b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPullActions.groovy
index 7a8b765..ce039eb 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPullActions.groovy
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPullActions.groovy
@@ -29,18 +29,13 @@ import org.apache.syncope.core.provisioning.api.pushpull.ProvisioningReport
import org.apache.syncope.core.provisioning.api.pushpull.PullActions
import org.identityconnectors.framework.common.objects.SyncDelta
import org.quartz.JobExecutionException
-import java.util.function.Function
@CompileStatic
class MyPullActions implements PullActions {
@Override
- Function<SyncDelta, SyncDelta> preprocess(ProvisioningProfile<?, ?> profile) {
- Function function = {
- SyncDelta delta ->
- return delta;
- }
- return function;
+ SyncDelta preprocess(ProvisioningProfile profile, SyncDelta delta) {
+ return delta;
}
@Override
@@ -142,4 +137,4 @@ class MyPullActions implements PullActions {
return null;
}
-}
+}
\ No newline at end of file
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPushActions.groovy b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPushActions.groovy
index dad4206..0828f03 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPushActions.groovy
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPushActions.groovy
@@ -109,4 +109,4 @@ class MyPushActions implements PushActions {
// do nothing
}
-}
+}
\ No newline at end of file
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
index 365801d..3b045ff 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.function.Function;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.request.AnyCR;
@@ -114,11 +113,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
templateUtils.apply(anyCR, realm.getTemplate(anyType));
List<LogicActions> actions = getActions(realm);
-
- anyCR = (C) actions.stream().
- map(action -> action.beforeCreate()).
- reduce(Function.identity(), Function::andThen).
- apply(anyCR);
+ for (LogicActions action : actions) {
+ anyCR = action.beforeCreate(anyCR);
+ }
LOG.debug("Input: {}\nOutput: {}\n", input, anyCR);
@@ -137,10 +134,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
U update = input;
List<LogicActions> actions = getActions(realm);
- update = (U) actions.stream().
- map(action -> action.beforeUpdate()).
- reduce(Function.identity(), Function::andThen).
- apply(update);
+ for (LogicActions action : actions) {
+ update = action.beforeUpdate(update);
+ }
LOG.debug("Input: {}\nOutput: {}\n", input, update);
@@ -159,10 +155,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
TO any = input;
List<LogicActions> actions = getActions(realm);
- any = (TO) actions.stream().
- map(action -> action.beforeDelete()).
- reduce(Function.identity(), Function::andThen).
- apply(any);
+ for (LogicActions action : actions) {
+ any = action.beforeDelete(any);
+ }
LOG.debug("Input: {}\nOutput: {}\n", input, any);
@@ -175,10 +170,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
TO any = input;
- any = (TO) actions.stream().
- map(action -> action.afterCreate(statuses)).
- reduce(Function.identity(), Function::andThen).
- apply(any);
+ for (LogicActions action : actions) {
+ any = action.afterCreate(any, statuses);
+ }
ProvisioningResult<TO> result = new ProvisioningResult<>();
result.setEntity(any);
@@ -207,10 +201,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
TO any = input;
- any = (TO) actions.stream().
- map(action -> action.afterUpdate(statuses)).
- reduce(Function.identity(), Function::andThen).
- apply(any);
+ for (LogicActions action : actions) {
+ any = action.afterUpdate(any, statuses);
+ }
ProvisioningResult<TO> result = new ProvisioningResult<>();
result.setEntity(any);
@@ -225,10 +218,9 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, C extends AnyCR, U exte
TO any = input;
- any = (TO) actions.stream().
- map(action -> action.afterDelete(statuses)).
- reduce(Function.identity(), Function::andThen).
- apply(any);
+ for (LogicActions action : actions) {
+ any = action.afterDelete(any, statuses);
+ }
ProvisioningResult<TO> result = new ProvisioningResult<>();
result.setEntity(any);
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/LogicActions.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/LogicActions.java
index e2a2f65..5c5b766 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/LogicActions.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/LogicActions.java
@@ -19,7 +19,6 @@
package org.apache.syncope.core.provisioning.api;
import java.util.List;
-import java.util.function.Function;
import org.apache.syncope.common.lib.request.AnyCR;
import org.apache.syncope.common.lib.request.AnyUR;
import org.apache.syncope.common.lib.to.AnyTO;
@@ -30,27 +29,27 @@ import org.apache.syncope.common.lib.to.PropagationStatus;
*/
public interface LogicActions {
- default <C extends AnyCR> Function<C, C> beforeCreate() {
- return Function.identity();
+ default <C extends AnyCR> C beforeCreate(C input) {
+ return input;
}
- default <A extends AnyTO> Function<A, A> afterCreate(List<PropagationStatus> statuses) {
- return Function.identity();
+ default <A extends AnyTO> A afterCreate(A input, List<PropagationStatus> statuses) {
+ return input;
}
- default <U extends AnyUR> Function<U, U> beforeUpdate() {
- return Function.identity();
+ default <U extends AnyUR> U beforeUpdate(U input) {
+ return input;
}
- default <A extends AnyTO> Function<A, A> afterUpdate(List<PropagationStatus> statuses) {
- return Function.identity();
+ default <A extends AnyTO> A afterUpdate(A input, List<PropagationStatus> statuses) {
+ return input;
}
- default <A extends AnyTO> Function<A, A> beforeDelete() {
- return Function.identity();
+ default <A extends AnyTO> A beforeDelete(A input) {
+ return input;
}
- default <A extends AnyTO> Function<A, A> afterDelete(List<PropagationStatus> statuses) {
- return Function.identity();
+ default <A extends AnyTO> A afterDelete(A input, List<PropagationStatus> statuses) {
+ return input;
}
}
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/PullActions.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/PullActions.java
index 03690bd..a9e93ca 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/PullActions.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/PullActions.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.provisioning.api.pushpull;
import org.apache.syncope.common.lib.request.AnyCR;
import org.apache.syncope.common.lib.request.AnyUR;
-import java.util.function.Function;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.LinkedAccountTO;
import org.apache.syncope.common.lib.to.RealmTO;
@@ -38,10 +37,11 @@ public interface PullActions extends ProvisioningActions {
* Pre-process the pull information received by the underlying connector, before any internal activity occurs.
*
* @param profile profile of the pull being executed.
- * @return pull information, possibly altered
+ * @param delta retrieved pull information
+ * @return pull information, possibly altered.
*/
- default Function<SyncDelta, SyncDelta> preprocess(ProvisioningProfile<?, ?> profile) {
- return Function.identity();
+ default SyncDelta preprocess(ProvisioningProfile<?, ?> profile, SyncDelta delta) {
+ return delta;
}
/**
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
index 7afe3a5..15ec686 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
-import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.AnyOperations;
@@ -848,10 +847,10 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
LOG.debug("Process {} for {} as {}",
delta.getDeltaType(), delta.getUid().getUidValue(), delta.getObject().getObjectClass());
- SyncDelta finalDelta = profile.getActions().stream().
- map(action -> action.preprocess(profile)).
- reduce(Function.identity(), Function::andThen).
- apply(delta);
+ SyncDelta finalDelta = delta;
+ for (PullActions action : profile.getActions()) {
+ finalDelta = action.preprocess(profile, finalDelta);
+ }
LOG.debug("Transformed {} for {} as {}",
finalDelta.getDeltaType(), finalDelta.getUid().getUidValue(), finalDelta.getObject().getObjectClass());
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
index 6cdf297..1c5250d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.provisioning.java.pushpull;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
-import java.util.function.Function;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -630,10 +629,10 @@ public class DefaultRealmPullResultHandler
LOG.debug("Process {} for {} as {}",
delta.getDeltaType(), delta.getUid().getUidValue(), delta.getObject().getObjectClass());
- SyncDelta finalDelta = profile.getActions().stream().
- map(action -> action.preprocess(profile)).
- reduce(Function.identity(), Function::andThen).
- apply(delta);
+ SyncDelta finalDelta = delta;
+ for (PullActions action : profile.getActions()) {
+ finalDelta = action.preprocess(profile, finalDelta);
+ }
LOG.debug("Transformed {} for {} as {}",
finalDelta.getDeltaType(), finalDelta.getUid().getUidValue(), finalDelta.getObject().getObjectClass());
diff --git a/ext/oidcclient/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCUserManager.java b/ext/oidcclient/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCUserManager.java
index ae03541..dd9c0f0 100644
--- a/ext/oidcclient/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCUserManager.java
+++ b/ext/oidcclient/logic/src/main/java/org/apache/syncope/core/logic/oidc/OIDCUserManager.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -242,10 +241,9 @@ public class OIDCUserManager {
}
List<OIDCProviderActions> actions = getActions(op);
- userCR = actions.stream().
- map(action -> action.beforeCreate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userCR);
+ for (OIDCProviderActions action : actions) {
+ userCR = action.beforeCreate(userCR, responseTO);
+ }
UserTO userTO = new UserTO();
fill(op, responseTO, userTO);
@@ -261,10 +259,9 @@ public class OIDCUserManager {
Pair<String, List<PropagationStatus>> created = provisioningManager.create(userCR, false);
userTO = binder.getUserTO(created.getKey());
- userTO = actions.stream().
- map(action -> action.afterCreate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userTO);
+ for (OIDCProviderActions action : actions) {
+ userTO = action.afterCreate(userTO, responseTO);
+ }
return userTO.getUsername();
}
@@ -279,18 +276,16 @@ public class OIDCUserManager {
UserUR userUR = AnyOperations.diff(userTO, original, true);
List<OIDCProviderActions> actions = getActions(op);
- userUR = actions.stream().
- map(action -> action.beforeUpdate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userUR);
+ for (OIDCProviderActions action : actions) {
+ userUR = action.beforeUpdate(userUR, responseTO);
+ }
Pair<UserUR, List<PropagationStatus>> updated = provisioningManager.update(userUR, false);
userTO = binder.getUserTO(updated.getLeft().getKey());
- userTO = actions.stream().
- map(action -> action.afterUpdate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userTO);
+ for (OIDCProviderActions action : actions) {
+ userTO = action.afterUpdate(userTO, responseTO);
+ }
return userTO.getUsername();
}
diff --git a/ext/oidcclient/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/OIDCProviderActions.java b/ext/oidcclient/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/OIDCProviderActions.java
index 4828fbb..6a08e70 100644
--- a/ext/oidcclient/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/OIDCProviderActions.java
+++ b/ext/oidcclient/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/OIDCProviderActions.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.provisioning.api;
-import java.util.function.Function;
import org.apache.syncope.common.lib.request.UserCR;
import org.apache.syncope.common.lib.request.UserUR;
import org.apache.syncope.common.lib.to.OIDCLoginResponseTO;
@@ -26,19 +25,19 @@ import org.apache.syncope.common.lib.to.UserTO;
public interface OIDCProviderActions {
- default Function<UserCR, UserCR> beforeCreate(OIDCLoginResponseTO loginResponse) {
- return Function.identity();
+ default UserCR beforeCreate(UserCR input, OIDCLoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserTO, UserTO> afterCreate(OIDCLoginResponseTO loginResponse) {
- return Function.identity();
+ default UserTO afterCreate(UserTO input, OIDCLoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserUR, UserUR> beforeUpdate(OIDCLoginResponseTO loginResponse) {
- return Function.identity();
+ default UserUR beforeUpdate(UserUR input, OIDCLoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserTO, UserTO> afterUpdate(OIDCLoginResponseTO loginResponse) {
- return Function.identity();
+ default UserTO afterUpdate(UserTO input, OIDCLoginResponseTO loginResponse) {
+ return input;
}
}
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
index 0dea98c..0a6b857 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -260,10 +259,9 @@ public class SAML2UserManager {
}
List<SAML2IdPActions> actions = getActions(idp);
- userCR = actions.stream().
- map(action -> action.beforeCreate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userCR);
+ for (SAML2IdPActions action : actions) {
+ userCR = action.beforeCreate(userCR, responseTO);
+ }
UserTO userTO = new UserTO();
fill(idp.getKey(), responseTO, userTO);
@@ -279,10 +277,9 @@ public class SAML2UserManager {
Pair<String, List<PropagationStatus>> created = provisioningManager.create(userCR, false);
userTO = binder.getUserTO(created.getKey());
- userTO = actions.stream().
- map(action -> action.afterCreate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userTO);
+ for (SAML2IdPActions action : actions) {
+ userTO = action.afterCreate(userTO, responseTO);
+ }
return userTO.getUsername();
}
@@ -297,18 +294,16 @@ public class SAML2UserManager {
UserUR userUR = AnyOperations.diff(userTO, original, true);
List<SAML2IdPActions> actions = getActions(idp);
- userUR = actions.stream().
- map(action -> action.beforeUpdate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userUR);
+ for (SAML2IdPActions action : actions) {
+ userUR = action.beforeUpdate(userUR, responseTO);
+ }
Pair<UserUR, List<PropagationStatus>> updated = provisioningManager.update(userUR, false);
userTO = binder.getUserTO(updated.getLeft().getKey());
- userTO = actions.stream().
- map(action -> action.afterUpdate(responseTO)).
- reduce(Function.identity(), Function::andThen).
- apply(userTO);
+ for (SAML2IdPActions action : actions) {
+ userTO = action.afterUpdate(userTO, responseTO);
+ }
return userTO.getUsername();
}
diff --git a/ext/saml2sp/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/SAML2IdPActions.java b/ext/saml2sp/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/SAML2IdPActions.java
index 9948e63..dddc6dc 100644
--- a/ext/saml2sp/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/SAML2IdPActions.java
+++ b/ext/saml2sp/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/SAML2IdPActions.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.provisioning.api;
-import java.util.function.Function;
import org.apache.syncope.common.lib.request.UserCR;
import org.apache.syncope.common.lib.request.UserUR;
import org.apache.syncope.common.lib.to.SAML2LoginResponseTO;
@@ -26,19 +25,19 @@ import org.apache.syncope.common.lib.to.UserTO;
public interface SAML2IdPActions {
- default Function<UserCR, UserCR> beforeCreate(SAML2LoginResponseTO loginResponse) {
- return Function.identity();
+ default UserCR beforeCreate(UserCR input, SAML2LoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserTO, UserTO> afterCreate(SAML2LoginResponseTO loginResponse) {
- return Function.identity();
+ default UserTO afterCreate(UserTO input, SAML2LoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserUR, UserUR> beforeUpdate(SAML2LoginResponseTO loginResponse) {
- return Function.identity();
+ default UserUR beforeUpdate(UserUR input, SAML2LoginResponseTO loginResponse) {
+ return input;
}
- default Function<UserTO, UserTO> afterUpdate(SAML2LoginResponseTO loginResponse) {
- return Function.identity();
+ default UserTO afterUpdate(UserTO input, SAML2LoginResponseTO loginResponse) {
+ return input;
}
}
diff --git a/fit/core-reference/src/test/resources/DoubleValueLogicActions.groovy b/fit/core-reference/src/test/resources/DoubleValueLogicActions.groovy
index 6d19408..720eeca 100644
--- a/fit/core-reference/src/test/resources/DoubleValueLogicActions.groovy
+++ b/fit/core-reference/src/test/resources/DoubleValueLogicActions.groovy
@@ -22,7 +22,6 @@ import org.apache.syncope.common.lib.Attr
import org.apache.syncope.common.lib.request.AnyCR
import org.apache.syncope.common.lib.request.AnyUR
import org.apache.syncope.common.lib.request.AttrPatch
-import java.util.function.Function
import org.apache.syncope.core.provisioning.api.LogicActions
/**
@@ -34,50 +33,42 @@ class DoubleValueLogicActions implements LogicActions {
private static final String NAME = "makeItDouble";
@Override
- <C extends AnyCR> Function<C, C> beforeCreate() {
- Function function = {
- C input ->
- for (Attr attr : input.getPlainAttrs()) {
- if (NAME.equals(attr.getSchema())) {
- List<String> values = new ArrayList<String>(attr.getValues().size());
- for (String value : attr.getValues()) {
- try {
- values.add(String.valueOf(2 * Long.parseLong(value)));
- } catch (NumberFormatException e) {
- // ignore
- }
+ <C extends AnyCR> C beforeCreate(final C input) {
+ for (Attr attr : input.getPlainAttrs()) {
+ if (NAME.equals(attr.getSchema())) {
+ List<String> values = new ArrayList<String>(attr.getValues().size());
+ for (String value : attr.getValues()) {
+ try {
+ values.add(String.valueOf(2 * Long.parseLong(value)));
+ } catch (NumberFormatException e) {
+ // ignore
}
- attr.getValues().clear();
- attr.getValues().addAll(values);
}
+ attr.getValues().clear();
+ attr.getValues().addAll(values);
}
-
- return input;
}
- return function;
+
+ return input;
}
@Override
- <R extends AnyUR> Function<R, R> beforeUpdate() {
- Function function = {
- R input ->
- for (AttrPatch patch : input.getPlainAttrs()) {
- if (NAME.equals(patch.getAttr().getSchema())) {
- List<String> values = new ArrayList<String>(patch.getAttr().getValues().size());
- for (String value : patch.getAttr().getValues()) {
- try {
- values.add(String.valueOf(2 * Long.parseLong(value)));
- } catch (NumberFormatException e) {
- // ignore
- }
+ <R extends AnyUR> R beforeUpdate(final R input) {
+ for (AttrPatch patch : input.getPlainAttrs()) {
+ if (NAME.equals(patch.getAttr().getSchema())) {
+ List<String> values = new ArrayList<String>(patch.getAttr().getValues().size());
+ for (String value : patch.getAttr().getValues()) {
+ try {
+ values.add(String.valueOf(2 * Long.parseLong(value)));
+ } catch (NumberFormatException e) {
+ // ignore
}
- patch.getAttr().getValues().clear();
- patch.getAttr().getValues().addAll(values);
}
+ patch.getAttr().getValues().clear();
+ patch.getAttr().getValues().addAll(values);
}
-
- return input;
}
- return function;
+
+ return input;
}
-}
+}
\ No newline at end of file