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:56 UTC
[syncope] 02/02: [SYNCOPE-957] Reverting changes to Actions classes,
as transactional support for Functions is troublesome
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