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:11 UTC
[07/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-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
index a21e1de..c4de549 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
@@ -21,9 +21,8 @@ package org.apache.syncope.core.provisioning.api.utils;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
public final class RealmUtils {
@@ -52,9 +51,7 @@ public final class RealmUtils {
public static Set<String> normalize(final Collection<String> realms) {
Set<String> normalized = new HashSet<>();
if (realms != null) {
- for (String realm : realms) {
- normalizingAddTo(normalized, realm);
- }
+ realms.forEach(realm -> normalizingAddTo(normalized, realm));
}
return normalized;
@@ -69,14 +66,8 @@ public final class RealmUtils {
}
@Override
- public boolean evaluate(final String realm) {
- return IterableUtils.matchesAny(targets, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String target) {
- return realm.startsWith(target);
- }
- });
+ public boolean test(final String realm) {
+ return targets.stream().anyMatch(target -> realm.startsWith(target));
}
}
@@ -84,7 +75,7 @@ public final class RealmUtils {
public static class DynRealmsPredicate implements Predicate<String> {
@Override
- public boolean evaluate(final String realm) {
+ public boolean test(final String realm) {
return !realm.startsWith("/");
}
}
@@ -95,11 +86,13 @@ public final class RealmUtils {
requested.add(requestedRealm);
Set<String> effective = new HashSet<>();
- CollectionUtils.select(requested, new StartsWithPredicate(allowed), effective);
- CollectionUtils.select(allowed, new StartsWithPredicate(requested), effective);
+ effective.addAll(requested.stream().filter(new StartsWithPredicate(allowed)).collect(Collectors.toSet()));
+ effective.addAll(allowed.stream().filter(new StartsWithPredicate(requested)).collect(Collectors.toSet()));
// includes dynamic realms
- CollectionUtils.select(allowedRealms, new DynRealmsPredicate(), effective);
+ if (allowedRealms != null) {
+ effective.addAll(allowedRealms.stream().filter(new DynRealmsPredicate()).collect(Collectors.toSet()));
+ }
return effective;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
index 2b42e91..f1c463d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
@@ -20,14 +20,11 @@ package org.apache.syncope.core.provisioning.java;
import java.io.File;
import java.net.URI;
-import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.types.ConnectorCapability;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
import org.apache.syncope.core.provisioning.api.ConnIdBundleManager;
@@ -108,12 +105,12 @@ public class ConnectorFacadeProxy implements Connector {
// set connector configuration according to conninstance's
ConfigurationProperties properties = apiConfig.getConfigurationProperties();
- for (ConnConfProperty property : connInstance.getConf()) {
- if (property.getValues() != null && !property.getValues().isEmpty()) {
- properties.setPropertyValue(property.getSchema().getName(),
- getPropertyValue(property.getSchema().getType(), property.getValues()));
- }
- }
+ connInstance.getConf().stream().
+ filter(property -> (property.getValues() != null && !property.getValues().isEmpty())).
+ forEachOrdered(property -> {
+ properties.setPropertyValue(property.getSchema().getName(),
+ getPropertyValue(property.getSchema().getType(), property.getValues()));
+ });
// set pooling configuration (if supported) according to conninstance's
if (connInstance.getPoolConf() != null) {
@@ -476,13 +473,9 @@ public class ConnectorFacadeProxy implements Connector {
if (pagedResultsCookie != null) {
builder.setPagedResultsCookie(pagedResultsCookie);
}
- builder.setSortKeys(CollectionUtils.collect(orderBy, new Transformer<OrderByClause, SortKey>() {
-
- @Override
- public SortKey transform(final OrderByClause clause) {
- return new SortKey(clause.getField(), clause.getDirection() == OrderByClause.Direction.ASC);
- }
- }, new ArrayList<SortKey>(orderBy.size())));
+ builder.setSortKeys(orderBy.stream().map(clause
+ -> new SortKey(clause.getField(), clause.getDirection() == OrderByClause.Direction.ASC)).
+ collect(Collectors.toList()));
builder.setAttributesToGet(options.getAttributesToGet());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
index 9b23633..0113ebf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
@@ -22,8 +22,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.to.PropagationStatus;
@@ -84,7 +83,7 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -111,7 +110,7 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -189,7 +188,9 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
AnyTypeKind.ANY_OBJECT,
key,
propByRes,
- CollectionUtils.removeAll(anyObjectDAO.findAllResourceKeys(key), resources));
+ anyObjectDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
index 31a2833..141561b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
@@ -23,11 +23,11 @@ import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.GroupPatch;
import org.apache.syncope.common.lib.to.AttrTO;
@@ -81,7 +81,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
Collections.<String>emptySet());
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
@@ -95,9 +95,9 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
WorkflowResult<String> created = gwfAdapter.create(groupTO);
// see ConnObjectUtils#getAnyTOFromConnObject for GroupOwnerSchema
- AttrTO groupOwner = groupTO.getPlainAttr(StringUtils.EMPTY);
- if (groupOwner != null) {
- groupOwnerMap.put(created.getResult(), groupOwner.getValues().iterator().next());
+ Optional<AttrTO> groupOwner = groupTO.getPlainAttr(StringUtils.EMPTY);
+ if (groupOwner.isPresent()) {
+ groupOwnerMap.put(created.getResult(), groupOwner.get().getValues().iterator().next());
}
List<PropagationTask> tasks = propagationManager.getCreateTasks(
@@ -108,7 +108,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -133,7 +133,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -150,24 +150,22 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
// Generate propagation tasks for deleting users and any objects from group resources,
// if they are on those resources only because of the reason being deleted (see SYNCOPE-357)
- for (Map.Entry<String, PropagationByResource> entry
- : groupDataBinder.findUsersWithTransitiveResources(key).entrySet()) {
-
- tasks.addAll(propagationManager.getDeleteTasks(
- AnyTypeKind.USER,
- entry.getKey(),
- entry.getValue(),
- excludedResources));
- }
- for (Map.Entry<String, PropagationByResource> entry
- : groupDataBinder.findAnyObjectsWithTransitiveResources(key).entrySet()) {
-
- tasks.addAll(propagationManager.getDeleteTasks(
- AnyTypeKind.ANY_OBJECT,
- entry.getKey(),
- entry.getValue(),
- excludedResources));
- }
+ groupDataBinder.findUsersWithTransitiveResources(key).entrySet().
+ forEach(entry -> {
+ tasks.addAll(propagationManager.getDeleteTasks(
+ AnyTypeKind.USER,
+ entry.getKey(),
+ entry.getValue(),
+ excludedResources));
+ });
+ groupDataBinder.findAnyObjectsWithTransitiveResources(key).entrySet().
+ forEach(entry -> {
+ tasks.addAll(propagationManager.getDeleteTasks(
+ AnyTypeKind.ANY_OBJECT,
+ entry.getKey(),
+ entry.getValue(),
+ excludedResources));
+ });
// Generate propagation tasks for deleting this group from resources
tasks.addAll(propagationManager.getDeleteTasks(
@@ -220,7 +218,9 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
AnyTypeKind.GROUP,
key,
propByRes,
- CollectionUtils.removeAll(groupDAO.findAllResourceKeys(key), resources));
+ groupDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
index d59af7b..eda96c4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
@@ -23,8 +23,7 @@ import java.util.Collections;
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.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.PasswordPatch;
@@ -109,7 +108,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult().getLeft(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult().getLeft(), propagationReporter.getStatuses());
}
@Override
@@ -119,7 +118,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(updated);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
}
@Override
@@ -148,9 +147,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
result.setStatus(ProvisioningReport.Status.FAILURE);
result.setMessage("Update failed, trying to pull status anyway (if configured)\n" + e.getMessage());
- updated = new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(userPatch, false), new PropagationByResource(),
- new HashSet<String>());
+ updated = new WorkflowResult<>(
+ Pair.of(userPatch, false), new PropagationByResource(),
+ new HashSet<>());
}
if (enabled != null) {
@@ -178,7 +177,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
updated, updated.getResult().getLeft().getPassword() != null, excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
}
@Override
@@ -234,7 +233,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.activate(statusPatch.getKey(), statusPatch.getToken())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
@Override
@@ -245,7 +244,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.reactivate(statusPatch.getKey())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
@Override
@@ -256,7 +255,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.suspend(statusPatch.getKey())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
protected List<PropagationStatus> propagateStatus(
@@ -288,7 +287,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(
new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(userPatch, Boolean.FALSE),
+ Pair.of(userPatch, Boolean.FALSE),
updated.getLeft().getPropByRes(), updated.getLeft().getPerformedTasks()));
taskExecutor.execute(tasks, false);
}
@@ -304,14 +303,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
UserPatch userPatch = new UserPatch();
userPatch.setKey(key);
- userPatch.getResources().addAll(CollectionUtils.collect(resources,
- new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String input) {
- return new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(input).build();
- }
- }, new HashSet<StringPatchItem>()));
+ userPatch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toSet()));
if (changePwd) {
PasswordPatch passwordPatch = new PasswordPatch();
@@ -324,7 +318,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
PropagationByResource propByRes = new PropagationByResource();
propByRes.addAll(ResourceOperation.UPDATE, resources);
- WorkflowResult<Pair<UserPatch, Boolean>> wfResult = new WorkflowResult<Pair<UserPatch, Boolean>>(
+ WorkflowResult<Pair<UserPatch, Boolean>> wfResult = new WorkflowResult<>(
ImmutablePair.of(userPatch, (Boolean) null), propByRes, "update");
List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(wfResult, changePwd, null);
@@ -344,7 +338,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
AnyTypeKind.USER,
key,
propByRes,
- CollectionUtils.removeAll(userDAO.findAllResourceKeys(key), resources));
+ userDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
index 54ada98..1597b11 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
@@ -22,9 +22,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -159,26 +158,26 @@ public class MappingManagerImpl implements MappingManager {
try {
Pair<String, Attribute> preparedAttr = prepareAttr(provision, mapItem, any, password);
if (preparedAttr != null) {
- if (preparedAttr.getKey() != null) {
- connObjectKey = preparedAttr.getKey();
+ if (preparedAttr.getLeft() != null) {
+ connObjectKey = preparedAttr.getLeft();
}
- if (preparedAttr.getValue() != null) {
- Attribute alreadyAdded = AttributeUtil.find(preparedAttr.getValue().getName(), attributes);
+ if (preparedAttr.getRight() != null) {
+ Attribute alreadyAdded = AttributeUtil.find(preparedAttr.getRight().getName(), attributes);
if (alreadyAdded == null) {
- attributes.add(preparedAttr.getValue());
+ attributes.add(preparedAttr.getRight());
} else {
attributes.remove(alreadyAdded);
Set<Object> values = new HashSet<>();
- if (CollectionUtils.isNotEmpty(alreadyAdded.getValue())) {
+ if (alreadyAdded.getValue() != null && !alreadyAdded.getValue().isEmpty()) {
values.addAll(alreadyAdded.getValue());
}
- values.addAll(preparedAttr.getValue().getValue());
+ values.addAll(preparedAttr.getRight().getValue());
- attributes.add(AttributeBuilder.build(preparedAttr.getValue().getName(), values));
+ attributes.add(AttributeBuilder.build(preparedAttr.getRight().getName(), values));
}
}
}
@@ -188,11 +187,11 @@ public class MappingManagerImpl implements MappingManager {
}
Attribute connObjectKeyExtAttr =
- AttributeUtil.find(MappingUtils.getConnObjectKeyItem(provision).getExtAttrName(), attributes);
+ AttributeUtil.find(MappingUtils.getConnObjectKeyItem(provision).get().getExtAttrName(), attributes);
if (connObjectKeyExtAttr != null) {
attributes.remove(connObjectKeyExtAttr);
attributes.add(AttributeBuilder.build(
- MappingUtils.getConnObjectKeyItem(provision).getExtAttrName(), connObjectKey));
+ MappingUtils.getConnObjectKeyItem(provision).get().getExtAttrName(), connObjectKey));
}
attributes.add(MappingUtils.evaluateNAME(any, provision, connObjectKey));
@@ -257,7 +256,7 @@ public class MappingManagerImpl implements MappingManager {
attributes.remove(alreadyAdded);
Set<Object> values = new HashSet<>();
- if (CollectionUtils.isNotEmpty(alreadyAdded.getValue())) {
+ if (alreadyAdded.getValue() != null && !alreadyAdded.getValue().isEmpty()) {
values.addAll(alreadyAdded.getValue());
}
values.add(value);
@@ -267,10 +266,11 @@ public class MappingManagerImpl implements MappingManager {
}
Attribute connObjectKeyExtAttr =
- AttributeUtil.find(orgUnit.getConnObjectKeyItem().getExtAttrName(), attributes);
+ AttributeUtil.find(orgUnit.getConnObjectKeyItem().get().getExtAttrName(), attributes);
if (connObjectKeyExtAttr != null) {
attributes.remove(connObjectKeyExtAttr);
- attributes.add(AttributeBuilder.build(orgUnit.getConnObjectKeyItem().getExtAttrName(), connObjectKey));
+ attributes.add(
+ AttributeBuilder.build(orgUnit.getConnObjectKeyItem().get().getExtAttrName(), connObjectKey));
}
attributes.add(MappingUtils.evaluateNAME(realm, orgUnit, connObjectKey));
@@ -412,7 +412,7 @@ public class MappingManagerImpl implements MappingManager {
}
} else if (intAttrName.getMembershipOfGroup() != null) {
Group group = groupDAO.findByName(intAttrName.getMembershipOfGroup());
- membership = groupableRelatable.getMembership(group.getKey());
+ membership = groupableRelatable.getMembership(group.getKey()).orElse(null);
}
}
if (reference == null) {
@@ -498,18 +498,16 @@ public class MappingManagerImpl implements MappingManager {
case PLAIN:
PlainAttr<?> attr;
if (membership == null) {
- attr = reference.getPlainAttr(intAttrName.getSchemaName());
+ attr = reference.getPlainAttr(intAttrName.getSchemaName()).orElse(null);
} else {
attr = ((GroupableRelatable<?, ?, ?, ?, ?>) reference).getPlainAttr(
- intAttrName.getSchemaName(), membership);
+ intAttrName.getSchemaName(), membership).orElse(null);
}
if (attr != null) {
if (attr.getUniqueValue() != null) {
values.add(anyUtils.clonePlainAttrValue(attr.getUniqueValue()));
} else if (attr.getValues() != null) {
- for (PlainAttrValue value : attr.getValues()) {
- values.add(anyUtils.clonePlainAttrValue(value));
- }
+ attr.getValues().forEach(value -> values.add(anyUtils.clonePlainAttrValue(value)));
}
}
break;
@@ -541,11 +539,13 @@ public class MappingManagerImpl implements MappingManager {
List<String> virValues = membership == null
? virAttrHandler.getValues(reference, virSchema)
: virAttrHandler.getValues(reference, membership, virSchema);
- for (String value : virValues) {
- PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
- attrValue.setStringValue(value);
- values.add(attrValue);
- }
+ virValues.stream().
+ map(value -> {
+ PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
+ attrValue.setStringValue(value);
+ return attrValue;
+ }).
+ forEachOrdered(attrValue -> values.add(attrValue));
}
break;
@@ -570,7 +570,7 @@ public class MappingManagerImpl implements MappingManager {
private String getGroupOwnerValue(final Provision provision, final Any<?> any) {
Pair<String, Attribute> preparedAttr =
- prepareAttr(provision, MappingUtils.getConnObjectKeyItem(provision), any, null);
+ prepareAttr(provision, MappingUtils.getConnObjectKeyItem(provision).get(), any, null);
String connObjectKey = preparedAttr.getKey();
return MappingUtils.evaluateNAME(any, provision, connObjectKey).getNameValue();
@@ -578,22 +578,22 @@ public class MappingManagerImpl implements MappingManager {
@Transactional(readOnly = true)
@Override
- public String getConnObjectKeyValue(final Any<?> any, final Provision provision) {
- MappingItem mapItem = provision.getMapping().getConnObjectKeyItem();
+ public Optional<String> getConnObjectKeyValue(final Any<?> any, final Provision provision) {
+ MappingItem mapItem = provision.getMapping().getConnObjectKeyItem().get();
List<PlainAttrValue> values = getIntValues(
provision,
mapItem,
intAttrNameParser.parse(mapItem.getIntAttrName(), provision.getAnyType().getKind()),
any);
- return values.isEmpty()
+ return Optional.ofNullable(values.isEmpty()
? null
- : values.get(0).getValueAsString();
+ : values.get(0).getValueAsString());
}
@Transactional(readOnly = true)
@Override
public String getConnObjectKeyValue(final Realm realm, final OrgUnit orgUnit) {
- OrgUnitItem orgUnitItem = orgUnit.getConnObjectKeyItem();
+ OrgUnitItem orgUnitItem = orgUnit.getConnObjectKeyItem().get();
return getIntValue(realm, orgUnitItem);
}
@@ -610,7 +610,7 @@ public class MappingManagerImpl implements MappingManager {
values = transformer.beforePull(mapItem, anyTO, values);
}
}
- values = ListUtils.emptyIfNull(values);
+ values = values == null ? Collections.emptyList() : values;
IntAttrName intAttrName =
intAttrNameParser.parse(mapItem.getIntAttrName(), anyUtils.getAnyTypeKind());
@@ -707,12 +707,13 @@ public class MappingManagerImpl implements MappingManager {
if (groupableTO == null || group == null) {
anyTO.getPlainAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getPlainAttrs().add(attrTO);
+ membership.get().getPlainAttrs().add(attrTO);
}
break;
@@ -722,12 +723,13 @@ public class MappingManagerImpl implements MappingManager {
if (groupableTO == null || group == null) {
anyTO.getDerAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getDerAttrs().add(attrTO);
+ membership.get().getDerAttrs().add(attrTO);
}
break;
@@ -736,23 +738,22 @@ public class MappingManagerImpl implements MappingManager {
attrTO.setSchema(intAttrName.getSchemaName());
// virtual attributes don't get transformed, iterate over original attr.getValue()
- for (Object value : (attr == null || attr.getValue() == null)
- ? Collections.emptyList() : attr.getValue()) {
-
- if (value != null) {
- attrTO.getValues().add(value.toString());
- }
+ if (attr != null && attr.getValue() != null && !attr.getValue().isEmpty()) {
+ attr.getValue().stream().
+ filter(value -> value != null).
+ forEachOrdered(value -> attrTO.getValues().add(value.toString()));
}
if (groupableTO == null || group == null) {
anyTO.getVirAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getVirAttrs().add(attrTO);
+ membership.get().getVirAttrs().add(attrTO);
}
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
index a074848..2caac56 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
@@ -23,8 +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.ListUtils;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
import org.apache.syncope.core.persistence.api.entity.Membership;
@@ -98,15 +98,15 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
for (Map.Entry<Provision, Set<VirSchema>> entry : toRead.entrySet()) {
LOG.debug("About to read from {}: {}", entry.getKey(), entry.getValue());
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(entry.getKey());
- String connObjectKeyValue = connObjectKeyItem == null
- ? null
- : mappingManager.getConnObjectKeyValue(any, entry.getKey());
- if (connObjectKeyItem == null) {
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(entry.getKey());
+ String connObjectKeyValue = connObjectKeyItem.isPresent()
+ ? mappingManager.getConnObjectKeyValue(any, entry.getKey()).orElse(null)
+ : null;
+ if (!connObjectKeyItem.isPresent()) {
LOG.error("No ConnObjectKey found for {}, ignoring...", entry.getKey());
} else {
Set<MappingItem> linkingMappingItems = new HashSet<>();
- linkingMappingItems.add(connObjectKeyItem);
+ linkingMappingItems.add(connObjectKeyItem.get());
for (VirSchema schema : entry.getValue()) {
linkingMappingItems.add(schema.asLinkingMappingItem());
}
@@ -115,14 +115,14 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
try {
ConnectorObject connectorObject = connector.getObject(
entry.getKey().getObjectClass(),
- AttributeBuilder.build(connObjectKeyItem.getExtAttrName(), connObjectKeyValue),
+ AttributeBuilder.build(connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue),
MappingUtils.buildOperationOptions(linkingMappingItems.iterator()));
if (connectorObject == null) {
LOG.debug("No read from {} with filter '{} == {}'",
- entry.getKey(), connObjectKeyItem.getExtAttrName(), connObjectKeyValue);
+ entry.getKey(), connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue);
} else {
- for (VirSchema schema : entry.getValue()) {
+ entry.getValue().forEach(schema -> {
Attribute attr = connectorObject.getAttributeByName(schema.getExtAttrName());
if (attr != null) {
VirAttrCacheValue virAttrCacheValue = new VirAttrCacheValue();
@@ -134,7 +134,7 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
result.put(schema, virAttrCacheValue.getValues());
}
- }
+ });
}
} catch (Exception e) {
LOG.error("Error reading from {}", entry.getKey(), e);
@@ -154,7 +154,8 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
return Collections.emptyList();
}
- return ListUtils.emptyIfNull(getValues(any, Collections.singleton(schema)).get(schema));
+ List<String> result = getValues(any, Collections.singleton(schema)).get(schema);
+ return result == null ? Collections.emptyList() : result;
}
@Override
@@ -166,7 +167,8 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
return Collections.emptyList();
}
- return ListUtils.emptyIfNull(getValues(any, Collections.singleton(schema)).get(schema));
+ List<String> result = getValues(any, Collections.singleton(schema)).get(schema);
+ return result == null ? Collections.emptyList() : result;
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
index c950a6f..dbf992b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
@@ -24,8 +24,9 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -81,7 +82,6 @@ import org.apache.syncope.core.provisioning.api.MappingManager;
import org.apache.syncope.core.provisioning.api.PropagationByResource;
import org.apache.syncope.core.provisioning.api.VirAttrHandler;
import org.apache.syncope.core.provisioning.api.data.SchemaDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.IntAttrNameParser;
import org.apache.syncope.core.provisioning.java.jexl.JexlUtils;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
@@ -193,7 +193,7 @@ abstract class AbstractAnyDataBinder {
? Collections.<String>emptyList()
: Collections.singletonList(values.iterator().next()));
- for (String value : valuesProvided) {
+ valuesProvided.forEach(value -> {
if (StringUtils.isBlank(value)) {
LOG.debug("Null value for {}, ignoring", schema.getKey());
} else {
@@ -205,22 +205,22 @@ abstract class AbstractAnyDataBinder {
invalidValues.getElements().add(schema.getKey() + ": " + value + " - " + e.getMessage());
}
}
- }
+ });
}
private List<String> evaluateMandatoryCondition(final Provision provision, final Any<?> any) {
List<String> missingAttrNames = new ArrayList<>();
- for (MappingItem mapItem : MappingUtils.getPropagationItems(provision)) {
- IntAttrName intAttrName =
- intAttrNameParser.parse(mapItem.getIntAttrName(), provision.getAnyType().getKind());
+ MappingUtils.getPropagationItems(provision).forEach(mapItem -> {
+ IntAttrName intAttrName = intAttrNameParser.
+ parse(mapItem.getIntAttrName(), provision.getAnyType().getKind());
if (intAttrName.getSchemaType() != null) {
List<PlainAttrValue> values = mappingManager.getIntValues(provision, mapItem, intAttrName, any);
if (values.isEmpty() && JexlUtils.evaluateMandatoryCondition(mapItem.getMandatoryCondition(), any)) {
missingAttrNames.add(mapItem.getIntAttrName());
}
}
- }
+ });
return missingAttrNames;
}
@@ -228,17 +228,17 @@ abstract class AbstractAnyDataBinder {
private SyncopeClientException checkMandatoryOnResources(final Any<?> any, final Set<ExternalResource> resources) {
SyncopeClientException reqValMissing = SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing);
- for (ExternalResource resource : resources) {
- Provision provision = resource.getProvision(any.getType());
- if (resource.isEnforceMandatoryCondition() && provision != null) {
- List<String> missingAttrNames = evaluateMandatoryCondition(provision, any);
+ resources.forEach(resource -> {
+ Optional<? extends Provision> provision = resource.getProvision(any.getType());
+ if (resource.isEnforceMandatoryCondition() && provision.isPresent()) {
+ List<String> missingAttrNames = evaluateMandatoryCondition(provision.get(), any);
if (!missingAttrNames.isEmpty()) {
LOG.error("Mandatory schemas {} not provided with values", missingAttrNames);
reqValMissing.getElements().addAll(missingAttrNames);
}
}
- }
+ });
return reqValMissing;
}
@@ -264,18 +264,20 @@ abstract class AbstractAnyDataBinder {
// Check if there is some mandatory schema defined for which no value has been provided
AllowedSchemas<PlainSchema> allowedPlainSchemas = anyUtils.getAllowedSchemas(any, PlainSchema.class);
- for (PlainSchema schema : allowedPlainSchemas.getForSelf()) {
- checkMandatory(schema, any.getPlainAttr(schema.getKey()), any, reqValMissing);
- }
- for (Map.Entry<Group, Set<PlainSchema>> entry : allowedPlainSchemas.getForMemberships().entrySet()) {
- if (any instanceof GroupableRelatable) {
- GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
- Membership<?> membership = groupable.getMembership(entry.getKey().getKey());
- for (PlainSchema schema : entry.getValue()) {
- checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership), any, reqValMissing);
- }
- }
- }
+ allowedPlainSchemas.getForSelf().
+ forEach(schema -> {
+ checkMandatory(schema, any.getPlainAttr(schema.getKey()).orElse(null), any, reqValMissing);
+ });
+ allowedPlainSchemas.getForMemberships().entrySet().stream().
+ filter(entry -> any instanceof GroupableRelatable).
+ forEachOrdered(entry -> {
+ GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
+ Membership<?> membership = groupable.getMembership(entry.getKey().getKey()).orElse(null);
+ entry.getValue().forEach(schema -> {
+ checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership).orElse(null),
+ any, reqValMissing);
+ });
+ });
return reqValMissing;
}
@@ -302,11 +304,11 @@ abstract class AbstractAnyDataBinder {
plainAttrValueDAO.delete(attr.getUniqueValue().getKey(), anyUtils.plainAttrUniqueValueClass());
}
} else {
- Collection<String> valuesToBeRemoved =
- CollectionUtils.collect(attr.getValues(), EntityUtils.keyTransformer());
- for (String attrValueKey : valuesToBeRemoved) {
+ Collection<String> valuesToBeRemoved = attr.getValues().stream().
+ map(value -> value.getKey()).collect(Collectors.toSet());
+ valuesToBeRemoved.forEach(attrValueKey -> {
plainAttrValueDAO.delete(attrValueKey, anyUtils.plainAttrValueClass());
- }
+ });
}
// 1.2 add values
@@ -330,17 +332,16 @@ abstract class AbstractAnyDataBinder {
plainAttrDAO.delete(attr.getKey(), anyUtils.plainAttrClass());
}
- for (ExternalResource resource : resources) {
- for (MappingItem item : MappingUtils.getPropagationItems(resource.getProvision(any.getType()))) {
- if (schema.getKey().equals(item.getIntAttrName())) {
- propByRes.add(ResourceOperation.UPDATE, resource.getKey());
-
- if (item.isConnObjectKey() && !attr.getValuesAsStrings().isEmpty()) {
- propByRes.addOldConnObjectKey(resource.getKey(), attr.getValuesAsStrings().get(0));
- }
- }
- }
- }
+ resources.forEach(resource -> {
+ MappingUtils.getPropagationItems(resource.getProvision(any.getType()).get()).stream().
+ filter(item -> (schema.getKey().equals(item.getIntAttrName()))).
+ forEachOrdered(item -> {
+ propByRes.add(ResourceOperation.UPDATE, resource.getKey());
+ if (item.isConnObjectKey() && !attr.getValuesAsStrings().isEmpty()) {
+ propByRes.addOldConnObjectKey(resource.getKey(), attr.getValuesAsStrings().get(0));
+ }
+ });
+ });
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -394,31 +395,30 @@ abstract class AbstractAnyDataBinder {
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
// 3. plain attributes
- for (AttrPatch patch : anyPatch.getPlainAttrs()) {
- if (patch.getAttrTO() != null) {
- PlainSchema schema = getPlainSchema(patch.getAttrTO().getSchema());
- if (schema == null) {
- LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
- + "{}, ignoring...", patch.getAttrTO().getSchema());
- } else {
- PlainAttr<?> attr = any.getPlainAttr(schema.getKey());
- if (attr == null) {
- LOG.debug("No plain attribute found for schema {}", schema);
+ anyPatch.getPlainAttrs().stream().
+ filter(patch -> patch.getAttrTO() != null).forEach(patch -> {
+ PlainSchema schema = getPlainSchema(patch.getAttrTO().getSchema());
+ if (schema == null) {
+ LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
+ + "{}, ignoring...", patch.getAttrTO().getSchema());
+ } else {
+ PlainAttr<?> attr = (PlainAttr<?>) any.getPlainAttr(schema.getKey()).orElse(null);
+ if (attr == null) {
+ LOG.debug("No plain attribute found for schema {}", schema);
- if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- attr = anyUtils.newPlainAttr();
- ((PlainAttr) attr).setOwner(any);
- attr.setSchema(schema);
- any.add(attr);
+ if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
+ attr = anyUtils.newPlainAttr();
+ ((PlainAttr) attr).setOwner(any);
+ attr.setSchema(schema);
+ any.add(attr);
- }
- }
- if (attr != null) {
- processAttrPatch(any, patch, schema, attr, anyUtils, resources, propByRes, invalidValues);
}
}
+ if (attr != null) {
+ processAttrPatch(any, patch, schema, attr, anyUtils, resources, propByRes, invalidValues);
+ }
}
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
}
@@ -444,39 +444,39 @@ abstract class AbstractAnyDataBinder {
// 0. aux classes
any.getAuxClasses().clear();
- for (String className : anyTO.getAuxClasses()) {
- AnyTypeClass auxClass = anyTypeClassDAO.find(className);
- if (auxClass == null) {
- LOG.debug("Invalid " + AnyTypeClass.class.getSimpleName() + "{}, ignoring...", auxClass);
- } else {
- any.add(auxClass);
- }
- }
+ anyTO.getAuxClasses().stream().
+ map(className -> anyTypeClassDAO.find(className)).
+ forEachOrdered(auxClass -> {
+ if (auxClass == null) {
+ LOG.debug("Invalid " + AnyTypeClass.class.getSimpleName() + "{}, ignoring...", auxClass);
+ } else {
+ any.add(auxClass);
+ }
+ });
// 1. attributes
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
- for (AttrTO attrTO : anyTO.getPlainAttrs()) {
- // Only consider attributeTO with values
- if (!attrTO.getValues().isEmpty()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema != null) {
- PlainAttr attr = any.getPlainAttr(schema.getKey());
- if (attr == null) {
- attr = anyUtils.newPlainAttr();
- attr.setOwner(any);
- attr.setSchema(schema);
- }
- fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
+ anyTO.getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()).
+ forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema != null) {
+ PlainAttr<?> attr = (PlainAttr<?>) any.getPlainAttr(schema.getKey()).orElse(null);
+ if (attr == null) {
+ attr = anyUtils.newPlainAttr();
+ ((PlainAttr) attr).setOwner(any);
+ attr.setSchema(schema);
+ }
+ fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
- if (attr.getValuesAsStrings().isEmpty()) {
- attr.setOwner(null);
- } else {
- any.add(attr);
+ if (attr.getValuesAsStrings().isEmpty()) {
+ attr.setOwner(null);
+ } else {
+ any.add(attr);
+ }
}
- }
- }
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
@@ -488,14 +488,14 @@ abstract class AbstractAnyDataBinder {
}
// 2. resources
- for (String resourceKey : anyTO.getResources()) {
+ anyTO.getResources().forEach(resourceKey -> {
ExternalResource resource = resourceDAO.find(resourceKey);
if (resource == null) {
LOG.debug("Invalid " + ExternalResource.class.getSimpleName() + "{}, ignoring...", resourceKey);
} else {
any.add(resource);
}
- }
+ });
requiredValuesMissing = checkMandatoryOnResources(any, anyUtils.getAllResources(any));
if (!requiredValuesMissing.isEmpty()) {
@@ -513,28 +513,28 @@ abstract class AbstractAnyDataBinder {
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
- for (AttrTO attrTO : membershipTO.getPlainAttrs()) {
- if (!attrTO.getValues().isEmpty()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema != null) {
- GroupablePlainAttr attr = GroupableRelatable.class.cast(any).
- getPlainAttr(schema.getKey(), membership);
- if (attr == null) {
- attr = anyUtils.newPlainAttr();
- attr.setOwner(any);
- attr.setMembership(membership);
- attr.setSchema(schema);
- }
- fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
+ membershipTO.getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()).
+ forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema != null) {
+ GroupablePlainAttr attr = (GroupablePlainAttr) GroupableRelatable.class.cast(any).
+ getPlainAttr(schema.getKey(), membership).orElse(null);
+ if (attr == null) {
+ attr = anyUtils.newPlainAttr();
+ attr.setOwner(any);
+ attr.setMembership(membership);
+ attr.setSchema(schema);
+ }
+ fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
- if (attr.getValuesAsStrings().isEmpty()) {
- attr.setOwner(null);
- } else {
- any.add(attr);
+ if (attr.getValuesAsStrings().isEmpty()) {
+ attr.setOwner(null);
+ } else {
+ any.add(attr);
+ }
}
- }
- }
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
@@ -553,41 +553,47 @@ abstract class AbstractAnyDataBinder {
anyTO.setRealm(realmFullPath);
- CollectionUtils.collect(auxClasses, EntityUtils.<AnyTypeClass>keyTransformer(), anyTO.getAuxClasses());
+ anyTO.getAuxClasses().addAll(auxClasses.stream().map(cls -> cls.getKey()).collect(Collectors.toList()));
- for (PlainAttr<?> plainAttr : plainAttrs) {
+ plainAttrs.stream().map(plainAttr -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(plainAttr.getSchema().getKey()).
values(plainAttr.getValuesAsStrings());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getPlainSchemaTO(plainAttr.getSchema()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getPlainAttrs().add(attrTOBuilder.build());
- }
+ });
- for (Map.Entry<DerSchema, String> entry : derAttrs.entrySet()) {
+ derAttrs.entrySet().stream().map(entry -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(entry.getKey().getKey()).
value(entry.getValue());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getDerSchemaTO(entry.getKey()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getDerAttrs().add(attrTOBuilder.build());
- }
+ });
- for (Map.Entry<VirSchema, List<String>> entry : virAttrs.entrySet()) {
+ virAttrs.entrySet().stream().map(entry -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(entry.getKey().getKey()).
values(entry.getValue());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getVirSchemaTO(entry.getKey()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getVirAttrs().add(attrTOBuilder.build());
- }
+ });
- for (ExternalResource resource : resources) {
+ resources.forEach(resource -> {
anyTO.getResources().add(resource.getKey());
- }
+ });
}
protected RelationshipTO getRelationshipTO(final Relationship<? extends Any<?>, AnyObject> relationship) {
@@ -607,29 +613,29 @@ abstract class AbstractAnyDataBinder {
group(membership.getRightEnd().getKey(), membership.getRightEnd().getName()).
build();
- for (PlainAttr<?> plainAttr : plainAttrs) {
+ plainAttrs.forEach(plainAttr -> {
membershipTO.getPlainAttrs().add(new AttrTO.Builder().
schema(plainAttr.getSchema().getKey()).
values(plainAttr.getValuesAsStrings()).
schemaInfo(schemaDataBinder.getPlainSchemaTO(plainAttr.getSchema())).
build());
- }
+ });
- for (Map.Entry<DerSchema, String> entry : derAttrs.entrySet()) {
+ derAttrs.entrySet().forEach(entry -> {
membershipTO.getDerAttrs().add(new AttrTO.Builder().
schema(entry.getKey().getKey()).
value(entry.getValue()).
schemaInfo(schemaDataBinder.getDerSchemaTO(entry.getKey())).
build());
- }
+ });
- for (Map.Entry<VirSchema, List<String>> entry : virAttrs.entrySet()) {
+ virAttrs.entrySet().forEach(entry -> {
membershipTO.getVirAttrs().add(new AttrTO.Builder().
schema(entry.getKey().getKey()).
values(entry.getValue()).
schemaInfo(schemaDataBinder.getVirSchemaTO(entry.getKey())).
build());
- }
+ });
return membershipTO;
}
@@ -643,18 +649,18 @@ abstract class AbstractAnyDataBinder {
? anyObjectDAO.findAllResources((AnyObject) any)
: ((Group) any).getResources();
for (ExternalResource resource : iterable) {
- Provision provision = resource.getProvision(any.getType());
- if (provision != null && provision.getMapping() != null) {
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
- if (connObjectKeyItem == null) {
+ Optional<? extends Provision> provision = resource.getProvision(any.getType());
+ if (provision.isPresent() && provision.get().getMapping() != null) {
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision.get());
+ if (!connObjectKeyItem.isPresent()) {
throw new NotFoundException(
"ConnObjectKey mapping for " + any.getType().getKey() + " " + any.getKey()
+ " on resource '" + resource.getKey() + "'");
}
- String connObjectKey = mappingManager.getConnObjectKeyValue(any, provision);
- if (connObjectKey != null) {
- connObjectKeys.put(resource.getKey(), connObjectKey);
+ Optional<String> connObjectKey = mappingManager.getConnObjectKeyValue(any, provision.get());
+ if (connObjectKey.isPresent()) {
+ connObjectKeys.put(resource.getKey(), connObjectKey.get());
}
}
}