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 2017/08/22 15:09:08 UTC
[04/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index fdeb848..14a8d5f 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -26,11 +26,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.common.lib.patch.StringPatchItem;
import org.apache.syncope.common.lib.patch.UserPatch;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -228,13 +226,8 @@ public class PropagationManagerImpl implements PropagationManager {
pwdWFResult.getPropByRes().addAll(ResourceOperation.UPDATE, pwdResourceNames);
if (!pwdWFResult.getPropByRes().isEmpty()) {
Set<String> toBeExcluded = new HashSet<>(allResourceNames);
- CollectionUtils.collect(userPatch.getResources(), new Transformer<StringPatchItem, String>() {
-
- @Override
- public String transform(final StringPatchItem input) {
- return input.getValue();
- }
- }, toBeExcluded);
+ toBeExcluded.addAll(userPatch.getResources().stream().
+ map(patchItem -> patchItem.getValue()).collect(Collectors.toList()));
toBeExcluded.removeAll(pwdResourceNames);
tasks.addAll(getUserUpdateTasks(pwdWFResult, true, toBeExcluded));
@@ -339,27 +332,29 @@ public class PropagationManagerImpl implements PropagationManager {
virtualResources.addAll(dao(any.getType().getKind()).findAllResourceKeys(any.getKey()));
Map<String, Set<Attribute>> vAttrMap = new HashMap<>();
- for (AttrTO vAttr : CollectionUtils.emptyIfNull(vAttrs)) {
- VirSchema schema = virSchemaDAO.find(vAttr.getSchema());
- if (schema == null) {
- LOG.warn("Ignoring invalid {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
- } else if (schema.isReadonly()) {
- LOG.warn("Ignoring read-only {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
- } else if (anyUtilsFactory.getInstance(any).getAllowedSchemas(any, VirSchema.class).contains(schema)
- && virtualResources.contains(schema.getProvision().getResource().getKey())) {
-
- Set<Attribute> values = vAttrMap.get(schema.getProvision().getResource().getKey());
- if (values == null) {
- values = new HashSet<>();
- vAttrMap.put(schema.getProvision().getResource().getKey(), values);
- }
- values.add(AttributeBuilder.build(schema.getExtAttrName(), vAttr.getValues()));
+ if (vAttrs != null) {
+ vAttrs.forEach(vAttr -> {
+ VirSchema schema = virSchemaDAO.find(vAttr.getSchema());
+ if (schema == null) {
+ LOG.warn("Ignoring invalid {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
+ } else if (schema.isReadonly()) {
+ LOG.warn("Ignoring read-only {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
+ } else if (anyUtilsFactory.getInstance(any).getAllowedSchemas(any, VirSchema.class).contains(schema)
+ && virtualResources.contains(schema.getProvision().getResource().getKey())) {
+
+ Set<Attribute> values = vAttrMap.get(schema.getProvision().getResource().getKey());
+ if (values == null) {
+ values = new HashSet<>();
+ vAttrMap.put(schema.getProvision().getResource().getKey(), values);
+ }
+ values.add(AttributeBuilder.build(schema.getExtAttrName(), vAttr.getValues()));
- propByRes.add(ResourceOperation.UPDATE, schema.getProvision().getResource().getKey());
- } else {
- LOG.warn("{} not owned by or {} not allowed for {}",
- schema.getProvision().getResource(), schema, any);
- }
+ propByRes.add(ResourceOperation.UPDATE, schema.getProvision().getResource().getKey());
+ } else {
+ LOG.warn("{} not owned by or {} not allowed for {}",
+ schema.getProvision().getResource(), schema, any);
+ }
+ });
}
LOG.debug("With virtual attributes {}:\n{}\n{}", any, propByRes, vAttrMap);
@@ -367,7 +362,7 @@ public class PropagationManagerImpl implements PropagationManager {
for (Map.Entry<String, ResourceOperation> entry : propByRes.asMap().entrySet()) {
ExternalResource resource = resourceDAO.find(entry.getKey());
- Provision provision = resource == null ? null : resource.getProvision(any.getType());
+ Provision provision = resource == null ? null : resource.getProvision(any.getType()).orElse(null);
List<? extends MappingItem> mappingItems = provision == null
? Collections.<MappingItem>emptyList()
: MappingUtils.getPropagationItems(provision);
@@ -400,18 +395,16 @@ public class PropagationManagerImpl implements PropagationManager {
// if so, add special attributes that will be evaluated by PropagationTaskExecutor
List<String> mandatoryMissing = new ArrayList<>();
List<String> mandatoryNullOrEmpty = new ArrayList<>();
- for (MappingItem item : mappingItems) {
- if (!item.isConnObjectKey()
- && JexlUtils.evaluateMandatoryCondition(item.getMandatoryCondition(), any)) {
-
- Attribute attr = AttributeUtil.find(item.getExtAttrName(), preparedAttrs.getValue());
- if (attr == null) {
- mandatoryMissing.add(item.getExtAttrName());
- } else if (attr.getValue() == null || attr.getValue().isEmpty()) {
- mandatoryNullOrEmpty.add(item.getExtAttrName());
- }
- }
- }
+ mappingItems.stream().filter(item -> (!item.isConnObjectKey()
+ && JexlUtils.evaluateMandatoryCondition(item.getMandatoryCondition(), any))).
+ forEachOrdered(item -> {
+ Attribute attr = AttributeUtil.find(item.getExtAttrName(), preparedAttrs.getValue());
+ if (attr == null) {
+ mandatoryMissing.add(item.getExtAttrName());
+ } else if (attr.getValue() == null || attr.getValue().isEmpty()) {
+ mandatoryNullOrEmpty.add(item.getExtAttrName());
+ }
+ });
if (!mandatoryMissing.isEmpty()) {
preparedAttrs.getValue().add(AttributeBuilder.build(
PropagationTaskExecutor.MANDATORY_MISSING_ATTR_NAME, mandatoryMissing));
@@ -454,7 +447,7 @@ public class PropagationManagerImpl implements PropagationManager {
List<PropagationTask> tasks = new ArrayList<>();
- for (Map.Entry<String, ResourceOperation> entry : propByRes.asMap().entrySet()) {
+ propByRes.asMap().entrySet().forEach(entry -> {
ExternalResource resource = resourceDAO.find(entry.getKey());
OrgUnit orgUnit = resource == null ? null : resource.getOrgUnit();
@@ -481,7 +474,7 @@ public class PropagationManagerImpl implements PropagationManager {
LOG.debug("PropagationTask created: {}", task);
}
- }
+ });
return tasks;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
index 64d8776..e611e34 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
@@ -23,8 +23,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.annotation.Resource;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
@@ -311,13 +309,8 @@ public abstract class AbstractProvisioningJobDelegate<T extends ProvisioningTask
// Summary, also to be included for FAILURE and ALL, so create it anyway.
boolean includeUser = resource.getProvision(anyTypeDAO.findUser()) != null;
boolean includeGroup = resource.getProvision(anyTypeDAO.findGroup()) != null;
- boolean includeAnyObject = IterableUtils.matchesAny(resource.getProvisions(), new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision object) {
- return object.getAnyType().getKind() == AnyTypeKind.ANY_OBJECT;
- }
- });
+ boolean includeAnyObject = resource.getProvisions().stream().anyMatch(
+ provision -> provision.getAnyType().getKind() == AnyTypeKind.ANY_OBJECT);
boolean includeRealm = resource.getOrgUnit() != null;
if (includeUser) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
----------------------------------------------------------------------
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 1e93b92..74928d9 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
@@ -122,7 +122,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
public boolean handle(final SyncDelta delta) {
Provision provision = null;
try {
- provision = profile.getTask().getResource().getProvision(delta.getObject().getObjectClass());
+ provision = profile.getTask().getResource().getProvision(delta.getObject().getObjectClass()).orElse(null);
if (provision == null) {
throw new JobExecutionException("No provision found on " + profile.getTask().getResource() + " for "
+ delta.getObject().getObjectClass());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
index 7095739..395ec3e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.StringPatchItem;
@@ -261,15 +262,15 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
Result resultStatus = null;
// Try to read remote object BEFORE any actual operation
- Provision provision = profile.getTask().getResource().getProvision(any.getType());
- MappingItem connObjectKey = MappingUtils.getConnObjectKeyItem(provision);
- String connObjecKeyValue = mappingManager.getConnObjectKeyValue(any, provision);
+ Optional<? extends Provision> provision = profile.getTask().getResource().getProvision(any.getType());
+ Optional<MappingItem> connObjectKey = MappingUtils.getConnObjectKeyItem(provision.get());
+ Optional<String> connObjecKeyValue = mappingManager.getConnObjectKeyValue(any, provision.get());
ConnectorObject beforeObj = getRemoteObject(
- provision.getObjectClass(),
- connObjectKey.getExtAttrName(),
- connObjecKeyValue,
- provision.getMapping().getItems().iterator());
+ provision.get().getObjectClass(),
+ connObjectKey.get().getExtAttrName(),
+ connObjecKeyValue.get(),
+ provision.get().getMapping().getItems().iterator());
Boolean status = profile.getTask().isSyncStatus() ? enabled : null;
@@ -435,10 +436,10 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
}
resultStatus = AuditElements.Result.SUCCESS;
output = getRemoteObject(
- provision.getObjectClass(),
- connObjectKey.getExtAttrName(),
- connObjecKeyValue,
- provision.getMapping().getItems().iterator());
+ provision.get().getObjectClass(),
+ connObjectKey.get().getExtAttrName(),
+ connObjecKeyValue.get(),
+ provision.get().getMapping().getItems().iterator());
} catch (IgnoreProvisionException e) {
throw e;
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
index 36b33f7..c0a7eb4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
@@ -18,8 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.pushpull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.PasswordPatch;
import org.apache.syncope.common.lib.patch.UserPatch;
@@ -108,19 +107,13 @@ public class DBPasswordPullActions implements PullActions {
}
private String getCipherAlgorithm(final ConnInstance connInstance) {
- ConnConfProperty cipherAlgorithm =
- IterableUtils.find(connInstance.getConf(), new Predicate<ConnConfProperty>() {
-
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "cipherAlgorithm".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return cipherAlgorithm == null
- ? CLEARTEXT
- : (String) cipherAlgorithm.getValues().get(0);
+ Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+ filter(property -> "cipherAlgorithm".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
+
+ return cipherAlgorithm.isPresent()
+ ? (String) cipherAlgorithm.get().getValues().get(0)
+ : CLEARTEXT;
}
@Transactional
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
index 98ce3b9..5261926 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
@@ -23,9 +23,8 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -78,19 +77,13 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
* @return the name of the attribute used to keep track of group memberships
*/
protected String getGroupMembershipAttrName(final Connector connector) {
- ConnConfProperty groupMembership = IterableUtils.find(connector.getConnInstance().getConf(),
- new Predicate<ConnConfProperty>() {
+ Optional<ConnConfProperty> groupMembership = connector.getConnInstance().getConf().stream().
+ filter(property -> "groupMemberAttribute".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "groupMemberAttribute".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return groupMembership == null
- ? "uniquemember"
- : (String) groupMembership.getValues().get(0);
+ return groupMembership.isPresent()
+ ? (String) groupMembership.get().getValues().get(0)
+ : "uniquemember";
}
/**
@@ -139,14 +132,16 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
throws JobExecutionException {
Connector connector = profile.getConnector();
- for (Object membValue : getMembAttrValues(delta, connector)) {
+ getMembAttrValues(delta, connector).stream().map(membValue -> {
Set<String> memb = memberships.get(membValue.toString());
if (memb == null) {
memb = new HashSet<>();
memberships.put(membValue.toString(), memb);
}
+ return memb;
+ }).forEachOrdered(memb -> {
memb.add(groupTO.getKey());
- }
+ });
}
/**
@@ -165,8 +160,8 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
}
if (!(entity instanceof GroupTO)
- || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()) == null
- || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).getMapping() == null) {
+ || !profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).isPresent()
+ || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).get().getMapping() == null) {
super.after(profile, delta, entity, result);
} else {
@@ -177,18 +172,18 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
@Override
public void afterAll(final ProvisioningProfile<?, ?> profile) throws JobExecutionException {
Map<String, Set<String>> resolvedMemberships = new HashMap<>();
- for (Map.Entry<String, Set<String>> entry : this.memberships.entrySet()) {
- String userKey = pullUtils.findMatchingAnyKey(
+ this.memberships.entrySet().forEach(entry -> {
+ Optional<String> userKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findUser(),
entry.getKey(),
profile.getTask().getResource(),
profile.getConnector());
- if (userKey == null) {
- LOG.warn("Could not find matching user for {}", entry.getKey());
+ if (userKey.isPresent()) {
+ resolvedMemberships.put(userKey.get(), entry.getValue());
} else {
- resolvedMemberships.put(userKey, entry.getValue());
+ LOG.warn("Could not find matching user for {}", entry.getKey());
}
- }
+ });
Map<String, Object> jobMap = new HashMap<>();
jobMap.put(SetUMembershipsJob.MEMBERSHIPS_KEY, resolvedMemberships);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
index 3520db0..eb94ba9 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
@@ -24,16 +24,16 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.common.lib.collections.IteratorChain;
import org.apache.syncope.common.lib.policy.PullPolicySpec;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
@@ -79,39 +79,39 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
}
private void setGroupOwners(final GroupPullResultHandler ghandler) {
- for (Map.Entry<String, String> entry : ghandler.getGroupOwnerMap().entrySet()) {
+ ghandler.getGroupOwnerMap().entrySet().stream().map(entry -> {
Group group = groupDAO.find(entry.getKey());
if (group == null) {
throw new NotFoundException("Group " + entry.getKey());
}
-
if (StringUtils.isBlank(entry.getValue())) {
group.setGroupOwner(null);
group.setUserOwner(null);
} else {
- String userKey = pullUtils.findMatchingAnyKey(
+ Optional<String> userKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findUser(),
entry.getValue(),
ghandler.getProfile().getTask().getResource(),
ghandler.getProfile().getConnector());
- if (userKey == null) {
- String groupKey = pullUtils.findMatchingAnyKey(
+ if (userKey.isPresent()) {
+ group.setUserOwner(userDAO.find(userKey.get()));
+ } else {
+ Optional<String> groupKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findGroup(),
entry.getValue(),
ghandler.getProfile().getTask().getResource(),
ghandler.getProfile().getConnector());
- if (groupKey != null) {
- group.setGroupOwner(groupDAO.find(groupKey));
+ if (groupKey.isPresent()) {
+ group.setGroupOwner(groupDAO.find(groupKey.get()));
}
- } else {
- group.setUserOwner(userDAO.find(userKey));
}
}
-
+ return group;
+ }).forEachOrdered(group -> {
groupDAO.save(group);
- }
+ });
}
@Override
@@ -123,7 +123,7 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
LOG.debug("Executing pull on {}", pullTask.getResource());
List<PullActions> actions = new ArrayList<>();
- for (String className : pullTask.getActionsClassNames()) {
+ pullTask.getActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
PullActions pullActions = (PullActions) ApplicationContextProvider.getBeanFactory().
@@ -133,7 +133,7 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
} catch (Exception e) {
LOG.warn("Class '{}' not found", className, e);
}
- }
+ });
ProvisioningProfile<PullTask, PullActions> profile = new ProvisioningProfile<>(connector, pullTask);
profile.getActions().addAll(actions);
@@ -236,10 +236,10 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
try {
Set<MappingItem> linkinMappingItems = new HashSet<>();
- for (VirSchema virSchema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.findByProvision(provision).forEach(virSchema -> {
linkinMappingItems.add(virSchema.asLinkingMappingItem());
- }
- Iterator<MappingItem> mapItems = IteratorUtils.chainedIterator(
+ });
+ Iterator<MappingItem> mapItems = new IteratorChain<>(
provision.getMapping().getItems().iterator(),
linkinMappingItems.iterator());
OperationOptions options = MappingUtils.buildOperationOptions(mapItems);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
index 7dee306..ad431bf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
@@ -21,7 +21,8 @@ package org.apache.syncope.core.provisioning.java.pushpull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.policy.PullPolicySpec;
@@ -58,7 +59,6 @@ import org.identityconnectors.framework.common.objects.AttributeUtil;
import org.identityconnectors.framework.common.objects.ConnectorObject;
import org.identityconnectors.framework.common.objects.Name;
import org.identityconnectors.framework.common.objects.OperationalAttributes;
-import org.identityconnectors.framework.common.objects.ResultsHandler;
import org.identityconnectors.framework.common.objects.filter.EqualsFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,7 +66,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.apache.syncope.core.provisioning.api.pushpull.PullCorrelationRule;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
@@ -115,43 +114,37 @@ public class PullUtils {
@Autowired
private IntAttrNameParser intAttrNameParser;
- public String findMatchingAnyKey(
+ public Optional<String> findMatchingAnyKey(
final AnyType anyType,
final String name,
final ExternalResource resource,
final Connector connector) {
- Provision provision = resource.getProvision(anyType);
- if (provision == null) {
- return null;
+ Optional<? extends Provision> provision = resource.getProvision(anyType);
+ if (!provision.isPresent()) {
+ return Optional.empty();
}
- String result = null;
+ Optional<String> result = Optional.empty();
AnyUtils anyUtils = anyUtilsFactory.getInstance(anyType.getKind());
final List<ConnectorObject> found = new ArrayList<>();
- connector.search(provision.getObjectClass(),
- new EqualsFilter(new Name(name)),
- new ResultsHandler() {
-
- @Override
- public boolean handle(final ConnectorObject obj) {
- return found.add(obj);
- }
- }, MappingUtils.buildOperationOptions(MappingUtils.getPullItems(provision).iterator()));
+ connector.search(provision.get().getObjectClass(),
+ new EqualsFilter(new Name(name)), obj -> found.add(obj),
+ MappingUtils.buildOperationOptions(MappingUtils.getPullItems(provision.get()).iterator()));
if (found.isEmpty()) {
- LOG.debug("No {} found on {} with __NAME__ {}", provision.getObjectClass(), resource, name);
+ LOG.debug("No {} found on {} with __NAME__ {}", provision.get().getObjectClass(), resource, name);
} else {
if (found.size() > 1) {
LOG.warn("More than one {} found on {} with __NAME__ {} - taking first only",
- provision.getObjectClass(), resource, name);
+ provision.get().getObjectClass(), resource, name);
}
ConnectorObject connObj = found.iterator().next();
try {
- List<String> anyKeys = findExisting(connObj.getUid().getUidValue(), connObj, provision, anyUtils);
+ List<String> anyKeys = findExisting(connObj.getUid().getUidValue(), connObj, provision.get(), anyUtils);
if (anyKeys.isEmpty()) {
LOG.debug("No matching {} found for {}, aborting", anyUtils.getAnyTypeKind(), connObj);
} else {
@@ -159,7 +152,7 @@ public class PullUtils {
LOG.warn("More than one {} found {} - taking first only", anyUtils.getAnyTypeKind(), anyKeys);
}
- result = anyKeys.iterator().next();
+ result = Optional.ofNullable(anyKeys.iterator().next());
}
} catch (IllegalArgumentException e) {
LOG.warn(e.getMessage());
@@ -180,12 +173,12 @@ public class PullUtils {
private List<String> findByConnObjectKeyItem(
final String uid, final Provision provision, final AnyUtils anyUtils) {
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
String transfUid = uid;
- for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem)) {
+ for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem.get())) {
List<Object> output = transformer.beforePull(
- connObjectKeyItem,
+ connObjectKeyItem.get(),
null,
Collections.<Object>singletonList(transfUid));
if (output != null && !output.isEmpty()) {
@@ -196,7 +189,7 @@ public class PullUtils {
List<String> result = new ArrayList<>();
IntAttrName intAttrName = intAttrNameParser.parse(
- connObjectKeyItem.getIntAttrName(),
+ connObjectKeyItem.get().getIntAttrName(),
provision.getAnyType().getKind());
if (intAttrName.getField() != null) {
@@ -247,17 +240,17 @@ public class PullUtils {
List<? extends Any<?>> anys = getAnyDAO(provision.getAnyType().getKind()).
findByPlainAttrValue(intAttrName.getSchemaName(), value);
- for (Any<?> any : anys) {
+ anys.forEach(any -> {
result.add(any.getKey());
- }
+ });
break;
case DERIVED:
anys = getAnyDAO(provision.getAnyType().getKind()).
findByDerAttrValue(intAttrName.getSchemaName(), transfUid);
- for (Any<?> any : anys) {
+ anys.forEach(any -> {
result.add(any.getKey());
- }
+ });
break;
default:
@@ -271,9 +264,9 @@ public class PullUtils {
final ConnectorObject connObj, final PullCorrelationRule rule, final AnyTypeKind type) {
List<String> result = new ArrayList<>();
- for (Any<?> any : searchDAO.search(rule.getSearchCond(connObj), type)) {
+ searchDAO.search(rule.getSearchCond(connObj), type).forEach(any -> {
result.add(any.getKey());
- }
+ });
return result;
}
@@ -337,12 +330,12 @@ public class PullUtils {
final ConnectorObject connObj,
final OrgUnit orgUnit) {
- OrgUnitItem connObjectKeyItem = orgUnit.getConnObjectKeyItem();
+ Optional<? extends OrgUnitItem> connObjectKeyItem = orgUnit.getConnObjectKeyItem();
String transfUid = uid;
- for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem)) {
+ for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem.get())) {
List<Object> output = transformer.beforePull(
- connObjectKeyItem,
+ connObjectKeyItem.get(),
null,
Collections.<Object>singletonList(transfUid));
if (output != null && !output.isEmpty()) {
@@ -353,7 +346,7 @@ public class PullUtils {
List<String> result = new ArrayList<>();
Realm realm;
- switch (connObjectKeyItem.getIntAttrName()) {
+ switch (connObjectKeyItem.get().getIntAttrName()) {
case "key":
realm = realmDAO.find(transfUid);
if (realm != null) {
@@ -362,7 +355,8 @@ public class PullUtils {
break;
case "name":
- CollectionUtils.collect(realmDAO.findByName(transfUid), EntityUtils.keyTransformer(), result);
+ result.addAll(realmDAO.findByName(transfUid).stream().
+ map(r -> r.getKey()).collect(Collectors.toList()));
break;
case "fullpath":
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
index 8a4a036..996ccad 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.provisioning.java.pushpull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.search.SearchCondConverter;
@@ -38,6 +39,7 @@ import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.task.PushTask;
+import org.apache.syncope.core.persistence.api.entity.task.PushTaskAnyFilter;
import org.apache.syncope.core.provisioning.api.Connector;
import org.apache.syncope.core.provisioning.api.pushpull.AnyObjectPushResultHandler;
import org.apache.syncope.core.provisioning.api.pushpull.GroupPushResultHandler;
@@ -119,7 +121,7 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
LOG.debug("Executing push on {}", pushTask.getResource());
List<PushActions> actions = new ArrayList<>();
- for (String className : pushTask.getActionsClassNames()) {
+ pushTask.getActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
@@ -129,7 +131,7 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
} catch (Exception e) {
LOG.info("Class '{}' not found", className, e);
}
- }
+ });
ProvisioningProfile<PushTask, PushActions> profile = new ProvisioningProfile<>(connector, pushTask);
profile.getActions().addAll(actions);
@@ -195,9 +197,10 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
handler = ahandler;
}
- String filter = pushTask.getFilter(provision.getAnyType()) == null
- ? null
- : pushTask.getFilter(provision.getAnyType()).getFIQLCond();
+ Optional<? extends PushTaskAnyFilter> anyFilter = pushTask.getFilter(provision.getAnyType());
+ String filter = anyFilter.isPresent()
+ ? anyFilter.get().getFIQLCond()
+ : null;
SearchCond cond = StringUtils.isBlank(filter)
? anyDAO.getAllMatchingCond()
: SearchCondConverter.convert(filter);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
index 4becdad..655f0c5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.types.AuditElements;
@@ -195,12 +196,12 @@ public class RealmPushResultHandlerImpl
// Try to read remote object BEFORE any actual operation
OrgUnit orgUnit = profile.getTask().getResource().getOrgUnit();
- OrgUnitItem connObjectKey = orgUnit.getConnObjectKeyItem();
+ Optional<? extends OrgUnitItem> connObjectKey = orgUnit.getConnObjectKeyItem();
String connObjecKeyValue = mappingManager.getConnObjectKeyValue(realm, orgUnit);
ConnectorObject beforeObj = getRemoteObject(
orgUnit.getObjectClass(),
- connObjectKey.getExtAttrName(),
+ connObjectKey.get().getExtAttrName(),
connObjecKeyValue,
orgUnit.getItems().iterator());
@@ -374,7 +375,7 @@ public class RealmPushResultHandlerImpl
resultStatus = AuditElements.Result.SUCCESS;
output = getRemoteObject(
orgUnit.getObjectClass(),
- connObjectKey.getExtAttrName(),
+ connObjectKey.get().getExtAttrName(),
connObjecKeyValue,
orgUnit.getItems().iterator());
} catch (IgnoreProvisionException e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
index 249e488..ca98f76 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
@@ -34,8 +34,6 @@ import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.spring.security.Encryptor;
import org.apache.syncope.core.spring.security.PasswordGenerator;
@@ -43,7 +41,6 @@ import org.apache.syncope.core.spring.security.SecureRandomUtils;
import org.apache.syncope.core.persistence.api.dao.RealmDAO;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
-import org.apache.syncope.core.persistence.api.entity.resource.OrgUnitItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.task.PullTask;
import org.apache.syncope.core.provisioning.api.MappingManager;
@@ -52,7 +49,6 @@ import org.identityconnectors.common.Base64;
import org.identityconnectors.common.security.GuardedByteArray;
import org.identityconnectors.common.security.GuardedString;
import org.identityconnectors.common.security.SecurityUtil;
-import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.ConnectorObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -134,19 +130,18 @@ public class ConnObjectUtils {
Realm realm = realmDAO.findByFullPath(userTO.getRealm());
if (realm != null) {
- for (Realm ancestor : realmDAO.findAncestors(realm)) {
- if (ancestor.getPasswordPolicy() != null) {
- ruleConfs.addAll(ancestor.getPasswordPolicy().getRuleConfs());
- }
- }
+ realmDAO.findAncestors(realm).stream().
+ filter(ancestor -> (ancestor.getPasswordPolicy() != null)).
+ forEachOrdered(ancestor -> {
+ ruleConfs.addAll(ancestor.getPasswordPolicy().getRuleConfs());
+ });
}
- for (String resName : userTO.getResources()) {
- ExternalResource resource = resourceDAO.find(resName);
- if (resource != null && resource.getPasswordPolicy() != null) {
- ruleConfs.addAll(resource.getPasswordPolicy().getRuleConfs());
- }
- }
+ userTO.getResources().stream().map(resName -> resourceDAO.find(resName)).
+ filter(resource -> (resource != null && resource.getPasswordPolicy() != null)).
+ forEachOrdered(resource -> {
+ ruleConfs.addAll(resource.getPasswordPolicy().getRuleConfs());
+ });
String password;
try {
@@ -165,9 +160,9 @@ public class ConnObjectUtils {
public RealmTO getRealmTO(final ConnectorObject obj, final PullTask task, final OrgUnit orgUnit) {
RealmTO realmTO = new RealmTO();
- for (OrgUnitItem item : MappingUtils.getPullItems(orgUnit)) {
+ MappingUtils.getPullItems(orgUnit).forEach(item -> {
mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), realmTO);
- }
+ });
return realmTO;
}
@@ -268,9 +263,9 @@ public class ConnObjectUtils {
// 1. fill with data from connector object
anyTO.setRealm(pullTask.getDestinatioRealm().getFullPath());
- for (MappingItem item : MappingUtils.getPullItems(provision)) {
+ MappingUtils.getPullItems(provision).forEach(item -> {
mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), anyTO, anyUtils);
- }
+ });
// 2. add data from defined template (if any)
templateUtils.apply(anyTO, pullTask.getTemplate(provision.getAnyType()));
@@ -288,26 +283,24 @@ public class ConnObjectUtils {
final ConnObjectTO connObjectTO = new ConnObjectTO();
if (connObject != null) {
- for (Attribute attr : connObject.getAttributes()) {
+ connObject.getAttributes().stream().map(attr -> {
AttrTO attrTO = new AttrTO();
attrTO.setSchema(attr.getName());
-
if (attr.getValue() != null) {
- for (Object value : attr.getValue()) {
- if (value != null) {
- if (value instanceof GuardedString || value instanceof GuardedByteArray) {
- attrTO.getValues().add(getPassword(value));
- } else if (value instanceof byte[]) {
- attrTO.getValues().add(Base64.encode((byte[]) value));
- } else {
- attrTO.getValues().add(value.toString());
- }
+ attr.getValue().stream().filter(value -> value != null).forEachOrdered(value -> {
+ if (value instanceof GuardedString || value instanceof GuardedByteArray) {
+ attrTO.getValues().add(getPassword(value));
+ } else if (value instanceof byte[]) {
+ attrTO.getValues().add(Base64.encode((byte[]) value));
+ } else {
+ attrTO.getValues().add(value.toString());
}
- }
+ });
}
-
+ return attrTO;
+ }).forEachOrdered((attrTO) -> {
connObjectTO.getAttrs().add(attrTO);
- }
+ });
}
return connObjectTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
index ce794af..ebe4e2b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
@@ -19,12 +19,13 @@
package org.apache.syncope.core.provisioning.java.utils;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.jexl3.JexlContext;
import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.ClassUtils;
@@ -57,55 +58,43 @@ public final class MappingUtils {
private static final Logger LOG = LoggerFactory.getLogger(MappingUtils.class);
- public static MappingItem getConnObjectKeyItem(final Provision provision) {
+ public static Optional<MappingItem> getConnObjectKeyItem(final Provision provision) {
Mapping mapping = null;
if (provision != null) {
mapping = provision.getMapping();
}
- return mapping == null
+ return Optional.ofNullable(mapping == null
? null
- : mapping.getConnObjectKeyItem();
+ : mapping.getConnObjectKeyItem().get());
}
public static List<? extends MappingItem> getPropagationItems(final Provision provision) {
- return ListUtils.select(provision.getMapping().getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.getPurpose() == MappingPurpose.PROPAGATION || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return provision == null
+ ? Collections.emptyList()
+ : provision.getMapping().getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PROPAGATION
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends MappingItem> getPullItems(final Provision provision) {
- return ListUtils.select(provision.getMapping().getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.getPurpose() == MappingPurpose.PULL || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return provision == null
+ ? Collections.emptyList()
+ : provision.getMapping().getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PULL
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends OrgUnitItem> getPropagationItems(final OrgUnit orgUnit) {
- return ListUtils.select(orgUnit.getItems(), new Predicate<OrgUnitItem>() {
-
- @Override
- public boolean evaluate(final OrgUnitItem item) {
- return item.getPurpose() == MappingPurpose.PROPAGATION || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return orgUnit.getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PROPAGATION
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends OrgUnitItem> getPullItems(final OrgUnit orgUnit) {
- return ListUtils.select(orgUnit.getItems(), new Predicate<OrgUnitItem>() {
-
- @Override
- public boolean evaluate(final OrgUnitItem item) {
- return item.getPurpose() == MappingPurpose.PULL || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return orgUnit.getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PULL
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
private static Name evaluateNAME(final String evalConnObjectLink, final String connObjectKey) {
@@ -209,7 +198,7 @@ public final class MappingUtils {
}
// Then other custom tranaformers
- for (String className : mappingItemTransformerClassNames) {
+ mappingItemTransformerClassNames.forEach(className -> {
try {
Class<?> transformerClass = ClassUtils.getClass(className);
@@ -218,7 +207,7 @@ public final class MappingUtils {
} catch (Exception e) {
LOG.error("Could not instantiate {}, ignoring...", className, e);
}
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
index ef47ef1..0994252 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.provisioning.java.utils;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.EntityTOUtils;
@@ -28,8 +29,6 @@ import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.GroupableRelatableTO;
-import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.RelationshipTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.core.provisioning.java.jexl.JexlUtils;
@@ -56,12 +55,12 @@ public class TemplateUtils {
result.setSchema(template.getSchema());
if (template.getValues() != null && !template.getValues().isEmpty()) {
- for (String value : template.getValues()) {
+ template.getValues().forEach(value -> {
String evaluated = JexlUtils.evaluate(value, anyTO, new MapContext());
if (StringUtils.isNotBlank(evaluated)) {
result.getValues().add(evaluated);
}
- }
+ });
}
return result;
@@ -108,25 +107,26 @@ public class TemplateUtils {
}
private void fillRelationships(final GroupableRelatableTO any, final GroupableRelatableTO template) {
- for (RelationshipTO relationship : template.getRelationships()) {
- if (any.getRelationship(relationship.getRightKey(), relationship.getRightKey()) == null) {
- any.getRelationships().add(relationship);
- }
- }
+ template.getRelationships().stream().
+ filter(relationship
+ -> !any.getRelationship(relationship.getRightKey(), relationship.getRightKey()).isPresent()).
+ forEachOrdered(relationship -> {
+ any.getRelationships().add(relationship);
+ });
}
private void fillMemberships(final GroupableRelatableTO any, final GroupableRelatableTO template) {
- for (MembershipTO membership : template.getMemberships()) {
- if (any.getMembership(membership.getGroupKey()) == null) {
- any.getMemberships().add(membership);
- }
- }
+ template.getMemberships().stream().
+ filter(membership -> !any.getMembership(membership.getGroupKey()).isPresent()).
+ forEachOrdered(membership -> {
+ any.getMemberships().add(membership);
+ });
}
@Transactional(readOnly = true)
- public <T extends AnyTO> void apply(final T anyTO, final AnyTemplate anyTemplate) {
- if (anyTemplate != null) {
- apply(anyTO, anyTemplate.get());
+ public <T extends AnyTO> void apply(final T anyTO, final Optional<? extends AnyTemplate> anyTemplate) {
+ if (anyTemplate.isPresent()) {
+ apply(anyTO, anyTemplate.get().get());
}
}
@@ -180,18 +180,20 @@ public class TemplateUtils {
public void check(final Map<String, AnyTO> templates, final ClientExceptionType clientExceptionType) {
SyncopeClientException sce = SyncopeClientException.build(clientExceptionType);
- for (Map.Entry<String, AnyTO> entry : templates.entrySet()) {
- for (AttrTO attrTO : entry.getValue().getPlainAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
-
- for (AttrTO attrTO : entry.getValue().getVirAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
+ templates.entrySet().forEach(entry -> {
+ entry.getValue().getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()
+ && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
+ forEachOrdered(attrTO -> {
+ sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
+ });
+
+ entry.getValue().getVirAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()
+ && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
+ forEachOrdered((attrTO) -> {
+ sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
+ });
if (entry.getValue() instanceof UserTO) {
UserTO template = (UserTO) entry.getValue();
@@ -213,7 +215,7 @@ public class TemplateUtils {
sce.getElements().add("Invalid JEXL: " + template.getName());
}
}
- }
+ });
if (!sce.isEmpty()) {
throw sce;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
index 0434619..ebf1807 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
@@ -20,10 +20,7 @@ package org.apache.syncope.core.provisioning.java;
import static org.junit.Assert.assertEquals;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.provisioning.api.ConnIdBundleManager;
import org.apache.syncope.core.provisioning.api.Connector;
import org.apache.syncope.core.spring.ApplicationContextProvider;
@@ -59,13 +56,8 @@ public class ConnectorManagerTest extends AbstractTest {
connManager.load();
// only consider local connector bundles
- long expected = IterableUtils.countMatches(resourceDAO.findAll(), new Predicate<ExternalResource>() {
-
- @Override
- public boolean evaluate(final ExternalResource resource) {
- return resource.getConnector().getLocation().startsWith("file");
- }
- });
+ long expected = resourceDAO.findAll().stream().
+ filter(resource -> resource.getConnector().getLocation().startsWith("file")).count();
assertEquals(expected,
ApplicationContextProvider.getBeanFactory().
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
index cb9177a..8e3fa9b 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
@@ -59,7 +59,7 @@ public class MailTemplateTest extends AbstractTest {
public void confirmPasswordReset() throws IOException {
String htmlBody = evaluate(
mailTemplateDAO.find("confirmPasswordReset").getHTMLTemplate(),
- new HashMap<String, Object>());
+ new HashMap<>());
assertNotNull(htmlBody);
}
@@ -111,7 +111,7 @@ public class MailTemplateTest extends AbstractTest {
ctx.put("input", input);
UserTO recipient = SerializationUtils.clone(user);
- recipient.getPlainAttr("email").getValues().set(0, "another@syncope.apache.org");
+ recipient.getPlainAttr("email").get().getValues().set(0, "another@syncope.apache.org");
ctx.put("recipients", Collections.singletonList(recipient));
String htmlBody = evaluate(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
index 16e8ddf..8e6887a 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
@@ -58,7 +58,7 @@ public class MappingTest extends AbstractTest {
ExternalResource ldap = resourceDAO.find("resource-ldap");
assertNotNull(ldap);
- Provision provision = ldap.getProvision(anyTypeDAO.findUser());
+ Provision provision = ldap.getProvision(anyTypeDAO.findUser()).get();
assertNotNull(provision);
assertNotNull(provision.getMapping());
assertNotNull(provision.getMapping().getConnObjectLink());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
index bc7329a..af4247c 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
@@ -21,12 +21,10 @@ package org.apache.syncope.core.provisioning.java;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.MappingTO;
@@ -71,14 +69,9 @@ public class ResourceDataBinderTest extends AbstractTest {
@BeforeClass
public static void setAuthContext() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
@@ -98,10 +91,10 @@ public class ResourceDataBinderTest extends AbstractTest {
Set<MappingItem> beforeUserIdMappings = new HashSet<>();
for (ExternalResource res : resourceDAO.findAll()) {
- if (res.getProvision(anyTypeDAO.findUser()) != null
- && res.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (res.getProvision(anyTypeDAO.findUser()).isPresent()
+ && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (userId.getKey().equals(mapItem.getIntAttrName())) {
beforeUserIdMappings.add(mapItem);
}
@@ -133,8 +126,8 @@ public class ResourceDataBinderTest extends AbstractTest {
ExternalResource resource = resourceDataBinder.create(resourceTO);
resource = resourceDAO.save(resource);
assertNotNull(resource);
- assertNotNull(resource.getProvision(anyTypeDAO.findUser()).getMapping());
- assertEquals(1, resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ assertNotNull(resource.getProvision(anyTypeDAO.findUser()).get().getMapping());
+ assertEquals(1, resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
resourceDAO.flush();
@@ -146,10 +139,10 @@ public class ResourceDataBinderTest extends AbstractTest {
Set<MappingItem> afterUserIdMappings = new HashSet<>();
for (ExternalResource res : resourceDAO.findAll()) {
- if (res.getProvision(anyTypeDAO.findUser()) != null
- && res.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (res.getProvision(anyTypeDAO.findUser()).isPresent()
+ && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (userId.getKey().equals(mapItem.getIntAttrName())) {
afterUserIdMappings.add(mapItem);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
index 8595293..e2a1858 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
@@ -24,10 +24,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import javax.ws.rs.Path;
import javax.ws.rs.container.ContainerRequestContext;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.cxf.BusFactory;
import org.apache.cxf.common.util.ClasspathScanner;
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
@@ -84,27 +83,22 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
List<ClassResourceInfo> classResourceInfos = new ArrayList<>();
for (final Class<?> beanClass : resourceClasses) {
- ClassResourceInfo cri = IterableUtils.find(classResourceInfos, new Predicate<ClassResourceInfo>() {
-
- @Override
- public boolean evaluate(final ClassResourceInfo cri) {
- return cri.isCreatedFromModel() && cri.isRoot()
- && cri.getServiceClass().isAssignableFrom(beanClass);
- }
- });
- if (cri != null) {
- if (!InjectionUtils.isConcreteClass(cri.getServiceClass())) {
- cri = new ClassResourceInfo(cri);
- classResourceInfos.add(cri);
+ Optional<ClassResourceInfo> cri = classResourceInfos.stream().filter(c
+ -> c.isCreatedFromModel() && c.isRoot() && c.getServiceClass().isAssignableFrom(beanClass)).
+ findFirst();
+ if (cri.isPresent()) {
+ if (!InjectionUtils.isConcreteClass(cri.get().getServiceClass())) {
+ cri = Optional.of(new ClassResourceInfo(cri.get()));
+ classResourceInfos.add(cri.get());
}
- cri.setResourceClass(beanClass);
+ cri.get().setResourceClass(beanClass);
continue;
}
- cri = ResourceUtils.createClassResourceInfo(
- beanClass, beanClass, true, true, BusFactory.getDefaultBus());
- if (cri != null) {
- classResourceInfos.add(cri);
+ cri = Optional.ofNullable(ResourceUtils.createClassResourceInfo(
+ beanClass, beanClass, true, true, BusFactory.getDefaultBus()));
+ if (cri.isPresent()) {
+ classResourceInfos.add(cri.get());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
index 1b7e7f2..ed0f2dd 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.rest.cxf.service;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.core.Response;
@@ -40,7 +41,6 @@ import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.BulkAction;
import org.apache.syncope.common.lib.to.BulkActionResult;
import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.to.PropagationStatus;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.common.lib.types.ResourceAssociationAction;
@@ -101,7 +101,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
@Override
public AttrTO read(final String key, final SchemaType schemaType, final String schema) {
TO any = read(key);
- AttrTO result;
+ Optional<AttrTO> result;
switch (schemaType) {
case DERIVED:
result = any.getDerAttr(schema);
@@ -116,11 +116,11 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
result = any.getPlainAttr(schema);
}
- if (result == null) {
+ if (!result.isPresent()) {
throw new NotFoundException("Attribute for type " + schemaType + " and schema " + schema);
}
- return result;
+ return result.get();
}
@Override
@@ -267,17 +267,18 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
BulkActionResult result = new BulkActionResult();
if (patch.getAction() == ResourceDeassociationAction.UNLINK) {
- for (String resource : patch.getResources()) {
- result.getResults().put(resource,
+ patch.getResources().forEach(resource -> {
+ result.getResults().put(
+ resource,
updated.getEntity().getResources().contains(resource)
? BulkActionResult.Status.FAILURE
: BulkActionResult.Status.SUCCESS);
- }
+ });
} else {
- for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
- result.getResults().put(propagationStatusTO.getResource(),
- BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
- }
+ updated.getPropagationStatuses().forEach(propagationStatusTO
+ -> result.getResults().put(
+ propagationStatusTO.getResource(),
+ BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString())));
}
return modificationResponse(result);
@@ -323,17 +324,18 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
BulkActionResult result = new BulkActionResult();
if (patch.getAction() == ResourceAssociationAction.LINK) {
- for (String resource : patch.getResources()) {
- result.getResults().put(resource,
+ patch.getResources().forEach(resource -> {
+ result.getResults().put(
+ resource,
updated.getEntity().getResources().contains(resource)
? BulkActionResult.Status.SUCCESS
: BulkActionResult.Status.FAILURE);
- }
+ });
} else {
- for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
- result.getResults().put(propagationStatusTO.getResource(),
- BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
- }
+ updated.getPropagationStatuses().forEach(propagationStatusTO
+ -> result.getResults().put(
+ propagationStatusTO.getResource(),
+ BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString())));
}
return modificationResponse(result);
@@ -348,7 +350,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
switch (bulkAction.getType()) {
case MUSTCHANGEPASSWORD:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
try {
final UserPatch userPatch = new UserPatch();
userPatch.setKey(key);
@@ -361,14 +363,14 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing delete for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
break;
case DELETE:
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
try {
result.getResults().put(
logic.delete(key, isNullPriorityAsync()).getEntity().getKey(),
@@ -377,12 +379,12 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing delete for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
break;
case SUSPEND:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
StatusPatch statusPatch = new StatusPatch();
statusPatch.setKey(key);
statusPatch.setType(StatusPatchType.SUSPEND);
@@ -397,7 +399,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing suspend for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
@@ -405,7 +407,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
case REACTIVATE:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
StatusPatch statusPatch = new StatusPatch();
statusPatch.setKey(key);
statusPatch.setType(StatusPatchType.REACTIVATE);
@@ -420,7 +422,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing reactivate for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
index cc0b4fd..8080676 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
@@ -18,16 +18,13 @@
*/
package org.apache.syncope.core.spring.security;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.provisioning.api.EntitlementsHolder;
@@ -69,11 +66,9 @@ public final class AuthContextUtils {
SecurityContext ctx = SecurityContextHolder.getContext();
if (ctx != null && ctx.getAuthentication() != null && ctx.getAuthentication().getAuthorities() != null) {
Set<SyncopeGrantedAuthority> result = new HashSet<>();
- for (GrantedAuthority authority : ctx.getAuthentication().getAuthorities()) {
- if (authority instanceof SyncopeGrantedAuthority) {
- result.add(SyncopeGrantedAuthority.class.cast(authority));
- }
- }
+ ctx.getAuthentication().getAuthorities().stream().
+ filter(authority -> (authority instanceof SyncopeGrantedAuthority)).
+ forEachOrdered(authority -> result.add(SyncopeGrantedAuthority.class.cast(authority)));
return result;
}
@@ -96,7 +91,7 @@ public final class AuthContextUtils {
}
}
- return MapUtils.emptyIfNull(result);
+ return result == null ? Collections.emptyMap() : result;
}
public static String getDomain() {
@@ -113,14 +108,9 @@ public final class AuthContextUtils {
}
private static void setFakeAuth(final String domain) {
- List<GrantedAuthority> authorities = CollectionUtils.collect(EntitlementsHolder.getInstance().getValues(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = EntitlementsHolder.getInstance().getValues().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new User(ApplicationContextProvider.getBeanFactory().getBean("adminUser", String.class),