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:13 UTC
[09/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/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
index 3f11fea..29d161e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
@@ -45,35 +46,35 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Transactional(readOnly = true)
@Override
- public CPlainAttr find(final String key) {
+ public Optional<? extends CPlainAttr> find(final String key) {
return get().getPlainAttr(key);
}
@Transactional(readOnly = true)
@Override
public <T> T find(final String key, final T defaultValue) {
- CPlainAttr result = find(key);
- if (result == null) {
+ Optional<? extends CPlainAttr> result = find(key);
+ if (!result.isPresent()) {
return defaultValue;
}
- return result.getUniqueValue() == null
- ? result.getValues().isEmpty()
+ return result.get().getUniqueValue() == null
+ ? result.get().getValues().isEmpty()
? null
- : result.getValues().get(0).<T>getValue()
- : result.getUniqueValue().<T>getValue();
+ : result.get().getValues().get(0).<T>getValue()
+ : result.get().getUniqueValue().<T>getValue();
}
@Override
public Conf save(final CPlainAttr attr) {
Conf instance = get();
- CPlainAttr old = instance.getPlainAttr(attr.getSchema().getKey());
- if (old != null && (!attr.getSchema().isUniqueConstraint()
- || (!attr.getUniqueValue().getStringValue().equals(old.getUniqueValue().getStringValue())))) {
+ Optional<? extends CPlainAttr> old = instance.getPlainAttr(attr.getSchema().getKey());
+ if (old.isPresent() && (!attr.getSchema().isUniqueConstraint()
+ || (!attr.getUniqueValue().getStringValue().equals(old.get().getUniqueValue().getStringValue())))) {
- old.setOwner(null);
- instance.remove(old);
+ old.get().setOwner(null);
+ instance.remove(old.get());
}
instance.add(attr);
@@ -85,10 +86,10 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Override
public Conf delete(final String key) {
Conf instance = get();
- CPlainAttr attr = instance.getPlainAttr(key);
- if (attr != null) {
- attr.setOwner(null);
- instance.remove(attr);
+ Optional<? extends CPlainAttr> attr = instance.getPlainAttr(key);
+ if (attr.isPresent()) {
+ attr.get().setOwner(null);
+ instance.remove(attr.get());
instance = entityManager().merge(instance);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
index 7d4c0c8..88af802 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
@@ -18,23 +18,18 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.stream.Collectors;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.persistence.api.dao.ConnInstanceDAO;
import org.apache.syncope.core.persistence.api.dao.ConnInstanceHistoryConfDAO;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.JPAConnInstance;
import org.apache.syncope.core.provisioning.api.ConnectorRegistry;
import org.apache.syncope.core.spring.security.AuthContextUtils;
@@ -61,20 +56,15 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
@Override
public ConnInstance authFind(final String key) {
- final ConnInstance connInstance = find(key);
+ ConnInstance connInstance = find(key);
if (connInstance == null) {
return null;
}
- final Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.CONNECTOR_READ);
+ Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.CONNECTOR_READ);
if (authRealms == null || authRealms.isEmpty()
- || !IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return connInstance.getAdminRealm().getFullPath().startsWith(realm);
- }
- })) {
+ || !authRealms.stream().anyMatch(
+ realm -> connInstance.getAdminRealm().getFullPath().startsWith(realm))) {
throw new DelegatedAdministrationException(
connInstance.getAdminRealm().getFullPath(),
@@ -95,32 +85,22 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
TypedQuery<ConnInstance> query = entityManager().createQuery(
"SELECT e FROM " + JPAConnInstance.class.getSimpleName() + " e", ConnInstance.class);
- return CollectionUtils.select(query.getResultList(), new Predicate<ConnInstance>() {
-
- @Override
- public boolean evaluate(final ConnInstance connInstance) {
- return IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return connInstance.getAdminRealm().getFullPath().startsWith(realm);
- }
- });
- }
- }, new ArrayList<ConnInstance>());
+ return query.getResultList().stream().filter(connInstance -> authRealms.stream().
+ anyMatch(realm -> connInstance.getAdminRealm().getFullPath().startsWith(realm))).
+ collect(Collectors.toList());
}
@Override
public ConnInstance save(final ConnInstance connector) {
final ConnInstance merged = entityManager().merge(connector);
- for (ExternalResource resource : merged.getResources()) {
+ merged.getResources().forEach(resource -> {
try {
connRegistry.registerConnector(resource);
} catch (NotFoundException e) {
LOG.error("While registering connector for resource", e);
}
- }
+ });
return merged;
}
@@ -132,14 +112,9 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
return;
}
- IterableUtils.forEach(new CopyOnWriteArrayList<>(connInstance.getResources()), new Closure<ExternalResource>() {
-
- @Override
- public void execute(final ExternalResource input) {
- resourceDAO.delete(input.getKey());
- }
-
- });
+ connInstance.getResources().stream().
+ map(Entity::getKey).collect(Collectors.toList()).
+ forEach(resource -> resourceDAO.delete(resource));
connInstanceHistoryConfDAO.deleteByEntity(connInstance);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
index 43b36d5..5822a6e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
@@ -18,16 +18,13 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
@@ -45,14 +42,9 @@ import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
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.Policy;
-import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
-import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMappingItem;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMapping;
@@ -174,21 +166,15 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
@Override
public ExternalResource authFind(final String key) {
- final ExternalResource resource = find(key);
+ ExternalResource resource = find(key);
if (resource == null) {
return null;
}
- final Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.RESOURCE_READ);
+ Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.RESOURCE_READ);
if (authRealms == null || authRealms.isEmpty()
- || !IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return resource.getConnector() != null
- && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm);
- }
- })) {
+ || !authRealms.stream().anyMatch(realm -> resource.getConnector() != null
+ && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm))) {
throw new DelegatedAdministrationException(
resource.getConnector().getAdminRealm().getFullPath(),
@@ -243,20 +229,10 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
TypedQuery<ExternalResource> query = entityManager().createQuery(
"SELECT e FROM " + JPAExternalResource.class.getSimpleName() + " e", ExternalResource.class);
- return CollectionUtils.select(query.getResultList(), new Predicate<ExternalResource>() {
-
- @Override
- public boolean evaluate(final ExternalResource resource) {
- return IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return resource.getConnector() != null
- && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm);
- }
- });
- }
- }, new ArrayList<ExternalResource>());
+ return query.getResultList().stream().filter(resource -> authRealms.stream().
+ anyMatch(realm -> resource.getConnector() != null
+ && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm))).
+ collect(Collectors.toList());
}
@Override
@@ -280,18 +256,15 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
query.setParameter("intAttrName", intAttrName);
Set<String> itemKeys = new HashSet<>();
- for (MappingItem item : query.getResultList()) {
- itemKeys.add(item.getKey());
- }
- for (String itemKey : itemKeys) {
- MappingItem item = entityManager().find(JPAMappingItem.class, itemKey);
- if (item != null) {
- item.getMapping().getItems().remove(item);
- item.setMapping(null);
-
- entityManager().remove(item);
- }
- }
+ query.getResultList().forEach(item -> itemKeys.add(item.getKey()));
+ itemKeys.stream().map(itemKey -> entityManager().find(JPAMappingItem.class, itemKey)).
+ filter(item -> item != null).map(item -> {
+ item.getMapping().getItems().remove(item);
+ return item;
+ }).map(item -> {
+ item.setMapping(null);
+ return item;
+ }).forEachOrdered(item -> entityManager().remove(item));
// Make empty query cache for *MappingItem and related *Mapping
entityManager().getEntityManagerFactory().getCache().evict(JPAMappingItem.class);
@@ -309,34 +282,27 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
taskDAO().deleteAll(resource, TaskType.PULL);
taskDAO().deleteAll(resource, TaskType.PUSH);
- for (Realm realm : realmDAO().findByResource(resource)) {
- realm.getResources().remove(resource);
- }
- for (AnyObject anyObject : anyObjectDAO().findByResource(resource)) {
- anyObject.getResources().remove(resource);
- }
- for (User user : userDAO().findByResource(resource)) {
- user.getResources().remove(resource);
- }
- for (Group group : groupDAO().findByResource(resource)) {
- group.getResources().remove(resource);
- }
- for (AccountPolicy policy : policyDAO().findByResource(resource)) {
- policy.getResources().remove(resource);
- }
-
- for (Provision provision : resource.getProvisions()) {
- for (MappingItem item : provision.getMapping().getItems()) {
- item.setMapping(null);
- }
+ realmDAO().findByResource(resource).
+ forEach(realm -> realm.getResources().remove(resource));
+ anyObjectDAO().findByResource(resource).
+ forEach(anyObject -> anyObject.getResources().remove(resource));
+ userDAO().findByResource(resource).
+ forEach(user -> user.getResources().remove(resource));
+ groupDAO().findByResource(resource).
+ forEach(group -> group.getResources().remove(resource));
+ policyDAO().findByResource(resource).
+ forEach(policy -> policy.getResources().remove(resource));
+
+ resource.getProvisions().stream().map(provision -> {
+ provision.getMapping().getItems().forEach(item -> item.setMapping(null));
+ return provision;
+ }).map(provision -> {
provision.getMapping().getItems().clear();
provision.setMapping(null);
provision.setResource(null);
-
- for (VirSchema schema : virSchemaDAO().findByProvision(provision)) {
- virSchemaDAO().delete(schema.getKey());
- }
- }
+ return provision;
+ }).forEachOrdered(provision -> virSchemaDAO().findByProvision(provision).
+ forEach(schema -> virSchemaDAO().delete(schema.getKey())));
externalResourceHistoryConfDAO().deleteByEntity(resource);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
index dca8d69..170915c 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
@@ -26,13 +26,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.SetUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
@@ -52,15 +49,14 @@ import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.anyobject.ADynGroupMembership;
import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
-import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.TypeExtension;
import org.apache.syncope.core.persistence.api.entity.user.UDynGroupMembership;
import org.apache.syncope.core.persistence.api.entity.user.UMembership;
-import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyUtilsFactory;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAADynGroupMembership;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAMembership;
@@ -69,7 +65,6 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUDynGroupMembershi
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUMembership;
import org.apache.syncope.core.provisioning.api.event.AnyCreatedUpdatedEvent;
import org.apache.syncope.core.provisioning.api.event.AnyDeletedEvent;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -177,20 +172,18 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Override
protected void securityChecks(final Group group) {
- Set<String> authRealms = SetUtils.emptyIfNull(
- AuthContextUtils.getAuthorizations().get(StandardEntitlement.GROUP_READ));
- boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return group.getRealm().getFullPath().startsWith(realm)
- || realm.equals(RealmUtils.getGroupOwnerRealm(group.getRealm().getFullPath(), group.getKey()));
- }
- });
+ Map<String, Set<String>> authorizations = AuthContextUtils.getAuthorizations();
+ Set<String> authRealms = authorizations.containsKey(StandardEntitlement.GROUP_READ)
+ ? authorizations.get(StandardEntitlement.GROUP_READ)
+ : Collections.emptySet();
+
+ boolean authorized = authRealms.stream().anyMatch(realm -> group.getRealm().getFullPath().startsWith(realm)
+ || realm.equals(RealmUtils.getGroupOwnerRealm(group.getRealm().getFullPath(), group.getKey())));
if (!authorized) {
- authorized = !CollectionUtils.intersection(findDynRealms(group.getKey()), authRealms).isEmpty();
+ authorized = findDynRealms(group.getKey()).stream().
+ filter(dynRealm -> authRealms.contains(dynRealm)).
+ count() > 0;
}
-
if (authRealms.isEmpty() || !authorized) {
throw new DelegatedAdministrationException(
group.getRealm().getFullPath(), AnyTypeKind.GROUP.name(), group.getKey());
@@ -299,32 +292,32 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
clearUDynMembers(merged);
- for (User user : matching) {
+ matching.forEach(user -> {
Query insert = entityManager().createNativeQuery("INSERT INTO " + UDYNMEMB_TABLE + " VALUES(?, ?)");
insert.setParameter(1, user.getKey());
insert.setParameter(2, merged.getKey());
insert.executeUpdate();
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, user, AuthContextUtils.getDomain()));
- }
+ });
}
- for (ADynGroupMembership memb : merged.getADynMemberships()) {
- List<AnyObject> matching = searchDAO().search(
- buildDynMembershipCond(memb.getFIQLCond(), merged.getRealm()),
- AnyTypeKind.ANY_OBJECT);
-
+ merged.getADynMemberships().stream().map(memb -> searchDAO().search(
+ buildDynMembershipCond(memb.getFIQLCond(), merged.getRealm()),
+ AnyTypeKind.ANY_OBJECT)).forEachOrdered(matching -> {
clearADynMembers(merged);
- for (AnyObject anyObject : matching) {
- Query insert = entityManager().createNativeQuery("INSERT INTO " + ADYNMEMB_TABLE + " VALUES(?, ?, ?)");
+ matching.forEach(anyObject -> {
+ Query insert = entityManager().createNativeQuery("INSERT INTO " + ADYNMEMB_TABLE
+ + " VALUES(?, ?, ?)");
insert.setParameter(1, anyObject.getType().getKey());
insert.setParameter(2, anyObject.getKey());
insert.setParameter(3, merged.getKey());
insert.executeUpdate();
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, anyObject, AuthContextUtils.getDomain()));
- }
- }
+ publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, anyObject, AuthContextUtils.getDomain()));
+ });
+ });
dynRealmDAO().refreshDynMemberships(merged);
@@ -335,34 +328,35 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
public void delete(final Group group) {
dynRealmDAO().removeDynMemberships(group.getKey());
- for (AMembership membership : findAMemberships(group)) {
+ findAMemberships(group).forEach(membership -> {
AnyObject leftEnd = membership.getLeftEnd();
leftEnd.getMemberships().remove(membership);
membership.setRightEnd(null);
- for (APlainAttr attr : leftEnd.getPlainAttrs(membership)) {
+ leftEnd.getPlainAttrs(membership).stream().map(attr -> {
leftEnd.remove(attr);
attr.setOwner(null);
attr.setMembership(null);
- plainAttrDAO.delete(attr);
- }
+ return attr;
+ }).forEachOrdered(attr -> plainAttrDAO.delete(attr));
anyObjectDAO().save(leftEnd);
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, leftEnd, AuthContextUtils.getDomain()));
- }
- for (UMembership membership : findUMemberships(group)) {
+ });
+
+ findUMemberships(group).forEach(membership -> {
User leftEnd = membership.getLeftEnd();
leftEnd.getMemberships().remove(membership);
membership.setRightEnd(null);
- for (UPlainAttr attr : leftEnd.getPlainAttrs(membership)) {
+ leftEnd.getPlainAttrs(membership).stream().map(attr -> {
leftEnd.remove(attr);
attr.setOwner(null);
attr.setMembership(null);
- plainAttrDAO.delete(attr);
- }
+ return attr;
+ }).forEachOrdered(attr -> plainAttrDAO.delete(attr));
userDAO().save(leftEnd);
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, leftEnd, AuthContextUtils.getDomain()));
- }
+ });
clearUDynMembers(group);
clearADynMembers(group);
@@ -383,22 +377,22 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
}
@Override
+ @SuppressWarnings("unchecked")
public List<String> findADynMembers(final Group group) {
List<String> result = new ArrayList<>();
- for (ADynGroupMembership memb : group.getADynMemberships()) {
+ group.getADynMemberships().stream().map(memb -> {
Query query = entityManager().createNativeQuery(
"SELECT any_id FROM " + ADYNMEMB_TABLE + " WHERE group_id=? AND anyType_id=?");
query.setParameter(1, group.getKey());
query.setParameter(2, memb.getAnyType().getKey());
+ return query;
+ }).forEachOrdered((query) -> {
+ query.getResultList().stream().map(key -> key instanceof Object[]
+ ? (String) ((Object[]) key)[0]
+ : ((String) key)).
+ forEachOrdered(actualKey -> result.add(actualKey.toString()));
+ });
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- result.add(actualKey);
- }
- }
return result;
}
@@ -420,13 +414,12 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional
@Override
public void refreshDynMemberships(final AnyObject anyObject) {
- for (ADynGroupMembership memb : findWithADynMemberships(anyObject.getType())) {
+ findWithADynMemberships(anyObject.getType()).stream().map(memb -> {
Query delete = entityManager().createNativeQuery(
"DELETE FROM " + ADYNMEMB_TABLE + " WHERE group_id=? AND any_id=?");
delete.setParameter(1, memb.getGroup().getKey());
delete.setParameter(2, anyObject.getKey());
delete.executeUpdate();
-
if (jpaAnySearchDAO().matches(
anyObject,
buildDynMembershipCond(memb.getFIQLCond(), memb.getGroup().getRealm()))) {
@@ -438,9 +431,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
insert.setParameter(3, memb.getGroup().getKey());
insert.executeUpdate();
}
-
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain()));
- }
+ return memb;
+ }).forEachOrdered(memb -> publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain())));
}
@Override
@@ -451,12 +444,13 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
delete.setParameter(1, anyObject.getKey());
delete.executeUpdate();
- for (Group group : dynGroups) {
+ dynGroups.forEach(group -> {
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, group, AuthContextUtils.getDomain()));
- }
+ });
}
@Override
+ @SuppressWarnings("unchecked")
public List<String> findUDynMembers(final Group group) {
if (group.getUDynMembership() == null) {
return Collections.emptyList();
@@ -467,13 +461,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
query.setParameter(1, group.getKey());
List<String> result = new ArrayList<>();
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- result.add(actualKey);
- }
+ query.getResultList().stream().map(key -> key instanceof Object[]
+ ? (String) ((Object[]) key)[0]
+ : ((String) key)).forEachOrdered(actualKey -> result.add(actualKey.toString()));
return result;
}
@@ -495,13 +485,12 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional
@Override
public void refreshDynMemberships(final User user) {
- for (UDynGroupMembership memb : findWithUDynMemberships()) {
+ findWithUDynMemberships().stream().map(memb -> {
Query delete = entityManager().createNativeQuery(
"DELETE FROM " + UDYNMEMB_TABLE + " WHERE group_id=? AND any_id=?");
delete.setParameter(1, memb.getGroup().getKey());
delete.setParameter(2, user.getKey());
delete.executeUpdate();
-
if (jpaAnySearchDAO().matches(
user,
buildDynMembershipCond(memb.getFIQLCond(), memb.getGroup().getRealm()))) {
@@ -512,9 +501,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
insert.setParameter(2, memb.getGroup().getKey());
insert.executeUpdate();
}
-
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain()));
- }
+ return memb;
+ }).forEachOrdered(memb -> publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain())));
}
@Override
@@ -525,14 +514,14 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
delete.setParameter(1, user.getKey());
delete.executeUpdate();
- for (Group group : dynGroups) {
+ dynGroups.forEach(group -> {
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, group, AuthContextUtils.getDomain()));
- }
+ });
}
@Transactional(readOnly = true)
@Override
public Collection<String> findAllResourceKeys(final String key) {
- return CollectionUtils.collect(find(key).getResources(), EntityUtils.keyTransformer());
+ return find(key).getResources().stream().map(Entity::getKey).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
index f9cf72e..ca5f0c4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
@@ -21,15 +21,13 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.Collections;
import java.util.List;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.NotificationDAO;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.MailTemplate;
import org.apache.syncope.core.persistence.api.entity.Notification;
-import org.apache.syncope.core.persistence.api.entity.task.Task;
import org.apache.syncope.core.persistence.jpa.entity.JPANotification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -77,15 +75,9 @@ public class JPANotificationDAO extends AbstractDAO<Notification> implements Not
return;
}
- IterableUtils.forEach(taskDAO.findAll(
- TaskType.NOTIFICATION, null, notification, null, null, -1, -1, Collections.<OrderByClause>emptyList()),
- new Closure<Task>() {
-
- @Override
- public void execute(final Task input) {
- delete(input.getKey());
- }
- });
+ taskDAO.findAll(
+ TaskType.NOTIFICATION, null, notification, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ stream().map(Entity::getKey).forEach(task -> delete(task));
entityManager().remove(notification);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
index 0f4cb62..a03451f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
@@ -21,10 +21,9 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.persistence.api.dao.MalformedPathException;
@@ -33,7 +32,6 @@ import org.apache.syncope.core.persistence.api.dao.RoleDAO;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.Policy;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -87,14 +85,11 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
Realm current = root;
for (final String pathElement : fullPath.substring(1).split("/")) {
- current = IterableUtils.find(findChildren(current), new Predicate<Realm>() {
-
- @Override
- public boolean evaluate(final Realm realm) {
- return pathElement.equals(realm.getName());
- }
- });
- if (current == null) {
+ Optional<Realm> first = findChildren(current).stream().
+ filter(realm -> pathElement.equals(realm.getName())).findFirst();
+ if (first.isPresent()) {
+ current = first.get();
+ } else {
return null;
}
}
@@ -148,10 +143,11 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
query.setParameter("policy", policy);
List<Realm> result = new ArrayList<>();
- for (Realm realm : query.getResultList()) {
+ query.getResultList().stream().map(realm -> {
result.add(realm);
- result.addAll(findSamePolicyChildren(realm, policy));
- }
+ return realm;
+ }).forEachOrdered(realm -> result.addAll(findSamePolicyChildren(realm, policy)));
+
return result;
}
@@ -209,15 +205,13 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
@Override
public void delete(final Realm realm) {
- for (Realm toBeDeleted : findDescendants(realm)) {
- for (Role role : roleDAO.findByRealm(toBeDeleted)) {
- role.getRealms().remove(toBeDeleted);
- }
-
+ findDescendants(realm).stream().map(toBeDeleted -> {
+ roleDAO.findByRealm(toBeDeleted).forEach(role -> role.getRealms().remove(toBeDeleted));
+ return toBeDeleted;
+ }).map(toBeDeleted -> {
toBeDeleted.setParent(null);
-
- entityManager().remove(toBeDeleted);
- }
+ return toBeDeleted;
+ }).forEachOrdered(toBeDeleted -> entityManager().remove(toBeDeleted));
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
index 4af6c98..fd1f731 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.core.persistence.api.dao.RelationshipTypeDAO;
import org.apache.syncope.core.persistence.api.entity.Relationship;
import org.apache.syncope.core.persistence.api.entity.RelationshipType;
@@ -64,7 +64,11 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
URelationship.class);
uquery.setParameter("type", type);
- return CollectionUtils.union(aquery.getResultList(), uquery.getResultList());
+ List<Relationship<?, ?>> result = new ArrayList<>();
+ result.addAll(aquery.getResultList());
+ result.addAll(uquery.getResultList());
+
+ return result;
}
@Override
@@ -74,7 +78,7 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
return;
}
- for (Relationship<?, ?> relationship : findRelationshipsByType(type)) {
+ findRelationshipsByType(type).stream().map(relationship -> {
if (relationship instanceof URelationship) {
((URelationship) relationship).getLeftEnd().getRelationships().remove((URelationship) relationship);
} else if (relationship instanceof UMembership) {
@@ -84,10 +88,9 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
} else if (relationship instanceof AMembership) {
((AMembership) relationship).getLeftEnd().getMemberships().remove((AMembership) relationship);
}
-
relationship.setLeftEnd(null);
- entityManager().remove(relationship);
- }
+ return relationship;
+ }).forEachOrdered(relationship -> entityManager().remove(relationship));
entityManager().remove(type);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
index dfb7536..55ca241 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
@@ -21,13 +21,12 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.Collections;
import java.util.List;
import javax.persistence.Query;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Notification;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.task.Task;
@@ -164,12 +163,12 @@ public class JPATaskDAO extends AbstractDAO<Task> implements TaskDAO {
StringBuilder statement = new StringBuilder();
- for (OrderByClause clause : orderByClauses) {
+ orderByClauses.forEach(clause -> {
String field = clause.getField().trim();
if (ReflectionUtils.findField(beanClass, field) != null) {
statement.append("t.").append(field).append(' ').append(clause.getDirection().name());
}
- }
+ });
if (statement.length() == 0) {
statement.append("ORDER BY t.id DESC");
@@ -264,14 +263,7 @@ public class JPATaskDAO extends AbstractDAO<Task> implements TaskDAO {
@Override
public void deleteAll(final ExternalResource resource, final TaskType type) {
- IterableUtils.forEach(
- findAll(type, resource, null, null, null, -1, -1, Collections.<OrderByClause>emptyList()),
- new Closure<Task>() {
-
- @Override
- public void execute(final Task input) {
- delete(input.getKey());
- }
- });
+ findAll(type, resource, null, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ stream().map(Entity::getKey).forEach(task -> delete(task));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
index e1bfaf1..02281fa 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
@@ -28,20 +28,14 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.SetUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.policy.AccountRuleConf;
-import org.apache.syncope.common.lib.policy.PasswordRuleConf;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -61,6 +55,7 @@ import org.apache.syncope.core.persistence.api.dao.RoleDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.group.Group;
@@ -68,13 +63,11 @@ import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyUtilsFactory;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
import org.apache.syncope.core.provisioning.api.event.AnyCreatedUpdatedEvent;
import org.apache.syncope.core.provisioning.api.event.AnyDeletedEvent;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.stereotype.Repository;
@@ -185,17 +178,16 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
if (!AuthContextUtils.getUsername().equals(anonymousUser)
&& !AuthContextUtils.getUsername().equals(user.getUsername())) {
- Set<String> authRealms = SetUtils.emptyIfNull(
- AuthContextUtils.getAuthorizations().get(StandardEntitlement.USER_READ));
- boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return user.getRealm().getFullPath().startsWith(realm);
- }
- });
+ Map<String, Set<String>> authorizations = AuthContextUtils.getAuthorizations();
+ Set<String> authRealms = authorizations.containsKey(StandardEntitlement.USER_READ)
+ ? authorizations.get(StandardEntitlement.USER_READ)
+ : Collections.emptySet();
+ boolean authorized = authRealms.stream().
+ anyMatch(realm -> user.getRealm().getFullPath().startsWith(realm));
if (!authorized) {
- authorized = !CollectionUtils.intersection(findDynRealms(user.getKey()), authRealms).isEmpty();
+ authorized = findDynRealms(user.getKey()).stream().
+ filter(dynRealm -> authRealms.contains(dynRealm)).
+ count() > 0;
}
if (authRealms.isEmpty() || !authorized) {
throw new DelegatedAdministrationException(
@@ -282,21 +274,17 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
private List<AccountPolicy> getAccountPolicies(final User user) {
List<AccountPolicy> policies = new ArrayList<>();
- // add resource policies
- for (ExternalResource resource : findAllResources(user)) {
- AccountPolicy policy = resource.getAccountPolicy();
- if (policy != null) {
- policies.add(policy);
- }
- }
+ // add resource policies
+ findAllResources(user).stream().
+ map(resource -> resource.getAccountPolicy()).
+ filter(policy -> policy != null).
+ forEachOrdered(policy -> policies.add(policy));
// add realm policies
- for (Realm realm : realmDAO().findAncestors(user.getRealm())) {
- AccountPolicy policy = realm.getAccountPolicy();
- if (policy != null) {
- policies.add(policy);
- }
- }
+ realmDAO().findAncestors(user.getRealm()).stream().
+ map(realm -> realm.getAccountPolicy()).
+ filter(policy -> policy != null).
+ forEachOrdered(policy -> policies.add(policy));
return policies;
}
@@ -316,7 +304,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
throw new PasswordPolicyException("Password mandatory");
}
- for (PasswordRuleConf ruleConf : policy.getRuleConfs()) {
+ policy.getRuleConfs().forEach(ruleConf -> {
Class<? extends PasswordRule> ruleClass =
implementationLookup.getPasswordRuleClass(ruleConf.getClass());
if (ruleClass == null) {
@@ -337,7 +325,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
// enforce rule
rule.enforce(ruleConf, user);
}
- }
+ });
if (user.verifyPasswordHistory(user.getClearPassword(), policy.getHistoryLength())) {
throw new PasswordPolicyException("Password value was used in the past: not allowed");
@@ -384,7 +372,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
}
for (AccountPolicy policy : getAccountPolicies(user)) {
- for (AccountRuleConf ruleConf : policy.getRuleConfs()) {
+ policy.getRuleConfs().forEach(ruleConf -> {
Class<? extends AccountRule> ruleClass =
implementationLookup.getAccountRuleClass(ruleConf.getClass());
if (ruleClass == null) {
@@ -405,7 +393,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
// enforce rule
rule.enforce(ruleConf, user);
}
- }
+ });
suspend |= user.getFailedLogins() != null && policy.getMaxAuthenticationAttempts() > 0
&& user.getFailedLogins() > policy.getMaxAuthenticationAttempts() && !user.isSuspended();
@@ -467,85 +455,82 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<Role> findAllRoles(final User user) {
- return CollectionUtils.union(user.getRoles(), findDynRoles(user.getKey()));
+ Set<Role> result = new HashSet<>();
+ result.addAll(user.getRoles());
+ result.addAll(findDynRoles(user.getKey()));
+
+ return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<Role> findDynRoles(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT role_id FROM " + JPARoleDAO.DYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<Role> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- Role role = roleDAO.find(actualKey);
- if (role == null) {
- LOG.error("Could not find role with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(role)) {
- result.add(role);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Role role = roleDAO.find(actualKey.toString());
+ if (role == null) {
+ LOG.error("Could not find role with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(role)) {
+ result.add(role);
+ }
+ });
return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<Group> findDynGroups(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT group_id FROM " + JPAGroupDAO.UDYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<Group> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- Group group = groupDAO().find(actualKey);
- if (group == null) {
- LOG.error("Could not find group with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(group)) {
- result.add(group);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Group group = groupDAO().find(actualKey.toString());
+ if (group == null) {
+ LOG.error("Could not find group with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(group)) {
+ result.add(group);
+ }
+ });
return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<Group> findAllGroups(final User user) {
- return CollectionUtils.union(
- CollectionUtils.collect(user.getMemberships(), new Transformer<UMembership, Group>() {
+ Set<Group> result = new HashSet<>();
+ result.addAll(user.getMemberships().stream().
+ map(membership -> membership.getRightEnd()).collect(Collectors.toSet()));
+ result.addAll(findDynGroups(user.getKey()));
- @Override
- public Group transform(final UMembership input) {
- return input.getRightEnd();
- }
- }, new ArrayList<Group>()),
- findDynGroups(user.getKey()));
+ return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<String> findAllGroupKeys(final User user) {
- return CollectionUtils.collect(findAllGroups(user), EntityUtils.<Group>keyTransformer());
+ return findAllGroups(user).stream().map(Entity::getKey).collect(Collectors.toList());
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<String> findAllGroupNames(final User user) {
- return CollectionUtils.collect(findAllGroups(user), new Transformer<Group, String>() {
-
- @Override
- public String transform(final Group input) {
- return input.getName();
- }
- });
+ return findAllGroups(user).stream().map(Group::getName).collect(Collectors.toList());
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@@ -553,9 +538,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
public Collection<ExternalResource> findAllResources(final User user) {
Set<ExternalResource> result = new HashSet<>();
result.addAll(user.getResources());
- for (Group group : findAllGroups(user)) {
- result.addAll(group.getResources());
- }
+ findAllGroups(user).forEach(group -> result.addAll(group.getResources()));
return result;
}
@@ -563,7 +546,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
@Transactional(readOnly = true)
@Override
public Collection<String> findAllResourceKeys(final String key) {
- return CollectionUtils.collect(findAllResources(authFind(key)), EntityUtils.keyTransformer());
+ return findAllResources(authFind(key)).stream().map(resource -> resource.getKey()).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
index a2a41fa..4fe46e6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
@@ -18,12 +18,10 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.GroupablePlainAttr;
import org.apache.syncope.core.persistence.api.entity.Membership;
@@ -49,110 +47,68 @@ public abstract class AbstractGroupableRelatable<
}
@Override
- public P getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() == null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends P> getPlainAttr(final String plainSchema) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null && plainAttr.getMembership() == null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
- public P getPlainAttr(final String plainSchemaName, final Membership<?> membership) {
- return IterableUtils.find(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() != null && plainAttr.getMembership().equals(membership)
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends P> getPlainAttr(final String plainSchema, final Membership<?> membership) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainAttr.getMembership() != null && plainAttr.getMembership().equals(membership)
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
public List<? extends P> getPlainAttrs() {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() == null;
- }
- }, new ArrayList<P>());
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null && plainAttr.getMembership() == null).
+ collect(Collectors.toList());
}
@Override
- public Collection<? extends P> getPlainAttrs(final String plainSchemaName) {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Collection<? extends P> getPlainAttrs(final String plainSchema) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).
+ collect(Collectors.toList());
}
@Override
public Collection<? extends P> getPlainAttrs(final Membership<?> membership) {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && membership.equals(plainAttr.getMembership());
- }
- });
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && membership.equals(plainAttr.getMembership())).
+ collect(Collectors.toList());
}
@Override
- public M getMembership(final String groupKey) {
- return IterableUtils.find(getMemberships(), new Predicate<M>() {
-
- @Override
- public boolean evaluate(final M membership) {
- return groupKey != null && groupKey.equals(membership.getRightEnd().getKey());
- }
- });
+ public Optional<? extends M> getMembership(final String groupKey) {
+ return getMemberships().stream().filter(membership
+ -> groupKey != null && groupKey.equals(membership.getRightEnd().getKey())).findFirst();
}
@Override
- public REL getRelationship(final RelationshipType relationshipType, final String otherEndKey) {
- return IterableUtils.find(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())
- && ((relationshipType == null && relationship.getType() == null)
- || (relationshipType != null && relationshipType.equals(relationship.getType())));
- }
- });
+ public Optional<? extends REL> getRelationship(final RelationshipType relationshipType, final String otherEndKey) {
+ return getRelationships().stream().filter(relationship
+ -> otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())
+ && ((relationshipType == null && relationship.getType() == null)
+ || (relationshipType != null && relationshipType.equals(relationship.getType())))).findFirst();
}
@Override
public Collection<? extends REL> getRelationships(final RelationshipType relationshipType) {
- return CollectionUtils.select(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return relationshipType != null && relationshipType.equals(relationship.getType());
- }
- });
+ return getRelationships().stream().filter(relationship
+ -> relationshipType != null && relationshipType.equals(relationship.getType())).
+ collect(Collectors.toList());
}
@Override
public Collection<? extends REL> getRelationships(final String otherEndKey) {
- return CollectionUtils.select(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey());
- }
- });
+ return getRelationships().stream().filter(relationship
+ -> otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())).
+ collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
index cf210e8..0070fde 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
@@ -18,17 +18,15 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
@@ -104,13 +102,7 @@ public abstract class AbstractPlainAttr<O extends Any<?>> extends AbstractGenera
public List<String> getValuesAsStrings() {
List<String> result;
if (getUniqueValue() == null) {
- result = CollectionUtils.collect(getValues(), new Transformer<PlainAttrValue, String>() {
-
- @Override
- public String transform(final PlainAttrValue input) {
- return input.getValueAsString();
- }
- }, new ArrayList<String>());
+ result = getValues().stream().map(value -> value.getValueAsString()).collect(Collectors.toList());
} else {
result = Collections.singletonList(getUniqueValue().getValueAsString());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
index fb5b88e..8feb82d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -37,7 +38,6 @@ import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -185,7 +185,7 @@ public class JPAConnInstance extends AbstractGeneratedKeyEntity implements ConnI
public Set<ConnConfProperty> getConf() {
Set<ConnConfProperty> configuration = new HashSet<>();
if (!StringUtils.isBlank(jsonConf)) {
- CollectionUtils.addAll(configuration, POJOHelper.deserialize(jsonConf, ConnConfProperty[].class));
+ configuration.addAll(Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
}
return configuration;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
index 0c2d9f8..bd9a148 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -36,8 +37,6 @@ import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.syncope.core.persistence.api.entity.AnyAbout;
import org.apache.syncope.core.persistence.api.entity.AnyType;
@@ -153,14 +152,8 @@ public class JPANotification extends AbstractGeneratedKeyEntity implements Notif
}
@Override
- public AnyAbout getAbout(final AnyType anyType) {
- return IterableUtils.find(abouts, new Predicate<AnyAbout>() {
-
- @Override
- public boolean evaluate(final AnyAbout about) {
- return anyType != null && anyType.equals(about.getAnyType());
- }
- });
+ public Optional<? extends AnyAbout> getAbout(final AnyType anyType) {
+ return abouts.stream().filter(about -> anyType != null && anyType.equals(about.getAnyType())).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
index 5bcb6fe..e919910 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
@@ -21,7 +21,9 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -37,12 +39,8 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.Size;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
import org.apache.syncope.core.persistence.api.entity.AnyTemplateRealm;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
@@ -53,7 +51,6 @@ import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccountPolicy;
import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPasswordPolicy;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
import org.apache.syncope.core.persistence.jpa.validation.entity.RealmCheck;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
@Entity
@Table(name = JPARealm.TABLE, uniqueConstraints =
@@ -157,14 +154,10 @@ public class JPARealm extends AbstractGeneratedKeyEntity implements Realm {
}
@Override
- public AnyTemplateRealm getTemplate(final AnyType anyType) {
- return IterableUtils.find(templates, new Predicate<AnyTemplate>() {
-
- @Override
- public boolean evaluate(final AnyTemplate template) {
- return anyType != null && anyType.equals(template.getAnyType());
- }
- });
+ public Optional<? extends AnyTemplateRealm> getTemplate(final AnyType anyType) {
+ return templates.stream().
+ filter(template -> anyType != null && anyType.equals(template.getAnyType())).
+ findFirst();
}
@Override
@@ -180,8 +173,7 @@ public class JPARealm extends AbstractGeneratedKeyEntity implements Realm {
@Override
public List<String> getResourceKeys() {
- return CollectionUtils.collect(
- getResources(), EntityUtils.<ExternalResource>keyTransformer(), new ArrayList<String>());
+ return getResources().stream().map(resource -> resource.getKey()).collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
index 73606cc..a048ef4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -32,8 +33,6 @@ import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.report.ReportletConf;
import org.apache.syncope.core.persistence.api.entity.Report;
import org.apache.syncope.core.persistence.api.entity.ReportExec;
@@ -111,13 +110,7 @@ public class JPAReport extends AbstractGeneratedKeyEntity implements Report {
@Override
public List<ReportletConf> getReportletConfs() {
- return CollectionUtils.collect(reportletConfs, new Transformer<JPAReportletConfInstance, ReportletConf>() {
-
- @Override
- public ReportletConf transform(final JPAReportletConfInstance input) {
- return input.getInstance();
- }
- }, new ArrayList<ReportletConf>());
+ return reportletConfs.stream().map(input -> input.getInstance()).collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
index d592394..b84330b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
@@ -22,14 +22,13 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.Valid;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.Realm;
@@ -64,15 +63,10 @@ public class JPAConf extends AbstractProvidedKeyEntity implements Conf {
}
@Override
- public CPlainAttr getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(plainAttrs, new Predicate<CPlainAttr>() {
-
- @Override
- public boolean evaluate(final CPlainAttr plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends CPlainAttr> getPlainAttr(final String plainSchema) {
+ return plainAttrs.stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
index fc4fc13..2bddf1c 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.group;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -34,8 +35,6 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
@@ -169,15 +168,10 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public GPlainAttr getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(getPlainAttrs(), new Predicate<GPlainAttr>() {
-
- @Override
- public boolean evaluate(final GPlainAttr plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends GPlainAttr> getPlainAttr(final String plainSchema) {
+ return getPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
@@ -214,14 +208,9 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public ADynGroupMembership getADynMembership(final AnyType anyType) {
- return IterableUtils.find(aDynMemberships, new Predicate<ADynGroupMembership>() {
-
- @Override
- public boolean evaluate(final ADynGroupMembership dynGroupMembership) {
- return anyType != null && anyType.equals(dynGroupMembership.getAnyType());
- }
- });
+ public Optional<? extends ADynGroupMembership> getADynMembership(final AnyType anyType) {
+ return aDynMemberships.stream().filter(dynGroupMembership
+ -> anyType != null && anyType.equals(dynGroupMembership.getAnyType())).findFirst();
}
@Override
@@ -236,14 +225,9 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public TypeExtension getTypeExtension(final AnyType anyType) {
- return IterableUtils.find(typeExtensions, new Predicate<TypeExtension>() {
-
- @Override
- public boolean evaluate(final TypeExtension typeExtension) {
- return typeExtension.getAnyType().equals(anyType);
- }
- });
+ public Optional<? extends TypeExtension> getTypeExtension(final AnyType anyType) {
+ return typeExtensions.stream().filter(typeExtension
+ -> typeExtension.getAnyType().equals(anyType)).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
index ef0aeb7..200716d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -33,10 +34,7 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.policy.AccountRuleConf;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
@@ -109,13 +107,7 @@ public class JPAAccountPolicy extends AbstractPolicy implements AccountPolicy {
@Override
public List<AccountRuleConf> getRuleConfs() {
- return CollectionUtils.collect(ruleConfs, new Transformer<JPAAccountRuleConfInstance, AccountRuleConf>() {
-
- @Override
- public AccountRuleConf transform(final JPAAccountRuleConfInstance input) {
- return input.getInstance();
- }
- }, new ArrayList<AccountRuleConf>());
+ return ruleConfs.stream().map(input -> input.getInstance()).collect(Collectors.toList());
}
@Override
@@ -130,8 +122,7 @@ public class JPAAccountPolicy extends AbstractPolicy implements AccountPolicy {
}
@Override
- public Set<String> getResourceNames() {
- return CollectionUtils.collect(
- getResources(), EntityUtils.<ExternalResource>keyTransformer(), new HashSet<String>());
+ public Set<String> getResourceKeys() {
+ return getResources().stream().map(resource -> resource.getKey()).collect(Collectors.toSet());
}
}