This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/3_0_X by this push:
     new acb6d00be7 Upgrading modernizer-mave-plugin
acb6d00be7 is described below

commit acb6d00be7159093ff3af84e0b8e6d413cf6f3e3
Author: Francesco Chicchiriccò <ilgro...@apache.org>
AuthorDate: Fri Mar 24 08:06:35 2023 +0100

    Upgrading modernizer-mave-plugin
---
 .../core/rest/cxf/service/AbstractAnyService.java  |  7 +-
 .../rest/cxf/service/AnyObjectServiceTest.java     |  4 +-
 .../persistence/jpa/dao/AbstractJPAJSONAnyDAO.java | 16 ++---
 .../jpa/content/XMLContentExporter.java            | 16 ++---
 .../core/persistence/jpa/dao/JPAAnyMatchDAO.java   |  2 +-
 .../core/persistence/jpa/dao/JPAAnyObjectDAO.java  |  8 ++-
 .../core/persistence/jpa/dao/JPAAnySearchDAO.java  | 74 +++++++++++-----------
 .../core/persistence/jpa/dao/JPARealmDAO.java      | 12 ++--
 .../core/persistence/jpa/dao/JPAUserDAO.java       |  6 +-
 .../notification/DefaultNotificationManager.java   |  9 ++-
 .../propagation/DBPasswordPropagationActions.java  |  4 +-
 .../LDAPMembershipPropagationActions.java          | 19 +++---
 .../core/spring/policy/DefaultAccountRule.java     | 15 +++--
 .../core/spring/policy/DefaultPasswordRule.java    | 21 +++---
 .../syncope/fit/buildtools/cxf/UserService.java    |  6 +-
 pom.xml                                            | 13 ++--
 sra/pom.xml                                        |  5 --
 17 files changed, 111 insertions(+), 126 deletions(-)

diff --git 
a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
 
b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
index 67a3aa93a3..6ff423e38e 100644
--- 
a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
+++ 
b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
@@ -111,11 +111,8 @@ public abstract class AbstractAnyService<TO extends AnyTO, 
CR extends AnyCR, UR
                 result = any.getPlainAttr(schema);
         }
 
-        if (result.isEmpty()) {
-            throw new NotFoundException("Attribute for type " + schemaType + " 
and schema " + schema);
-        }
-
-        return result.get();
+        return result.
+                orElseThrow(() -> new NotFoundException("Attribute for type " 
+ schemaType + " and schema " + schema));
     }
 
     @Override
diff --git 
a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
 
b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
index 4afe059c48..2263c3c83f 100644
--- 
a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
+++ 
b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
@@ -228,7 +228,9 @@ public class AnyObjectServiceTest {
         assertEquals("printer1", list.getResult().get(0).getName());
         assertEquals("PRINTER", list.getResult().get(0).getType());
 
-        assertEquals("there", 
list.getResult().get(1).getPlainAttr("location").get().getValues().get(0));
+        Attr location = 
list.getResult().get(1).getPlainAttr("location").orElse(null);
+        assertNotNull(location);
+        assertEquals("there", location.getValues().get(0));
     }
 
     @Test
diff --git 
a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
 
b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
index 1101148d7c..fef2e418e5 100644
--- 
a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
+++ 
b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
@@ -341,14 +341,14 @@ abstract class AbstractJPAJSONAnyDAO extends 
AbstractDAO<AbstractEntity> impleme
         for (PlainAttr<?> attr : any.getPlainAttrs()) {
             if (attr.getUniqueValue() != null && attr instanceof 
JSONPlainAttr) {
                 PlainSchema schema = attr.getSchema();
-                Optional<A> other = findByPlainAttrUniqueValue(table, 
anyUtils, schema, attr.getUniqueValue(), false);
-                if (other.isEmpty() || 
other.get().getKey().equals(any.getKey())) {
-                    LOG.debug("No duplicate value found for {}", 
attr.getUniqueValue().getValueAsString());
-                } else {
-                    throw new DuplicateException(
-                            "Value " + attr.getUniqueValue().getValueAsString()
-                            + " existing for " + schema.getKey());
-                }
+                findByPlainAttrUniqueValue(table, anyUtils, schema, 
attr.getUniqueValue(), false).
+                        map(other -> 
!other.getKey().equals(any.getKey())).ifPresentOrElse(
+                        other -> {
+                            throw new DuplicateException(
+                                    "Value " + 
attr.getUniqueValue().getValueAsString()
+                                    + " existing for " + schema.getKey());
+                        },
+                        () -> LOG.debug("No duplicate value found for {}", 
attr.getUniqueValue().getValueAsString()));
             }
         }
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index 79ea9fad17..d76e42ca25 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -350,10 +350,10 @@ public class XMLContentExporter implements 
ContentExporter {
                     findFirst().
                     map(Map.Entry::getValue);
 
-            String outputTableName = entity.isPresent()
-                    ? entities.getKey(entity.get())
-                    : 
relationTables.keySet().stream().filter(tableName::equalsIgnoreCase).findFirst().
-                            orElse(tableName);
+            String outputTableName = entity.map(entities::getKey).
+                    orElseGet(() -> relationTables.keySet().stream().
+                    filter(tableName::equalsIgnoreCase).findFirst().
+                    orElse(tableName));
             if (isTask(tableName)) {
                 outputTableName = "Task";
             }
@@ -373,11 +373,9 @@ public class XMLContentExporter implements ContentExporter 
{
                     if (value != null && 
(!COLUMNS_TO_BE_NULLIFIED.containsKey(tableName)
                             || 
!COLUMNS_TO_BE_NULLIFIED.get(tableName).contains(columnName))) {
 
-                        String name = columnName;
-                        if (entity.isPresent()) {
-                            name = columnName(
-                                    () -> (Stream<Attribute<?, ?>>) 
entity.get().getAttributes().stream(), columnName);
-                        }
+                        String name = entity.map(e -> columnName(
+                                () -> (Stream<Attribute<?, ?>>) 
e.getAttributes().stream(), columnName)).
+                                orElse(columnName);
 
                         if (isTask(tableName)) {
                             name = columnName(
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyMatchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyMatchDAO.java
index 4e06850bb8..5f1d25e712 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyMatchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyMatchDAO.java
@@ -370,7 +370,7 @@ public class JPAAnyMatchDAO extends AbstractDAO<Any<?>> 
implements AnyMatchDAO {
                     return false;
                 }
 
-                found = attr.isPresent() && matches(attr.get().getValues(), 
attrValue, schema, cond);
+                found = attr.map(a -> matches(a.getValues(), attrValue, 
schema, cond)).orElse(false);
         }
         return not ? !found : found;
     }
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
index 81e6870ad2..7d276a50aa 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
@@ -26,7 +26,7 @@ import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 import javax.persistence.NoResultException;
@@ -137,8 +137,10 @@ public class JPAAnyObjectDAO extends 
AbstractAnyDAO<AnyObject> implements AnyObj
             final Collection<String> groups) {
 
         // 1. check if AuthContextUtils.getUsername() is owner of at least one 
group of which anyObject is member
-        boolean authorized = 
authRealms.stream().map(RealmUtils::parseGroupOwnerRealm).filter(Optional::isPresent).
-                anyMatch(pair -> groups.contains(pair.get().getRight()));
+        boolean authorized = authRealms.stream().
+                map(authRealm -> 
RealmUtils.parseGroupOwnerRealm(authRealm).orElse(null)).
+                filter(Objects::nonNull).
+                anyMatch(pair -> groups.contains(pair.getRight()));
 
         // 2. check if anyObject is in at least one DynRealm for which 
AuthContextUtils.getUsername() owns entitlement
         if (!authorized) {
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index e3f6b50286..86cf836eb2 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 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.Query;
@@ -127,29 +126,29 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO 
{
         Set<String> groupOwners = new HashSet<>();
 
         if (recursive) {
-            adminRealms.forEach(realmPath -> {
-                Optional<Pair<String, String>> goRealm = 
RealmUtils.parseGroupOwnerRealm(realmPath);
-                if (goRealm.isPresent()) {
-                    groupOwners.add(goRealm.get().getRight());
-                } else if (realmPath.startsWith("/")) {
-                    Realm realm = realmDAO.findByFullPath(realmPath);
-                    if (realm == null) {
-                        SyncopeClientException noRealm = 
SyncopeClientException.build(ClientExceptionType.InvalidRealm);
-                        noRealm.getElements().add("Invalid realm specified: " 
+ realmPath);
-                        throw noRealm;
-                    } else {
-                        
realmKeys.addAll(realmDAO.findDescendants(realm).stream().
-                                
map(Realm::getKey).collect(Collectors.toSet()));
-                    }
-                } else {
-                    DynRealm dynRealm = dynRealmDAO.find(realmPath);
-                    if (dynRealm == null) {
-                        LOG.warn("Ignoring invalid dynamic realm {}", 
realmPath);
-                    } else {
-                        dynRealmKeys.add(dynRealm.getKey());
-                    }
-                }
-            });
+            adminRealms.forEach(realmPath -> 
RealmUtils.parseGroupOwnerRealm(realmPath).ifPresentOrElse(
+                    goRealm -> groupOwners.add(goRealm.getRight()),
+                    () -> {
+                        if (realmPath.startsWith("/")) {
+                            Realm realm = realmDAO.findByFullPath(realmPath);
+                            if (realm == null) {
+                                SyncopeClientException noRealm = 
SyncopeClientException.build(
+                                        ClientExceptionType.InvalidRealm);
+                                noRealm.getElements().add("Invalid realm 
specified: " + realmPath);
+                                throw noRealm;
+                            } else {
+                                
realmKeys.addAll(realmDAO.findDescendants(realm).stream().
+                                        
map(Realm::getKey).collect(Collectors.toSet()));
+                            }
+                        } else {
+                            DynRealm dynRealm = dynRealmDAO.find(realmPath);
+                            if (dynRealm == null) {
+                                LOG.warn("Ignoring invalid dynamic realm {}", 
realmPath);
+                            } else {
+                                dynRealmKeys.add(dynRealm.getKey());
+                            }
+                        }
+                    }));
             if (!dynRealmKeys.isEmpty()) {
                 realmKeys.clear();
             }
@@ -591,19 +590,20 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO 
{
                 cond.getLeaf(ResourceCond.class).
                         ifPresent(leaf -> query.append(getQuery(leaf, not, 
parameters, svs)));
 
-                Optional<AnyCond> anyCond = cond.getLeaf(AnyCond.class);
-                if (anyCond.isPresent()) {
-                    query.append(getQuery(anyCond.get(), not, parameters, 
svs));
-                } else {
-                    cond.getLeaf(AttrCond.class).ifPresent(leaf -> {
-                        query.append(getQuery(leaf, not, parameters, svs));
-                        try {
-                            involvedPlainAttrs.add(check(leaf, 
svs.anyTypeKind).getLeft().getKey());
-                        } catch (IllegalArgumentException e) {
-                            // ignore
-                        }
-                    });
-                }
+                cond.getLeaf(AnyCond.class).ifPresentOrElse(
+                        anyCond -> {
+                            query.append(getQuery(anyCond, not, parameters, 
svs));
+                        },
+                        () -> {
+                            cond.getLeaf(AttrCond.class).ifPresent(leaf -> {
+                                query.append(getQuery(leaf, not, parameters, 
svs));
+                                try {
+                                    involvedPlainAttrs.add(check(leaf, 
svs.anyTypeKind).getLeft().getKey());
+                                } catch (IllegalArgumentException e) {
+                                    // ignore
+                                }
+                            });
+                        });
 
                 // allow for additional search conditions
                 getQueryForCustomConds(cond, parameters, svs, not, query);
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 da0ca624bb..fbd269a412 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
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 import javax.persistence.NoResultException;
 import javax.persistence.TypedQuery;
 import org.apache.commons.lang3.StringUtils;
@@ -89,12 +88,11 @@ public class JPARealmDAO extends AbstractDAO<Realm> 
implements RealmDAO {
         }
 
         Realm current = root;
-        for (final String pathElement : fullPath.substring(1).split("/")) {
-            Optional<Realm> first = findChildren(current).stream().
-                    filter(realm -> 
pathElement.equals(realm.getName())).findFirst();
-            if (first.isPresent()) {
-                current = first.get();
-            } else {
+        for (String pathElement : fullPath.substring(1).split("/")) {
+            current = findChildren(current).stream().
+                    filter(realm -> 
pathElement.equals(realm.getName())).findFirst().
+                    orElse(null);
+            if (current == null) {
                 return null;
             }
         }
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 5883df9eb0..c36b5d6b13 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
@@ -196,8 +196,10 @@ public class JPAUserDAO extends AbstractAnyDAO<User> 
implements UserDAO {
             final Collection<String> groups) {
 
         // 1. check if AuthContextUtils.getUsername() is owner of at least one 
group of which user is member
-        boolean authorized = 
authRealms.stream().map(RealmUtils::parseGroupOwnerRealm).filter(Optional::isPresent).
-                anyMatch(pair -> groups.contains(pair.get().getRight()));
+        boolean authorized = authRealms.stream().
+                map(authRealm -> 
RealmUtils.parseGroupOwnerRealm(authRealm).orElse(null)).
+                filter(Objects::nonNull).
+                anyMatch(pair -> groups.contains(pair.getRight()));
 
         // 2. check if user is in at least one DynRealm for which 
AuthContextUtils.getUsername() owns entitlement
         if (!authorized) {
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/DefaultNotificationManager.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/DefaultNotificationManager.java
index 610f6f2f09..9497512eb9 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/DefaultNotificationManager.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/DefaultNotificationManager.java
@@ -415,11 +415,10 @@ public class DefaultNotificationManager implements 
NotificationManager {
                     Optional<? extends UPlainAttr> attr = membership == null
                             ? user.getPlainAttr(recipientAttrName)
                             : user.getPlainAttr(recipientAttrName, membership);
-                    if (attr.isPresent()) {
-                        email = attr.get().getValuesAsStrings().isEmpty()
-                                ? null
-                                : attr.get().getValuesAsStrings().get(0);
-                    }
+                    email = attr.map(a -> a.getValuesAsStrings().isEmpty()
+                            ? null
+                            : a.getValuesAsStrings().get(0)).
+                            orElse(null);
                     break;
 
                 case DERIVED:
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
index e36a73ee45..6deb8cc09f 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
@@ -58,9 +58,7 @@ public class DBPasswordPropagationActions implements 
PropagationActions {
                 filter(property -> 
"cipherAlgorithm".equals(property.getSchema().getName())
                 && property.getValues() != null && 
!property.getValues().isEmpty()).findFirst();
 
-        return cipherAlgorithm.isPresent()
-                ? (String) cipherAlgorithm.get().getValues().get(0)
-                : CLEARTEXT;
+        return cipherAlgorithm.map(a -> (String) 
a.getValues().get(0)).orElse(CLEARTEXT);
     }
 
     protected boolean cipherAlgorithmMatches(final String connectorAlgorithm, 
final CipherAlgorithm userAlgorithm) {
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
index 2a0cd1297e..d3efe11ce6 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
@@ -110,9 +110,9 @@ public class LDAPMembershipPropagationActions implements 
PropagationActions {
             return;
         }
 
-        Optional<Provision> groupProvision = 
taskInfo.getResource().getProvisionByAnyType(AnyTypeKind.GROUP.name());
-        if (groupProvision.isPresent() && groupProvision.get().getMapping() != 
null
-                && 
StringUtils.isNotBlank(groupProvision.get().getMapping().getConnObjectLink())) {
+        taskInfo.getResource().getProvisionByAnyType(AnyTypeKind.GROUP.name()).
+                map(Provision::getMapping).
+                filter(mapping -> 
StringUtils.isNotBlank(mapping.getConnObjectLink())).ifPresentOrElse(mapping -> 
{
 
             User user = userDAO.find(taskInfo.getEntityKey());
             Set<String> groups = new HashSet<>();
@@ -124,7 +124,7 @@ public class LDAPMembershipPropagationActions implements 
PropagationActions {
                     filter(group -> 
group.getResources().contains(taskInfo.getResource())).
                     forEach(group -> {
                         String groupConnObjectLink = 
evaluateGroupConnObjectLink(
-                                
groupProvision.get().getMapping().getConnObjectLink(), group);
+                                mapping.getConnObjectLink(), group);
 
                         LOG.debug("ConnObjectLink for {} is '{}'", group, 
groupConnObjectLink);
                         if (StringUtils.isNotBlank(groupConnObjectLink)) {
@@ -153,7 +153,7 @@ public class LDAPMembershipPropagationActions implements 
PropagationActions {
                         Set<String> connObjectLinks = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
                         buildManagedGroupConnObjectLinks(
                                 taskInfo.getResource(),
-                                
groupProvision.get().getMapping().getConnObjectLink(),
+                                mapping.getConnObjectLink(),
                                 connObjectLinks);
 
                         LOG.debug("Memberships not managed by Syncope: {}", 
beforeLdapGroups);
@@ -172,7 +172,7 @@ public class LDAPMembershipPropagationActions implements 
PropagationActions {
                 // if groups were added or removed by last update, compute and 
add the group's connector object link
                 for (MembershipUR memb : ((UserUR) 
taskInfo.getUpdateRequest()).getMemberships()) {
                     String connObjectLink = evaluateGroupConnObjectLink(
-                            
groupProvision.get().getMapping().getConnObjectLink(),
+                            mapping.getConnObjectLink(),
                             groupDAO.find(memb.getGroup()));
                     if (memb.getOperation() == PatchOperation.ADD_REPLACE) {
                         groupsToAdd.add(connObjectLink);
@@ -197,11 +197,10 @@ public class LDAPMembershipPropagationActions implements 
PropagationActions {
                     LOG.debug("Adding Group connObjectLinks to attribute 
deltas: {}={},{}",
                             getGroupMembershipAttrName(), groupsToAdd, 
groupsToRemove);
                     data.getAttributeDeltas().add(
-                            
AttributeDeltaBuilder.build(getGroupMembershipAttrName(), groupsToAdd, 
groupsToRemove));
+                            
AttributeDeltaBuilder.build(getGroupMembershipAttrName(), groupsToAdd,
+                                    groupsToRemove));
                 }
             }
-        } else {
-            LOG.debug("Not about user, or group mapping missing for resource: 
not doing anything");
-        }
+        }, () -> LOG.debug("Not about user, or group mapping missing for 
resource: not doing anything"));
     }
 }
diff --git 
a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
 
b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
index 774deb0005..dc0bf2c995 100644
--- 
a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
+++ 
b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
@@ -20,7 +20,7 @@ package org.apache.syncope.core.spring.policy;
 
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.Optional;
+import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.policy.AccountRuleConf;
 import org.apache.syncope.common.lib.policy.DefaultAccountRuleConf;
 import org.apache.syncope.core.persistence.api.entity.Entity;
+import org.apache.syncope.core.persistence.api.entity.PlainAttr;
 import org.apache.syncope.core.persistence.api.entity.user.LinkedAccount;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.provisioning.api.rules.AccountRule;
@@ -103,9 +104,9 @@ public class DefaultAccountRule implements AccountRule {
         Set<String> wordsNotPermitted = new 
HashSet<>(conf.getWordsNotPermitted());
         wordsNotPermitted.addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(user::getPlainAttr).
-                        filter(Optional::isPresent).
-                        map(attr -> attr.get().getValuesAsStrings()).
+                        map(schema -> user.getPlainAttr(schema).
+                        map(PlainAttr::getValuesAsStrings).orElse(null)).
+                        filter(Objects::nonNull).
                         filter(values -> !CollectionUtils.isEmpty(values)).
                         flatMap(Collection::stream).
                         collect(Collectors.toSet()));
@@ -123,9 +124,9 @@ public class DefaultAccountRule implements AccountRule {
         Set<String> wordsNotPermitted = new 
HashSet<>(conf.getWordsNotPermitted());
         wordsNotPermitted.addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(account::getPlainAttr).
-                        filter(Optional::isPresent).
-                        map(attr -> attr.get().getValuesAsStrings()).
+                        map(schema -> account.getPlainAttr(schema).
+                        map(PlainAttr::getValuesAsStrings).orElse(null)).
+                        filter(Objects::nonNull).
                         filter(values -> !CollectionUtils.isEmpty(values)).
                         flatMap(Collection::stream).
                         collect(Collectors.toSet()));
diff --git 
a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
 
b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
index fdb72ea239..4182b35cc7 100644
--- 
a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
+++ 
b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Optional;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -31,6 +31,7 @@ import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.policy.DefaultPasswordRuleConf;
 import org.apache.syncope.common.lib.policy.PasswordRuleConf;
+import org.apache.syncope.core.persistence.api.entity.PlainAttr;
 import org.apache.syncope.core.persistence.api.entity.user.LinkedAccount;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.provisioning.api.rules.PasswordRule;
@@ -169,9 +170,9 @@ public class DefaultPasswordRule implements PasswordRule {
             Set<String> wordsNotPermitted = new 
HashSet<>(conf.getWordsNotPermitted());
             wordsNotPermitted.addAll(
                     conf.getSchemasNotPermitted().stream().
-                            map(user::getPlainAttr).
-                            filter(Optional::isPresent).
-                            map(attr -> attr.get().getValuesAsStrings()).
+                            map(schema -> user.getPlainAttr(schema).
+                            map(PlainAttr::getValuesAsStrings).orElse(null)).
+                            filter(Objects::nonNull).
                             filter(values -> !CollectionUtils.isEmpty(values)).
                             flatMap(Collection::stream).
                             collect(Collectors.toSet()));
@@ -185,9 +186,9 @@ public class DefaultPasswordRule implements PasswordRule {
     public void enforce(final LinkedAccount account) {
         conf.getWordsNotPermitted().addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(account::getPlainAttr).
-                        filter(Optional::isPresent).
-                        map(attr -> attr.get().getValuesAsStrings()).
+                        map(schema -> account.getPlainAttr(schema).
+                        map(PlainAttr::getValuesAsStrings).orElse(null)).
+                        filter(Objects::nonNull).
                         filter(values -> !CollectionUtils.isEmpty(values)).
                         flatMap(Collection::stream).
                         collect(Collectors.toList()));
@@ -206,9 +207,9 @@ public class DefaultPasswordRule implements PasswordRule {
                 Set<String> wordsNotPermitted = new 
HashSet<>(conf.getWordsNotPermitted());
                 wordsNotPermitted.addAll(
                         conf.getSchemasNotPermitted().stream().
-                                map(account::getPlainAttr).
-                                filter(Optional::isPresent).
-                                map(attr -> attr.get().getValuesAsStrings()).
+                                map(schema -> account.getPlainAttr(schema).
+                                
map(PlainAttr::getValuesAsStrings).orElse(null)).
+                                filter(Objects::nonNull).
                                 filter(values -> 
!CollectionUtils.isEmpty(values)).
                                 flatMap(Collection::stream).
                                 collect(Collectors.toSet()));
diff --git 
a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/UserService.java
 
b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/UserService.java
index e586d382b5..e9b70304f8 100644
--- 
a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/UserService.java
+++ 
b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/UserService.java
@@ -162,11 +162,9 @@ public class UserService {
         if (user.isEmpty()) {
             throw new NotFoundException(username);
         }
-        if (!password.equals(user.get().getPassword())) {
-            throw new ForbiddenException();
-        }
 
-        return user.get();
+        return user.filter(u -> password.equals(u.getPassword())).
+                orElseThrow(() -> new ForbiddenException());
     }
 
     @POST
diff --git a/pom.xml b/pom.xml
index b1dba6ece4..35f3e7ecf5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -439,8 +439,6 @@ under the License.
     <commons-text.version>1.10.0</commons-text.version>
     <commons-logging.version>1.1.3</commons-logging.version>
 
-    <modernizer-maven.version>2.5.0</modernizer-maven.version>
-
     <pac4j.version>5.5.0</pac4j.version>
 
     <cas.version>6.6.7-SNAPSHOT</cas.version>
@@ -921,12 +919,6 @@ under the License.
         <version>${commons-text.version}</version>
       </dependency>
 
-      <dependency>
-        <groupId>org.gaul</groupId>
-        <artifactId>modernizer-maven-annotations</artifactId>
-        <version>${modernizer-maven.version}</version>
-      </dependency>
-
       <dependency>
         <groupId>org.apache.tika</groupId>
         <artifactId>tika-core</artifactId>
@@ -1812,12 +1804,15 @@ under the License.
       <plugin>
         <groupId>org.gaul</groupId>
         <artifactId>modernizer-maven-plugin</artifactId>
-        <version>${modernizer-maven.version}</version>
+        <version>2.6.0</version>
         <configuration>
           <javaVersion>${targetJdk}</javaVersion>
           <ignorePackages>
             
<ignorePackage>org.apache.syncope.core.persistence.jpa.entity</ignorePackage>
           </ignorePackages>
+          <exclusions>
+            <exclusion>java/util/Optional.get:()Ljava/lang/Object;</exclusion>
+          </exclusions>
         </configuration>
         <executions>
           <execution>
diff --git a/sra/pom.xml b/sra/pom.xml
index a13bf0caaa..837f5d2fc7 100644
--- a/sra/pom.xml
+++ b/sra/pom.xml
@@ -115,11 +115,6 @@ under the License.
       <artifactId>hibernate-validator</artifactId>
     </dependency>
 
-    <dependency>
-      <groupId>org.gaul</groupId>
-      <artifactId>modernizer-maven-annotations</artifactId>
-    </dependency>
-
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>

Reply via email to