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 2018/02/27 13:28:51 UTC

syncope git commit: More java 8 friendliness

Repository: syncope
Updated Branches:
  refs/heads/master 2a9cf78af -> b4b12bd45


More java 8 friendliness


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b4b12bd4
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b4b12bd4
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b4b12bd4

Branch: refs/heads/master
Commit: b4b12bd45f2e07651be683e17fa95fd51c21f855
Parents: 2a9cf78
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Feb 27 14:28:43 2018 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Feb 27 14:28:43 2018 +0100

----------------------------------------------------------------------
 .../cli/commands/CommonsResultManager.java      |  4 +-
 .../cli/commands/task/TaskResultManager.java    |  8 ++--
 .../client/console/PreferenceManager.java       |  4 +-
 .../client/console/SyncopeConsoleSession.java   |  4 +-
 .../client/console/topology/Topology.java       | 10 ++---
 .../core/logic/cocoon/XSLTTransformer.java      |  9 ++---
 .../jpa/content/XMLContentLoader.java           | 38 ++++++++----------
 .../provisioning/api/PropagationByResource.java | 10 ++---
 .../java/data/AbstractAnyDataBinder.java        | 41 ++++++++++----------
 .../java/data/DynRealmDataBinderImpl.java       |  8 ++--
 .../java/data/GroupDataBinderImpl.java          | 24 ++++--------
 .../java/data/NotificationDataBinderImpl.java   |  6 +--
 .../java/data/PolicyDataBinderImpl.java         | 30 +++++++-------
 .../java/data/RealmDataBinderImpl.java          | 35 +++++++----------
 .../java/data/ReportDataBinderImpl.java         |  4 +-
 .../java/data/ResourceDataBinderImpl.java       | 23 ++++-------
 .../java/data/TaskDataBinderImpl.java           | 38 ++++++++----------
 .../core/provisioning/java/jexl/JexlUtils.java  |  4 +-
 .../job/report/ReconciliationReportlet.java     | 16 ++++----
 .../PriorityPropagationTaskExecutor.java        |  6 +--
 .../propagation/PropagationManagerImpl.java     | 16 ++++----
 .../java/pushpull/GoogleAppsPullActions.java    | 11 +++---
 .../pushpull/LDAPMembershipPullActions.java     |  8 ++--
 .../provisioning/java/pushpull/PullUtils.java   |  4 --
 .../provisioning/java/utils/TemplateUtils.java  | 14 +++----
 .../client/ElasticsearchClientFactoryBean.java  |  4 +-
 26 files changed, 167 insertions(+), 212 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
index dd0b320..da5b2b4 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
@@ -91,8 +91,8 @@ public abstract class CommonsResultManager {
 
     protected void printDetails(final String title, final Map<String, String> details) {
         final Table.TableBuilder tableBuilder = new Table.TableBuilder(title).header("detail").header("value");
-        details.entrySet().forEach(entrySet -> {
-            tableBuilder.rowValues(Arrays.asList(entrySet.getKey(), entrySet.getValue()));
+        details.forEach((key, value) -> {
+            tableBuilder.rowValues(Arrays.asList(key, value));
         });
         tableBuilder.build().print();
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
index 6794a18..82823c7 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
@@ -185,11 +185,11 @@ public class TaskResultManager extends CommonsResultManager {
     }
 
     private void printTemplates(final Map<String, AnyTO> templates) {
-        templates.entrySet().forEach(entrySet -> {
+        templates.forEach((type, template) -> {
             System.out.println("        "
-                    + entrySet.getKey() + " key: " + entrySet.getValue().getKey()
-                    + " of realm" + entrySet.getValue().getRealm()
-                    + " on resource " + entrySet.getValue().getResources());
+                    + type + " key: " + template.getKey()
+                    + " of realm" + template.getRealm()
+                    + " on resources " + template.getResources());
         });
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java b/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
index 473e024..96374a1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
@@ -135,8 +135,8 @@ public class PreferenceManager implements Serializable {
         }
 
         // after retrieved previous setting in order to overwrite the key ...
-        prefs.entrySet().forEach(entry -> {
-            current.put(entry.getKey(), StringUtils.join(entry.getValue(), ";"));
+        prefs.forEach((key, values) -> {
+            current.put(key, StringUtils.join(values, ";"));
         });
 
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
index 3ca1edd..bbe34cb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
@@ -225,8 +225,8 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession {
     public List<String> getAuthRealms() {
         List<String> sortable = new ArrayList<>();
         List<String> available = SetUniqueList.setUniqueList(sortable);
-        auth.entrySet().forEach(entitlement -> {
-            available.addAll(entitlement.getValue());
+        auth.values().forEach(entitlement -> {
+            available.addAll(entitlement);
         });
         Collections.sort(sortable);
         return sortable;

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index fda5e0e..070085e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -530,12 +530,12 @@ public class Topology extends BasePage {
     private List<String> createConnections(final Map<Serializable, Map<Serializable, TopologyNode>> targets) {
         List<String> list = new ArrayList<>();
 
-        targets.entrySet().forEach(source -> {
-            source.getValue().entrySet().forEach(target -> {
+        targets.forEach((key, value) -> {
+            value.forEach((label, node) -> {
                 list.add(String.format("connect('%s','%s','%s');",
-                        source.getKey(),
-                        target.getKey(),
-                        target.getValue().getKind()));
+                        key,
+                        label,
+                        node.getKind()));
             });
         });
         return list;

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/logic/src/main/java/org/apache/syncope/core/logic/cocoon/XSLTTransformer.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/cocoon/XSLTTransformer.java b/core/logic/src/main/java/org/apache/syncope/core/logic/cocoon/XSLTTransformer.java
index 85787ae..92b797f 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/cocoon/XSLTTransformer.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/cocoon/XSLTTransformer.java
@@ -111,8 +111,8 @@ public class XSLTTransformer extends AbstractSAXTransformer implements CachingPi
             transformerFactory = TRAX_FACTORY;
         } else {
             transformerFactory = createNewSAXTransformerFactory();
-            attributes.entrySet().forEach(attribute -> {
-                transformerFactory.setAttribute(attribute.getKey(), attribute.getValue());
+            attributes.forEach((key, values) -> {
+                transformerFactory.setAttribute(key, values);
             });
         }
 
@@ -151,11 +151,10 @@ public class XSLTTransformer extends AbstractSAXTransformer implements CachingPi
         if (this.parameters != null) {
             final Transformer transformer = transformerHandler.getTransformer();
 
-            this.parameters.entrySet().forEach(entry -> {
-                final String name = entry.getKey();
+            this.parameters.forEach((name, values)-> {
                 // is valid XSLT parameter name
                 if (XSLT_PARAMETER_NAME_PATTERN.matcher(name).matches()) {
-                    transformer.setParameter(name, entry.getValue());
+                    transformer.setParameter(name, values);
                 }
             });
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentLoader.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentLoader.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentLoader.java
index 4059033..3dc5a05 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentLoader.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentLoader.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persistence.jpa.content;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Resource;
 import javax.sql.DataSource;
@@ -55,40 +54,40 @@ public class XMLContentLoader extends AbstractContentDealer implements ContentLo
 
     @Override
     public void load() {
-        for (Map.Entry<String, DataSource> entry : domainsHolder.getDomains().entrySet()) {
+        domainsHolder.getDomains().forEach((domain, datasource) -> {
             // create EntityManager so OpenJPA will build the SQL schema
             EntityManagerFactoryUtils.findEntityManagerFactory(
-                    ApplicationContextProvider.getBeanFactory(), entry.getKey()).createEntityManager();
+                    ApplicationContextProvider.getBeanFactory(), domain).createEntityManager();
 
-            JdbcTemplate jdbcTemplate = new JdbcTemplate(entry.getValue());
+            JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
             boolean existingData;
             try {
                 existingData = jdbcTemplate.queryForObject("SELECT COUNT(0) FROM " + JPAConf.TABLE, Integer.class) > 0;
             } catch (DataAccessException e) {
-                LOG.error("[{}] Could not access to table " + JPAConf.TABLE, entry.getKey(), e);
+                LOG.error("[{}] Could not access to table " + JPAConf.TABLE, domain, e);
                 existingData = true;
             }
 
             if (existingData) {
-                LOG.info("[{}] Data found in the database, leaving untouched", entry.getKey());
+                LOG.info("[{}] Data found in the database, leaving untouched", domain);
             } else {
-                LOG.info("[{}] Empty database found, loading default content", entry.getKey());
+                LOG.info("[{}] Empty database found, loading default content", domain);
 
                 try {
                     ResourceWithFallbackLoader contentXML = ApplicationContextProvider.getBeanFactory().
-                            getBean(entry.getKey() + "ContentXML", ResourceWithFallbackLoader.class);
-                    loadDefaultContent(entry.getKey(), contentXML, entry.getValue());
+                            getBean(domain + "ContentXML", ResourceWithFallbackLoader.class);
+                    loadDefaultContent(domain, contentXML, datasource);
                 } catch (Exception e) {
-                    LOG.error("[{}] While loading default content", entry.getKey(), e);
+                    LOG.error("[{}] While loading default content", domain, e);
                 }
                 try {
-                    createViews(entry.getKey(), entry.getValue());
-                    createIndexes(entry.getKey(), entry.getValue());
+                    createViews(domain, datasource);
+                    createIndexes(domain, datasource);
                 } catch (IOException e) {
-                    LOG.error("[{}] While creating indexes and views", entry.getKey(), e);
+                    LOG.error("[{}] While creating indexes and views", domain, e);
                 }
             }
-        }
+        });
     }
 
     private void loadDefaultContent(
@@ -97,7 +96,6 @@ public class XMLContentLoader extends AbstractContentDealer implements ContentLo
 
         SAXParserFactory factory = SAXParserFactory.newInstance();
         try (InputStream in = contentXML.getResource().getInputStream()) {
-
             SAXParser parser = factory.newSAXParser();
             parser.parse(in, new ContentLoaderHandler(dataSource, ROOT_ELEMENT, true));
             LOG.debug("[{}] Default content successfully loaded", domain);
@@ -110,15 +108,14 @@ public class XMLContentLoader extends AbstractContentDealer implements ContentLo
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 
         Properties views = PropertiesLoaderUtils.loadProperties(viewsXML.getResource());
-        for (String idx : views.stringPropertyNames()) {
+        views.stringPropertyNames().stream().forEach(idx -> {
             LOG.debug("[{}] Creating view {}", domain, views.get(idx).toString());
-
             try {
                 jdbcTemplate.execute(views.get(idx).toString().replaceAll("\\n", " "));
             } catch (DataAccessException e) {
                 LOG.error("[{}] Could not create view", domain, e);
             }
-        }
+        });
 
         LOG.debug("Views created");
     }
@@ -129,15 +126,14 @@ public class XMLContentLoader extends AbstractContentDealer implements ContentLo
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 
         Properties indexes = PropertiesLoaderUtils.loadProperties(indexesXML.getResource());
-        for (String idx : indexes.stringPropertyNames()) {
+        indexes.stringPropertyNames().stream().forEach(idx -> {
             LOG.debug("[{}] Creating index {}", domain, indexes.get(idx).toString());
-
             try {
                 jdbcTemplate.execute(indexes.get(idx).toString());
             } catch (DataAccessException e) {
                 LOG.error("[{}] Could not create index", domain, e);
             }
-        }
+        });
 
         LOG.debug("Indexes created");
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java
index b02c34a..a7dcd97 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Stream;
 import org.apache.syncope.common.lib.types.ResourceOperation;
 
 /**
@@ -272,11 +273,10 @@ public class PropagationByResource implements Serializable {
 
     public Map<String, ResourceOperation> asMap() {
         Map<String, ResourceOperation> result = new HashMap<>();
-        for (ResourceOperation operation : ResourceOperation.values()) {
-            for (String resourceKey : get(operation)) {
-                result.put(resourceKey, operation);
-            }
-        }
+        Stream.of(ResourceOperation.values()).
+                forEach(operation -> get(operation).forEach(resource -> {
+            result.put(resource, operation);
+        }));
 
         return result;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
index 1d1bb16..4346c1a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
@@ -262,20 +262,19 @@ abstract class AbstractAnyDataBinder {
 
         // Check if there is some mandatory schema defined for which no value has been provided
         AllowedSchemas<PlainSchema> allowedPlainSchemas = anyUtils.getAllowedSchemas(any, PlainSchema.class);
-        allowedPlainSchemas.getForSelf().
-                forEach(schema -> {
-                    checkMandatory(schema, any.getPlainAttr(schema.getKey()).orElse(null), any, reqValMissing);
-                });
-        allowedPlainSchemas.getForMemberships().entrySet().stream().
-                filter(entry -> any instanceof GroupableRelatable).
-                forEachOrdered(entry -> {
-                    GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
-                    Membership<?> membership = groupable.getMembership(entry.getKey().getKey()).orElse(null);
-                    entry.getValue().forEach(schema -> {
-                        checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership).orElse(null),
-                                any, reqValMissing);
-                    });
+        allowedPlainSchemas.getForSelf().forEach(schema -> {
+            checkMandatory(schema, any.getPlainAttr(schema.getKey()).orElse(null), any, reqValMissing);
+        });
+        if (any instanceof GroupableRelatable) {
+            allowedPlainSchemas.getForMemberships().forEach((group, schemas) -> {
+                GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
+                Membership<?> membership = groupable.getMembership(group.getKey()).orElse(null);
+                schemas.forEach(schema -> {
+                    checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership).orElse(null),
+                            any, reqValMissing);
                 });
+            });
+        }
 
         return reqValMissing;
     }
@@ -623,19 +622,19 @@ abstract class AbstractAnyDataBinder {
                     build());
         });
 
-        derAttrs.entrySet().forEach(entry -> {
+        derAttrs.forEach((schema, value) -> {
             membershipTO.getDerAttrs().add(new AttrTO.Builder().
-                    schema(entry.getKey().getKey()).
-                    value(entry.getValue()).
-                    schemaInfo(schemaDataBinder.getDerSchemaTO(entry.getKey())).
+                    schema(schema.getKey()).
+                    value(value).
+                    schemaInfo(schemaDataBinder.getDerSchemaTO(schema)).
                     build());
         });
 
-        virAttrs.entrySet().forEach(entry -> {
+        virAttrs.forEach((schema, values) -> {
             membershipTO.getVirAttrs().add(new AttrTO.Builder().
-                    schema(entry.getKey().getKey()).
-                    values(entry.getValue()).
-                    schemaInfo(schemaDataBinder.getVirSchemaTO(entry.getKey())).
+                    schema(schema.getKey()).
+                    values(values).
+                    schemaInfo(schemaDataBinder.getVirSchemaTO(schema)).
                     build());
         });
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/DynRealmDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/DynRealmDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/DynRealmDataBinderImpl.java
index 6973e1e..7801b46 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/DynRealmDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/DynRealmDataBinderImpl.java
@@ -87,12 +87,12 @@ public class DynRealmDataBinderImpl implements DynRealmDataBinder {
         }
         dynRealmDAO.clearDynMembers(dynRealm);
 
-        dynRealmTO.getDynMembershipConds().entrySet().forEach(entry -> {
-            AnyType anyType = anyTypeDAO.find(entry.getKey());
+        dynRealmTO.getDynMembershipConds().forEach((type, fiql) -> {
+            AnyType anyType = anyTypeDAO.find(type);
             if (anyType == null) {
-                LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), entry.getKey());
+                LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), type);
             } else {
-                setDynMembership(dynRealm, anyType, entry.getValue());
+                setDynMembership(dynRealm, anyType, fiql);
             }
         });
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index f797fd4..ce8df66 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -142,12 +142,12 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
         if (groupTO.getUDynMembershipCond() != null) {
             setDynMembership(group, anyTypeDAO.findUser(), groupTO.getUDynMembershipCond());
         }
-        groupTO.getADynMembershipConds().entrySet().forEach(entry -> {
-            AnyType anyType = anyTypeDAO.find(entry.getKey());
+        groupTO.getADynMembershipConds().forEach((type, fiql) -> {
+            AnyType anyType = anyTypeDAO.find(type);
             if (anyType == null) {
-                LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), entry.getKey());
+                LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), type);
             } else {
-                setDynMembership(group, anyType, entry.getValue());
+                setDynMembership(group, anyType, fiql);
             }
         });
 
@@ -284,12 +284,8 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
                     }
                 }
                 // remove all classes not contained in the TO
-                for (Iterator<? extends AnyTypeClass> itor = typeExt.getAuxClasses().iterator(); itor.hasNext();) {
-                    AnyTypeClass anyTypeClass = itor.next();
-                    if (!typeExtTO.getAuxClasses().contains(anyTypeClass.getKey())) {
-                        itor.remove();
-                    }
-                }
+                typeExt.getAuxClasses().
+                        removeIf(anyTypeClass -> !typeExtTO.getAuxClasses().contains(anyTypeClass.getKey()));
 
                 // only consider non-empty type extensions
                 if (typeExt.getAuxClasses().isEmpty()) {
@@ -299,12 +295,8 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
             }
         }
         // remove all type extensions not contained in the TO
-        for (Iterator<? extends TypeExtension> itor = group.getTypeExtensions().iterator(); itor.hasNext();) {
-            TypeExtension typeExt = itor.next();
-            if (!groupPatch.getTypeExtension(typeExt.getAnyType().getKey()).isPresent()) {
-                itor.remove();
-            }
-        }
+        group.getTypeExtensions().
+                removeIf(typeExt -> !groupPatch.getTypeExtension(typeExt.getAnyType().getKey()).isPresent());
 
         // Throw composite exception if there is at least one element set in the composing exceptions
         if (scce.hasExceptions()) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
index a4efbf5..b4131ac 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.provisioning.java.data;
 
 import java.text.ParseException;
 import java.util.regex.Matcher;
-import java.util.stream.Collectors;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.SyncopeConstants;
@@ -144,9 +143,8 @@ public class NotificationDataBinderImpl implements NotificationDataBinder {
                 });
 
         // 2. remove all abouts not contained in the TO
-        notification.getAbouts().removeAll(notification.getAbouts().stream().
-                filter(anyAbout -> !notificationTO.getAbouts().containsKey(anyAbout.getAnyType().getKey())).
-                collect(Collectors.toList()));
+        notification.getAbouts().
+                removeIf(anyAbout -> !notificationTO.getAbouts().containsKey(anyAbout.getAnyType().getKey()));
 
         // 3. verify recipientAttrName
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
index 319690e..a1a400c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
@@ -89,9 +89,8 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
                 }
             });
             // remove all implementations not contained in the TO
-            passwordPolicy.getRules().removeAll(passwordPolicy.getRules().stream().
-                    filter(implementation -> !passwordPolicyTO.getRules().contains(implementation.getKey())).
-                    collect(Collectors.toList()));
+            passwordPolicy.getRules().
+                    removeIf(implementation -> !passwordPolicyTO.getRules().contains(implementation.getKey()));
         } else if (policyTO instanceof AccountPolicyTO) {
             if (result == null) {
                 result = (T) entityFactory.newEntity(AccountPolicy.class);
@@ -112,9 +111,8 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
                 }
             });
             // remove all implementations not contained in the TO
-            accountPolicy.getRules().removeAll(accountPolicy.getRules().stream().
-                    filter(implementation -> !accountPolicyTO.getRules().contains(implementation.getKey())).
-                    collect(Collectors.toList()));
+            accountPolicy.getRules().
+                    removeIf(implementation -> !accountPolicyTO.getRules().contains(implementation.getKey()));
 
             accountPolicy.getResources().clear();
             accountPolicyTO.getPassthroughResources().forEach(resourceName -> {
@@ -135,10 +133,10 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
 
             pullPolicy.setConflictResolutionAction(pullPolicyTO.getConflictResolutionAction());
 
-            pullPolicyTO.getCorrelationRules().entrySet().forEach(entry -> {
-                AnyType anyType = anyTypeDAO.find(entry.getKey());
+            pullPolicyTO.getCorrelationRules().forEach((type, impl) -> {
+                AnyType anyType = anyTypeDAO.find(type);
                 if (anyType == null) {
-                    LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
+                    LOG.debug("Invalid AnyType {} specified, ignoring...", type);
                 } else {
                     CorrelationRule correlationRule = pullPolicy.getCorrelationRule(anyType).orElse(null);
                     if (correlationRule == null) {
@@ -148,18 +146,16 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
                         pullPolicy.add(correlationRule);
                     }
 
-                    Implementation implementation = implementationDAO.find(entry.getValue());
-                    if (implementation == null) {
-                        throw new NotFoundException("Implementation " + entry.getValue());
+                    Implementation rule = implementationDAO.find(impl);
+                    if (rule == null) {
+                        throw new NotFoundException("Implementation " + type);
                     }
-                    correlationRule.setImplementation(implementation);
+                    correlationRule.setImplementation(rule);
                 }
             });
             // remove all rules not contained in the TO
-            pullPolicy.getCorrelationRules().removeAll(
-                    pullPolicy.getCorrelationRules().stream().filter(anyFilter
-                            -> !pullPolicyTO.getCorrelationRules().containsKey(anyFilter.getAnyType().getKey())).
-                            collect(Collectors.toList()));
+            pullPolicy.getCorrelationRules().removeIf(anyFilter
+                    -> !pullPolicyTO.getCorrelationRules().containsKey(anyFilter.getAnyType().getKey()));
         }
 
         if (result != null) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
index 8b006e1..2122154 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.provisioning.java.data;
 
-import java.util.stream.Collectors;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.RealmTO;
 import org.apache.syncope.common.lib.types.ClientExceptionType;
@@ -74,10 +73,10 @@ public class RealmDataBinderImpl implements RealmDataBinder {
     private void setTemplates(final RealmTO realmTO, final Realm realm) {
         // validate JEXL expressions from templates and proceed if fine
         templateUtils.check(realmTO.getTemplates(), ClientExceptionType.InvalidRealm);
-        realmTO.getTemplates().entrySet().forEach(entry -> {
-            AnyType type = anyTypeDAO.find(entry.getKey());
+        realmTO.getTemplates().forEach((key, template) -> {
+            AnyType type = anyTypeDAO.find(key);
             if (type == null) {
-                LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
+                LOG.debug("Invalid AnyType {} specified, ignoring...", key);
             } else {
                 AnyTemplateRealm anyTemplate = realm.getTemplate(type).orElse(null);
                 if (anyTemplate == null) {
@@ -87,14 +86,12 @@ public class RealmDataBinderImpl implements RealmDataBinder {
 
                     realm.add(anyTemplate);
                 }
-                anyTemplate.set(entry.getValue());
+                anyTemplate.set(template);
             }
         });
         // remove all templates not contained in the TO
-        realm.getTemplates().removeAll(
-                realm.getTemplates().stream().
-                        filter(anyTemplate -> !realmTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey())).
-                        collect(Collectors.toList()));
+        realm.getTemplates().
+                removeIf(template -> !realmTO.getTemplates().containsKey(template.getAnyType().getKey()));
     }
 
     @Override
@@ -192,9 +189,8 @@ public class RealmDataBinderImpl implements RealmDataBinder {
             }
         });
         // remove all implementations not contained in the TO
-        realm.getActions().removeAll(realm.getActions().stream().
-                filter(implementation -> !realmTO.getActions().contains(implementation.getKey())).
-                collect(Collectors.toList()));
+        realm.getActions().
+                removeIf(implementation -> !realmTO.getActions().contains(implementation.getKey()));
 
         setTemplates(realmTO, realm);
 
@@ -209,14 +205,13 @@ public class RealmDataBinderImpl implements RealmDataBinder {
             }
         });
         // remove all resources not contained in the TO
-        realm.getResources().removeAll(
-                realm.getResources().stream().filter(resource -> {
-                    boolean contained = realmTO.getResources().contains(resource.getKey());
-                    if (!contained) {
-                        propByRes.add(ResourceOperation.DELETE, resource.getKey());
-                    }
-                    return !contained;
-                }).collect(Collectors.toList()));
+        realm.getResources().removeIf(resource -> {
+            boolean contained = realmTO.getResources().contains(resource.getKey());
+            if (!contained) {
+                propByRes.add(ResourceOperation.DELETE, resource.getKey());
+            }
+            return !contained;
+        });
 
         return propByRes;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ReportDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ReportDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ReportDataBinderImpl.java
index b2b9808..ed1b3a2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ReportDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ReportDataBinderImpl.java
@@ -88,9 +88,7 @@ public class ReportDataBinderImpl implements ReportDataBinder {
             }
         });
         // remove all implementations not contained in the TO
-        report.getReportlets().removeAll(report.getReportlets().stream().
-                filter(reportlet -> !reportTO.getReportlets().contains(reportlet.getKey())).
-                collect(Collectors.toList()));
+        report.getReportlets().removeIf(reportlet -> !reportTO.getReportlets().contains(reportlet.getKey()));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index 875f58a..7e5cea6 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -193,12 +193,8 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
                     }
                 }
                 // remove all classes not contained in the TO
-                for (Iterator<? extends AnyTypeClass> itor = provision.getAuxClasses().iterator(); itor.hasNext();) {
-                    AnyTypeClass anyTypeClass = itor.next();
-                    if (!provisionTO.getAuxClasses().contains(anyTypeClass.getKey())) {
-                        itor.remove();
-                    }
-                }
+                provision.getAuxClasses().
+                        removeIf(anyTypeClass -> !provisionTO.getAuxClasses().contains(anyTypeClass.getKey()));
 
                 if (provisionTO.getMapping() == null) {
                     provision.setMapping(null);
@@ -338,9 +334,8 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
                             }
                         });
                         // remove all implementations not contained in the TO
-                        item.getTransformers().removeAll(item.getTransformers().stream().
-                                filter(implementation -> !itemTO.getTransformers().contains(implementation.getKey())).
-                                collect(Collectors.toList()));
+                        item.getTransformers().
+                                removeIf(implementation -> !itemTO.getTransformers().contains(implementation.getKey()));
                     }
                 }
             }
@@ -381,9 +376,8 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
             }
         });
         // remove all implementations not contained in the TO
-        resource.getPropagationActions().removeAll(resource.getPropagationActions().stream().
-                filter(implementation -> !resourceTO.getPropagationActions().contains(implementation.getKey())).
-                collect(Collectors.toList()));
+        resource.getPropagationActions().
+                removeIf(implementation -> !resourceTO.getPropagationActions().contains(implementation.getKey()));
 
         return resource;
     }
@@ -481,9 +475,8 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
                             }
                         });
                         // remove all implementations not contained in the TO
-                        item.getTransformers().removeAll(item.getTransformers().stream().
-                                filter(implementation -> !itemTO.getTransformers().contains(implementation.getKey())).
-                                collect(Collectors.toList()));
+                        item.getTransformers().
+                                removeIf(implementation -> !itemTO.getTransformers().contains(implementation.getKey()));
 
                         if (intAttrName.getEnclosingGroup() != null
                                 && item.getPurpose() != MappingPurpose.PROPAGATION) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
index 665c7ca..1b30e59 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
@@ -140,10 +140,10 @@ public class TaskDataBinderImpl implements TaskDataBinder {
             pushTask.setUnmatchingRule(pushTaskTO.getUnmatchingRule() == null
                     ? UnmatchingRule.ASSIGN : pushTaskTO.getUnmatchingRule());
 
-            pushTaskTO.getFilters().entrySet().forEach(entry -> {
-                AnyType anyType = anyTypeDAO.find(entry.getKey());
+            pushTaskTO.getFilters().forEach((type, fiql) -> {
+                AnyType anyType = anyTypeDAO.find(type);
                 if (anyType == null) {
-                    LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
+                    LOG.debug("Invalid AnyType {} specified, ignoring...", type);
                 } else {
                     PushTaskAnyFilter filter = pushTask.getFilter(anyType).orElse(null);
                     if (filter == null) {
@@ -152,14 +152,12 @@ public class TaskDataBinderImpl implements TaskDataBinder {
                         filter.setPushTask(pushTask);
                         pushTask.add(filter);
                     }
-                    filter.setFIQLCond(entry.getValue());
+                    filter.setFIQLCond(fiql);
                 }
             });
             // remove all filters not contained in the TO
-            pushTask.getFilters().removeAll(
-                    pushTask.getFilters().stream().filter(anyFilter
-                            -> !pushTaskTO.getFilters().containsKey(anyFilter.getAnyType().getKey())).
-                            collect(Collectors.toList()));
+            pushTask.getFilters().
+                    removeIf(anyFilter -> !pushTaskTO.getFilters().containsKey(anyFilter.getAnyType().getKey()));
         } else if (task instanceof PullTask && taskTO instanceof PullTaskTO) {
             PullTask pullTask = (PullTask) task;
             PullTaskTO pullTaskTO = (PullTaskTO) taskTO;
@@ -202,27 +200,25 @@ public class TaskDataBinderImpl implements TaskDataBinder {
 
             // validate JEXL expressions from templates and proceed if fine
             templateUtils.check(pullTaskTO.getTemplates(), ClientExceptionType.InvalidPullTask);
-            pullTaskTO.getTemplates().entrySet().forEach(entry -> {
-                AnyType type = anyTypeDAO.find(entry.getKey());
-                if (type == null) {
-                    LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
+            pullTaskTO.getTemplates().forEach((type, template) -> {
+                AnyType anyType = anyTypeDAO.find(type);
+                if (anyType == null) {
+                    LOG.debug("Invalid AnyType {} specified, ignoring...", type);
                 } else {
-                    AnyTemplatePullTask anyTemplate = pullTask.getTemplate(type).orElse(null);
+                    AnyTemplatePullTask anyTemplate = pullTask.getTemplate(anyType).orElse(null);
                     if (anyTemplate == null) {
                         anyTemplate = entityFactory.newEntity(AnyTemplatePullTask.class);
-                        anyTemplate.setAnyType(type);
+                        anyTemplate.setAnyType(anyType);
                         anyTemplate.setPullTask(pullTask);
 
                         pullTask.add(anyTemplate);
                     }
-                    anyTemplate.set(entry.getValue());
+                    anyTemplate.set(template);
                 }
             });
             // remove all templates not contained in the TO
-            pullTask.getTemplates().removeAll(
-                    pullTask.getTemplates().stream().filter(anyTemplate
-                            -> !pullTaskTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey())).
-                            collect(Collectors.toList()));
+            pullTask.getTemplates().
+                    removeIf(anyTemplate -> !pullTaskTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey()));
         }
 
         // 3. fill the remaining fields
@@ -240,9 +236,7 @@ public class TaskDataBinderImpl implements TaskDataBinder {
             }
         });
         // remove all implementations not contained in the TO
-        task.getActions().removeAll(task.getActions().stream().
-                filter(implementation -> !taskTO.getActions().contains(implementation.getKey())).
-                collect(Collectors.toList()));
+        task.getActions().removeIf(implementation -> !taskTO.getActions().contains(implementation.getKey()));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
index 1109070..b2eaebb 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
@@ -213,8 +213,8 @@ public final class JexlUtils {
         Map<DerSchema, String> derAttrs =
                 ApplicationContextProvider.getBeanFactory().getBean(DerAttrHandler.class).getValues(any);
 
-        derAttrs.entrySet().forEach(entry -> {
-            jexlContext.set(entry.getKey().getKey(), entry.getValue());
+        derAttrs.forEach((schema, value) -> {
+            jexlContext.set(schema.getKey(), value);
         });
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
index 9b5f6eb..25da1f4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
@@ -337,23 +337,23 @@ public class ReconciliationReportlet extends AbstractReportlet {
                                             Collections.emptySet()));
                                 });
 
-                        resourceAttrs.entrySet().forEach(entry -> {
-                            if (syncopeAttrs.containsKey(entry.getKey())) {
-                                if (!Objects.equals(syncopeAttrs.get(entry.getKey()), entry.getValue())) {
+                        resourceAttrs.forEach((key, values) -> {
+                            if (syncopeAttrs.containsKey(key)) {
+                                if (!Objects.equals(syncopeAttrs.get(key), values)) {
                                     misaligned.add(new Misaligned(
                                             resource.getKey(),
                                             connObjectKeyValue,
-                                            entry.getKey(),
-                                            syncopeAttrs.get(entry.getKey()),
-                                            entry.getValue()));
+                                            key,
+                                            syncopeAttrs.get(key),
+                                            values));
                                 }
                             } else {
                                 misaligned.add(new Misaligned(
                                         resource.getKey(),
                                         connObjectKeyValue,
-                                        entry.getKey(),
+                                        key,
                                         Collections.emptySet(),
-                                        entry.getValue()));
+                                        values));
                             }
                         });
                     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
index 1b583e0..be97bb5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
@@ -113,7 +113,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
         });
 
         // then process non-priority resources concurrently...
-        final CompletionService<TaskExec> completionService = new ExecutorCompletionService<>(executor);
+        CompletionService<TaskExec> completionService = new ExecutorCompletionService<>(executor);
         Map<PropagationTaskTO, Future<TaskExec>> nullPriority = new HashMap<>(concurrentTasks.size());
         concurrentTasks.forEach(task -> {
             try {
@@ -127,9 +127,9 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
         // ...waiting for all callables to complete, if async processing was not required
         if (!nullPriority.isEmpty()) {
             if (nullPriorityAsync) {
-                nullPriority.entrySet().forEach(entry -> {
+                nullPriority.forEach((task, exec) -> {
                     reporter.onSuccessOrNonPriorityResourceFailures(
-                            entry.getKey(), PropagationTaskExecStatus.CREATED, null, null, null);
+                            task, PropagationTaskExecStatus.CREATED, null, null, null);
                 });
             } else {
                 final Set<Future<TaskExec>> nullPriorityFutures = new HashSet<>(nullPriority.values());

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index f9986cb..2b8f314 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -361,15 +361,15 @@ public class PropagationManagerImpl implements PropagationManager {
 
         List<PropagationTaskTO> tasks = new ArrayList<>();
 
-        propByRes.asMap().entrySet().forEach(entry -> {
-            ExternalResource resource = resourceDAO.find(entry.getKey());
+        propByRes.asMap().forEach((resourceKey, operation) -> {
+            ExternalResource resource = resourceDAO.find(resourceKey);
             Provision provision = resource == null ? null : resource.getProvision(any.getType()).orElse(null);
             List<? extends Item> mappingItems = provision == null
                     ? Collections.<Item>emptyList()
                     : MappingUtils.getPropagationItems(provision.getMapping().getItems());
 
             if (resource == null) {
-                LOG.error("Invalid resource name specified: {}, ignoring...", entry.getKey());
+                LOG.error("Invalid resource name specified: {}, ignoring...", resourceKey);
             } else if (provision == null) {
                 LOG.error("No provision specified on resource {} for type {}, ignoring...",
                         resource, any.getType());
@@ -385,7 +385,7 @@ public class PropagationManagerImpl implements PropagationManager {
                 if (!deleteOnResource) {
                     task.setEntityKey(any.getKey());
                 }
-                task.setOperation(entry.getValue());
+                task.setOperation(operation);
                 task.setOldConnObjectKey(propByRes.getOldConnObjectKey(resource.getKey()));
 
                 Pair<String, Set<Attribute>> preparedAttrs =
@@ -448,12 +448,12 @@ public class PropagationManagerImpl implements PropagationManager {
 
         List<PropagationTaskTO> tasks = new ArrayList<>();
 
-        propByRes.asMap().entrySet().forEach(entry -> {
-            ExternalResource resource = resourceDAO.find(entry.getKey());
+        propByRes.asMap().forEach((resourceKey, operation) -> {
+            ExternalResource resource = resourceDAO.find(resourceKey);
             OrgUnit orgUnit = resource == null ? null : resource.getOrgUnit();
 
             if (resource == null) {
-                LOG.error("Invalid resource name specified: {}, ignoring...", entry.getKey());
+                LOG.error("Invalid resource name specified: {}, ignoring...", resourceKey);
             } else if (orgUnit == null) {
                 LOG.error("No orgUnit specified on resource {}, ignoring...", resource);
             } else if (StringUtils.isBlank(orgUnit.getConnObjectLink())) {
@@ -464,7 +464,7 @@ public class PropagationManagerImpl implements PropagationManager {
                 task.setResource(resource.getKey());
                 task.setObjectClassName(orgUnit.getObjectClass().getObjectClassValue());
                 task.setEntityKey(realm.getKey());
-                task.setOperation(entry.getValue());
+                task.setOperation(operation);
                 task.setOldConnObjectKey(propByRes.getOldConnObjectKey(resource.getKey()));
 
                 Pair<String, Set<Attribute>> preparedAttrs = mappingManager.prepareAttrs(realm, orgUnit);

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/GoogleAppsPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/GoogleAppsPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/GoogleAppsPullActions.java
index 9de3f2f..6418f9c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/GoogleAppsPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/GoogleAppsPullActions.java
@@ -128,10 +128,10 @@ public class GoogleAppsPullActions implements PullActions {
     @Transactional
     @Override
     public void afterAll(final ProvisioningProfile<?, ?> profile) throws JobExecutionException {
-        googleAppsIds.entrySet().forEach((entry) -> {
-            User user = userDAO.find(entry.getKey());
+        googleAppsIds.forEach((key, value) -> {
+            User user = userDAO.find(key);
             if (user == null) {
-                LOG.error("Could not find user {}, skipping", entry.getKey());
+                LOG.error("Could not find user {}, skipping", key);
             } else {
                 AnyUtils anyUtils = anyUtilsFactory.getInstance(user);
 
@@ -148,11 +148,10 @@ public class GoogleAppsPullActions implements PullActions {
                         user.add(attr);
 
                         try {
-                            attr.add(entry.getValue(), anyUtils);
+                            attr.add(value, anyUtils);
                             userDAO.save(user);
                         } catch (InvalidPlainAttrValueException e) {
-                            LOG.error("Invalid value for attribute {}: {}",
-                                    googleAppsId.getKey(), entry.getValue(), e);
+                            LOG.error("Invalid value for attribute {}: {}", googleAppsId.getKey(), value, e);
                         }
                     } else {
                         LOG.debug("User {} has already a googleAppsId assigned: {}", user, attr.getValuesAsStrings());

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
index 5261926..55f72f5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
@@ -172,16 +172,16 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
     @Override
     public void afterAll(final ProvisioningProfile<?, ?> profile) throws JobExecutionException {
         Map<String, Set<String>> resolvedMemberships = new HashMap<>();
-        this.memberships.entrySet().forEach(entry -> {
+        this.memberships.forEach((name, memb) -> {
             Optional<String> userKey = pullUtils.findMatchingAnyKey(
                     anyTypeDAO.findUser(),
-                    entry.getKey(),
+                    name,
                     profile.getTask().getResource(),
                     profile.getConnector());
             if (userKey.isPresent()) {
-                resolvedMemberships.put(userKey.get(), entry.getValue());
+                resolvedMemberships.put(userKey.get(), memb);
             } else {
-                LOG.warn("Could not find matching user for {}", entry.getKey());
+                LOG.warn("Could not find matching user for {}", name);
             }
         });
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
index 40d34f5..49667db 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
@@ -31,7 +31,6 @@ import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
 import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
 import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
 import org.apache.syncope.core.persistence.api.dao.GroupDAO;
-import org.apache.syncope.core.persistence.api.dao.ImplementationDAO;
 import org.apache.syncope.core.persistence.api.dao.RealmDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.Any;
@@ -111,9 +110,6 @@ public class PullUtils {
     private RealmDAO realmDAO;
 
     @Autowired
-    private ImplementationDAO implementationDAO;
-
-    @Autowired
     private AnyUtilsFactory anyUtilsFactory;
 
     @Autowired

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
index 4c07bd9..5d090b2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
@@ -200,23 +200,23 @@ public class TemplateUtils {
     public void check(final Map<String, AnyTO> templates, final ClientExceptionType clientExceptionType) {
         SyncopeClientException sce = SyncopeClientException.build(clientExceptionType);
 
-        templates.entrySet().forEach(entry -> {
-            entry.getValue().getPlainAttrs().stream().
+        templates.values().forEach(value -> {
+            value.getPlainAttrs().stream().
                     filter(attrTO -> !attrTO.getValues().isEmpty()
                     && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
                     forEachOrdered(attrTO -> {
                         sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
                     });
 
-            entry.getValue().getVirAttrs().stream().
+            value.getVirAttrs().stream().
                     filter(attrTO -> !attrTO.getValues().isEmpty()
                     && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
                     forEachOrdered((attrTO) -> {
                         sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
                     });
 
-            if (entry.getValue() instanceof UserTO) {
-                UserTO template = (UserTO) entry.getValue();
+            if (value instanceof UserTO) {
+                UserTO template = (UserTO) value;
                 if (StringUtils.isNotBlank(template.getUsername())
                         && !JexlUtils.isExpressionValid(template.getUsername())) {
 
@@ -227,8 +227,8 @@ public class TemplateUtils {
 
                     sce.getElements().add("Invalid JEXL: " + template.getPassword());
                 }
-            } else if (entry.getValue() instanceof GroupTO) {
-                GroupTO template = (GroupTO) entry.getValue();
+            } else if (value instanceof GroupTO) {
+                GroupTO template = (GroupTO) value;
                 if (StringUtils.isNotBlank(template.getName())
                         && !JexlUtils.isExpressionValid(template.getName())) {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4b12bd4/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchClientFactoryBean.java
----------------------------------------------------------------------
diff --git a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchClientFactoryBean.java b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchClientFactoryBean.java
index 0d78f7d..83be1d3 100644
--- a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchClientFactoryBean.java
+++ b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchClientFactoryBean.java
@@ -51,8 +51,8 @@ public class ElasticsearchClientFactoryBean implements FactoryBean<Client>, Disp
         synchronized (this) {
             if (client == null) {
                 Settings.Builder builder = Settings.builder();
-                settings.entrySet().forEach(entry -> {
-                    builder.put(entry.getKey(), entry.getValue());
+                settings.forEach((key, value) -> {
+                    builder.put(key, value);
                 });
 
                 PreBuiltTransportClient tClient = new PreBuiltTransportClient(builder.build());