You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2017/08/25 15:37:30 UTC

[1/6] syncope git commit: [SYNCOPE-938] Applying all Netbeans hints for upgrade to JDK 8

Repository: syncope
Updated Branches:
  refs/heads/2_0_X 4e6f6d0e4 -> 5b9cb93da
  refs/heads/master a02779a2c -> 62d3a901c


http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
index 0fc7b22..5cafb9b 100644
--- a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
+++ b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
@@ -22,8 +22,6 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.console.panels.SAML2IdPsDirectoryPanel;
 import org.apache.syncope.client.console.rest.SAML2IdPsRestClient;
@@ -103,25 +101,25 @@ public class SAML2IdPWizardBuilder extends AjaxWizardBuilder<SAML2IdPTO> {
             List<Component> fields = new ArrayList<>();
 
             FieldPanel<String> name = new AjaxTextFieldPanel(
-                    "field", "name", new PropertyModel<String>(idpTO, "name"), false);
+                    "field", "name", new PropertyModel<>(idpTO, "name"), false);
             name.setRequired(true);
             fields.add(name);
 
             AjaxCheckBoxPanel createUnmatching = new AjaxCheckBoxPanel(
-                    "field", "createUnmatching", new PropertyModel<Boolean>(idpTO, "createUnmatching"), false);
+                    "field", "createUnmatching", new PropertyModel<>(idpTO, "createUnmatching"), false);
             fields.add(createUnmatching);
 
             AjaxCheckBoxPanel updateMatching = new AjaxCheckBoxPanel(
-                    "field", "updateMatching", new PropertyModel<Boolean>(idpTO, "updateMatching"), false);
+                    "field", "updateMatching", new PropertyModel<>(idpTO, "updateMatching"), false);
             fields.add(updateMatching);
 
             AjaxCheckBoxPanel useDeflateEncoding = new AjaxCheckBoxPanel(
-                    "field", "useDeflateEncoding", new PropertyModel<Boolean>(idpTO, "useDeflateEncoding"), false);
+                    "field", "useDeflateEncoding", new PropertyModel<>(idpTO, "useDeflateEncoding"), false);
             fields.add(useDeflateEncoding);
 
             AjaxDropDownChoicePanel<SAML2BindingType> bindingType =
                     new AjaxDropDownChoicePanel<>("field", "bindingType",
-                            new PropertyModel<SAML2BindingType>(idpTO, "bindingType"), false);
+                            new PropertyModel<>(idpTO, "bindingType"), false);
             bindingType.setChoices(Arrays.asList(SAML2BindingType.values()));
             fields.add(bindingType);
 
@@ -162,13 +160,7 @@ public class SAML2IdPWizardBuilder extends AjaxWizardBuilder<SAML2IdPTO> {
 
     @Override
     protected Serializable onApplyInternal(final SAML2IdPTO modelObject) {
-        long connObjectKeyCount = IterableUtils.countMatches(modelObject.getItems(), new Predicate<ItemTO>() {
-
-            @Override
-            public boolean evaluate(final ItemTO item) {
-                return item.isConnObjectKey();
-            }
-        });
+        long connObjectKeyCount = modelObject.getItems().stream().filter(ItemTO::isConnObjectKey).count();
         if (connObjectKeyCount != 1) {
             throw new IllegalArgumentException(
                     new StringResourceModel("connObjectKeyValidation", directoryPanel).getString());

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2IdPCache.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2IdPCache.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2IdPCache.java
index e56b4f8..9333923 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2IdPCache.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2IdPCache.java
@@ -46,8 +46,7 @@ import org.w3c.dom.Element;
 @Component
 public class SAML2IdPCache {
 
-    private final Map<String, SAML2IdPEntity> cache =
-            Collections.synchronizedMap(new HashMap<String, SAML2IdPEntity>());
+    private final Map<String, SAML2IdPEntity> cache = Collections.synchronizedMap(new HashMap<>());
 
     @Autowired
     private SAML2SPLoader loader;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ServiceTimeoutServlet.java
----------------------------------------------------------------------
diff --git a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ServiceTimeoutServlet.java b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ServiceTimeoutServlet.java
index dcfe72e..65261f2 100644
--- a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ServiceTimeoutServlet.java
+++ b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ServiceTimeoutServlet.java
@@ -53,11 +53,8 @@ public class ServiceTimeoutServlet extends HttpServlet {
             // ignore
         }
 
-        final PrintWriter out = response.getWriter();
-        try {
+        try (PrintWriter out = response.getWriter()) {
             out.println("OK");
-        } finally {
-            out.close();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/ProvisioningImpl.java
----------------------------------------------------------------------
diff --git a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/ProvisioningImpl.java b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/ProvisioningImpl.java
index 6eefe5c..0a4f996 100644
--- a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/ProvisioningImpl.java
+++ b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/ProvisioningImpl.java
@@ -64,16 +64,14 @@ public class ProvisioningImpl implements Provisioning {
         try {
             conn = DataSourceUtils.getConnection(dataSource);
 
-            PreparedStatement statement =
-                conn.prepareStatement("DELETE FROM user WHERE userId=?");
-            statement.setString(1, accountid);
-
-            String query = "DELETE FROM user WHERE userId='" + accountid + "';";
-            LOG.debug("Execute query: " + query);
+            try (PreparedStatement statement = conn.prepareStatement("DELETE FROM user WHERE userId=?")) {
+                statement.setString(1, accountid);
 
-            statement.executeUpdate();
+                String query = "DELETE FROM user WHERE userId='" + accountid + "';";
+                LOG.debug("Execute query: " + query);
 
-            statement.close();
+                statement.executeUpdate();
+            }
 
             return accountid;
         } catch (SQLException e) {
@@ -108,9 +106,9 @@ public class ProvisioningImpl implements Provisioning {
 
         List<WSAttribute> schema = schema();
         Set<String> schemaNames = new HashSet<>();
-        for (WSAttribute attr : schema) {
+        schema.forEach(attr -> {
             schemaNames.add(attr.getName());
-        }
+        });
         schemaNames.add("__NAME__");
         schemaNames.add("__PASSWORD__");
 
@@ -159,14 +157,14 @@ public class ProvisioningImpl implements Provisioning {
             }
 
             if (set.length() > 0) {
-                PreparedStatement statement =
-                    conn.prepareStatement("UPDATE user SET " + set.toString() + " WHERE userId=?");
-                statement.setString(1, accountid);
-                String query = "UPDATE user SET " + set.toString() + " WHERE userId='" + accountid + "';";
-                LOG.debug("Execute query: " + query);
+                try (PreparedStatement statement =
+                        conn.prepareStatement("UPDATE user SET " + set.toString() + " WHERE userId=?")) {
+                    statement.setString(1, accountid);
+                    String query = "UPDATE user SET " + set.toString() + " WHERE userId='" + accountid + "';";
+                    LOG.debug("Execute query: " + query);
 
-                statement.executeUpdate();
-                statement.close();
+                    statement.executeUpdate();
+                }
             }
 
             return accountid;
@@ -200,36 +198,32 @@ public class ProvisioningImpl implements Provisioning {
             }
 
             conn = DataSourceUtils.getConnection(dataSource);
-            Statement statement = conn.createStatement();
-
-            ResultSet rs = statement.executeQuery(queryString);
-
-            ResultSetMetaData metaData = rs.getMetaData();
-            LOG.debug("Metadata: {}", metaData);
-
-            while (rs.next()) {
-                WSUser user = new WSUser();
+            try (Statement statement = conn.createStatement(); ResultSet rs = statement.executeQuery(queryString)) {
+                ResultSetMetaData metaData = rs.getMetaData();
+                LOG.debug("Metadata: {}", metaData);
+
+                while (rs.next()) {
+                    WSUser user = new WSUser();
+
+                    for (int i = 0; i < metaData.getColumnCount(); i++) {
+                        WSAttributeValue attr = new WSAttributeValue();
+                        attr.setName(metaData.getColumnLabel(i + 1));
+                        if (StringUtil.isNotBlank(rs.getString(i + 1))) {
+                            attr.addValue(rs.getString(i + 1));
+                        }
+                        if ("userId".equalsIgnoreCase(metaData.getColumnName(i + 1))) {
+                            attr.setKey(true);
+                            user.setAccountid(rs.getString(i + 1));
+                        }
 
-                for (int i = 0; i < metaData.getColumnCount(); i++) {
-                    WSAttributeValue attr = new WSAttributeValue();
-                    attr.setName(metaData.getColumnLabel(i + 1));
-                    if (StringUtil.isNotBlank(rs.getString(i + 1))) {
-                        attr.addValue(rs.getString(i + 1));
-                    }
-                    if ("userId".equalsIgnoreCase(metaData.getColumnName(i + 1))) {
-                        attr.setKey(true);
-                        user.setAccountid(rs.getString(i + 1));
+                        user.addAttribute(attr);
                     }
 
-                    user.addAttribute(attr);
+                    results.add(user);
                 }
 
-                results.add(user);
+                LOG.debug("Retrieved users: {}", results);
             }
-
-            LOG.debug("Retrieved users: {}", results);
-            rs.close();
-            statement.close();
         } catch (SQLException e) {
             LOG.error("Search operation failed", e);
         } finally {
@@ -245,9 +239,9 @@ public class ProvisioningImpl implements Provisioning {
 
         final List<WSAttribute> schema = schema();
         final Set<String> schemaNames = new HashSet<>();
-        for (WSAttribute attr : schema) {
+        schema.forEach(attr -> {
             schemaNames.add(attr.getName());
-        }
+        });
         schemaNames.add("__NAME__");
         schemaNames.add("__PASSWORD__");
 
@@ -255,65 +249,60 @@ public class ProvisioningImpl implements Provisioning {
         String query = null;
         try {
             conn = DataSourceUtils.getConnection(dataSource);
-            final Statement statement = conn.createStatement();
-
-            final StringBuilder keys = new StringBuilder();
-            final StringBuilder values = new StringBuilder();
-
-            String accountid = null;
-            String value;
-            for (WSAttributeValue attr : data) {
-                if (schemaNames.contains(attr.getName())) {
-                    LOG.debug("Bind attribute: {}", attr);
-
-                    if (attr.getValues() == null || attr.getValues().isEmpty()) {
-                        value = null;
-                    } else if (attr.getValues().size() == 1) {
-                        value = attr.getValues().get(0).toString();
-                    } else {
-                        value = attr.getValues().toString();
-                    }
+            String accountid;
+            try (Statement statement = conn.createStatement()) {
+                final StringBuilder keys = new StringBuilder();
+                final StringBuilder values = new StringBuilder();
+                accountid = null;
+                String value;
+                for (WSAttributeValue attr : data) {
+                    if (schemaNames.contains(attr.getName())) {
+                        LOG.debug("Bind attribute: {}", attr);
+
+                        if (attr.getValues() == null || attr.getValues().isEmpty()) {
+                            value = null;
+                        } else if (attr.getValues().size() == 1) {
+                            value = attr.getValues().get(0).toString();
+                        } else {
+                            value = attr.getValues().toString();
+                        }
 
-                    if (keys.length() > 0) {
-                        keys.append(",");
-                    }
+                        if (keys.length() > 0) {
+                            keys.append(",");
+                        }
 
-                    if (null == attr.getName()) {
-                        keys.append(attr.getName());
-                    } else {
-                        switch (attr.getName()) {
-                            case "__NAME__":
-                                keys.append("userId");
-                                break;
-                            case "__PASSWORD__":
-                                keys.append("password");
-                                break;
-                            default:
-                                keys.append(attr.getName());
-                                break;
+                        if (null == attr.getName()) {
+                            keys.append(attr.getName());
+                        } else {
+                            switch (attr.getName()) {
+                                case "__NAME__":
+                                    keys.append("userId");
+                                    break;
+                                case "__PASSWORD__":
+                                    keys.append("password");
+                                    break;
+                                default:
+                                    keys.append(attr.getName());
+                                    break;
+                            }
                         }
-                    }
 
-                    if (values.length() > 0) {
-                        values.append(",");
-                    }
+                        if (values.length() > 0) {
+                            values.append(",");
+                        }
 
-                    values.append(value == null ? null : "'" + value + "'");
+                        values.append(value == null ? null : "'" + value + "'");
 
-                    if (attr.isKey() && !attr.getValues().isEmpty()) {
-                        accountid = attr.getValues().get(0).toString();
+                        if (attr.isKey() && !attr.getValues().isEmpty()) {
+                            accountid = attr.getValues().get(0).toString();
+                        }
                     }
                 }
+                query = "INSERT INTO user (" + keys.toString() + ") VALUES (" + values.toString() + ")";
+                LOG.debug("Execute query: " + query);
+                statement.executeUpdate(query);
             }
 
-            query = "INSERT INTO user (" + keys.toString() + ") VALUES (" + values.toString() + ")";
-
-            LOG.debug("Execute query: " + query);
-
-            statement.executeUpdate(query);
-
-            statement.close();
-
             return accountid;
         } catch (SQLException e) {
             LOG.error("Creation failed:\n" + query, e);
@@ -352,7 +341,7 @@ public class ProvisioningImpl implements Provisioning {
         try {
             conn = DataSourceUtils.getConnection(dataSource);
             PreparedStatement statement =
-                conn.prepareStatement("SELECT userId FROM user WHERE userId=?");
+                    conn.prepareStatement("SELECT userId FROM user WHERE userId=?");
             statement.setString(1, username);
 
             final String query = "SELECT userId FROM user WHERE userId='" + username + "';";

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
index 32b3357..6e8e170 100644
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
@@ -205,20 +205,16 @@ public class ITImplementationLookup implements ImplementationLookup {
         // in case the Elasticsearch extension is enabled, reinit a clean index for all available domains
         if (AopUtils.getTargetClass(anySearchDAO).getName().contains("Elasticsearch")) {
             for (Map.Entry<String, DataSource> entry : domainsHolder.getDomains().entrySet()) {
-                AuthContextUtils.execWithAuthContext(entry.getKey(), new AuthContextUtils.Executable<Void>() {
+                AuthContextUtils.execWithAuthContext(entry.getKey(), () -> {
+                    SchedTaskTO task = new SchedTaskTO();
+                    task.setJobDelegateClassName(
+                            "org.apache.syncope.core.provisioning.java.job.ElasticsearchReindex");
+                    task.setName("Elasticsearch Reindex");
+                    task = taskLogic.createSchedTask(task);
 
-                    @Override
-                    public Void exec() {
-                        SchedTaskTO task = new SchedTaskTO();
-                        task.setJobDelegateClassName(
-                                "org.apache.syncope.core.provisioning.java.job.ElasticsearchReindex");
-                        task.setName("Elasticsearch Reindex");
-                        task = taskLogic.createSchedTask(task);
+                    taskLogic.execute(task.getKey(), null, false);
 
-                        taskLogic.execute(task.getKey(), null, false);
-
-                        return null;
-                    }
+                    return null;
                 });
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
index fcb6173..5ba0f70 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
@@ -26,13 +26,11 @@ import org.apache.syncope.common.rest.api.service.SyncopeService;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.core.util.lang.PropertyResolver;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTester;
 import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
 import org.junit.BeforeClass;
 import org.junit.FixMethodOrder;
 import org.junit.runners.MethodSorters;
@@ -82,18 +80,14 @@ public abstract class AbstractConsoleITCase {
 
         Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
         return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
-                visitChildren(ListItem.class, new IVisitor<ListItem<?>, Component>() {
-
-                    @Override
-                    public void component(final ListItem<?> object, final IVisit<Component> visit) {
-                        try {
-                            Method getter = PropertyResolver.getPropertyGetter(property, object.getModelObject());
-                            if (getter != null && getter.invoke(object.getModelObject()).equals(key)) {
-                                visit.stop(object);
-                            }
-                        } catch (Exception e) {
-                            LOG.error("Error invoke method", e);
+                visitChildren(ListItem.class, (final ListItem<?> object, final IVisit<Component> visit) -> {
+                    try {
+                        Method getter = PropertyResolver.getPropertyGetter(property, object.getModelObject());
+                        if (getter != null && getter.invoke(object.getModelObject()).equals(key)) {
+                            visit.stop(object);
                         }
+                    } catch (Exception e) {
+                        LOG.error("Error invoke method", e);
                     }
                 });
     }
@@ -101,22 +95,18 @@ public abstract class AbstractConsoleITCase {
     protected Component findComponentById(final String searchPath, final String id) {
         Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
         return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
-                visitChildren(Component.class, new IVisitor<Component, Component>() {
-
-                    @Override
-                    public void component(final Component object, final IVisit<Component> visit) {
-                        if (object.getId().equals(id)) {
-                            visit.stop(object);
-                        }
+                visitChildren(Component.class, (final Component object, final IVisit<Component> visit) -> {
+                    if (object.getId().equals(id)) {
+                        visit.stop(object);
                     }
                 });
     }
 
     protected void closeCallBack(final Component modal) {
-        for (Behavior behavior : modal.getBehaviors()) {
-            if (behavior instanceof AbstractAjaxBehavior) {
-                TESTER.executeBehavior((AbstractAjaxBehavior) behavior);
-            }
-        }
+        modal.getBehaviors().stream().
+                filter(behavior -> (behavior instanceof AbstractAjaxBehavior)).
+                forEachOrdered(behavior -> {
+                    TESTER.executeBehavior((AbstractAjaxBehavior) behavior);
+                });
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
index e076c8c..904afab 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
@@ -30,7 +30,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -98,18 +97,14 @@ public class LogsITCase extends AbstractConsoleITCase {
         Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
 
         Component result = component.getPage().
-                visitChildren(ListItem.class, new IVisitor<ListItem<LoggerTO>, Component>() {
-
-                    @Override
-                    public void component(final ListItem<LoggerTO> object, final IVisit<Component> visit) {
-                        try {
-                            if (object.getModelObject() instanceof LoggerTO && PropertyResolver.getPropertyGetter(
-                                    property, object.getModelObject()).invoke(object.getModelObject()).equals(key)) {
-                                visit.stop(object);
-                            }
-                        } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
-                            LOG.error("Error invoke method", ex);
+                visitChildren(ListItem.class, (final ListItem<LoggerTO> object, final IVisit<Component> visit) -> {
+                    try {
+                        if (object.getModelObject() instanceof LoggerTO && PropertyResolver.getPropertyGetter(
+                                property, object.getModelObject()).invoke(object.getModelObject()).equals(key)) {
+                            visit.stop(object);
                         }
+                    } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
+                        LOG.error("Error invoke method", ex);
                     }
                 });
         return result;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/installer/src/main/java/org/apache/syncope/installer/utilities/HttpUtils.java
----------------------------------------------------------------------
diff --git a/installer/src/main/java/org/apache/syncope/installer/utilities/HttpUtils.java b/installer/src/main/java/org/apache/syncope/installer/utilities/HttpUtils.java
index 3c121ca..dfc17d9 100644
--- a/installer/src/main/java/org/apache/syncope/installer/utilities/HttpUtils.java
+++ b/installer/src/main/java/org/apache/syncope/installer/utilities/HttpUtils.java
@@ -141,13 +141,12 @@ public class HttpUtils {
         try {
             final HttpPost httPost = httpPost(url, new StringEntity(stringEntity));
             httPost.addHeader("Content-Type", ContentType.APPLICATION_JSON.getMimeType());
-            final CloseableHttpResponse response = httpClient.execute(
-                    targetHost, httPost, setAuth(targetHost, new DigestScheme()));
-            status = response.getStatusLine().getStatusCode();
-            handler.logOutput("Http status: " + status, true);
-            InstallLog.getInstance().info("Http status: " + status);
-
-            response.close();
+            try (CloseableHttpResponse response =
+                    httpClient.execute(targetHost, httPost, setAuth(targetHost, new DigestScheme()))) {
+                status = response.getStatusLine().getStatusCode();
+                handler.logOutput("Http status: " + status, true);
+                InstallLog.getInstance().info("Http status: " + status);
+            }
         } catch (final IOException ioe) {
             final String messageError = "Error calling " + url + ": " + ioe.getMessage();
             handler.emitError(messageError, messageError);


[6/6] syncope git commit: [SYNCOPE-1197] SAML label must be hidden when no IdPs are configured

Posted by il...@apache.org.
[SYNCOPE-1197] SAML label must be hidden when no IdPs are configured


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

Branch: refs/heads/master
Commit: 62d3a901c2bc24c73670591943d0ef1f02d91977
Parents: 5be24a0
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Aug 25 17:37:12 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Aug 25 17:37:21 2017 +0200

----------------------------------------------------------------------
 .../src/main/resources/META-INF/resources/app/views/self.html      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/62d3a901/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
index f895c1b..7d388a5 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
@@ -53,7 +53,7 @@ under the License.
                           ng-click="login(credentials)">Login</button>
                 </div>
                 <div class="form-group">
-                  <span>SAML 2.0</span>
+                  <span ng-if="$root.saml2spExtAvailable()">SAML 2.0</span>
                   <select id="saml2sp" style="width: 100%; text-align: left;" class="btn dropdown-toggle btn-default"
                           ng-if="$root.saml2spExtAvailable()"
                           ng-options="idp.name for idp in saml2idps.available track by idp.entityID"


[3/6] syncope git commit: [SYNCOPE-938] Applying all Netbeans hints for upgrade to JDK 8

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/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 c92f0ea..e707611 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
@@ -105,7 +105,7 @@ public class Topology extends BasePage {
         protected Map<String, List<ConnInstanceTO>> load() {
             final Map<String, List<ConnInstanceTO>> res = new HashMap<>();
 
-            for (ConnInstanceTO conn : connectorRestClient.getAllConnectors()) {
+            connectorRestClient.getAllConnectors().forEach(conn -> {
                 final List<ConnInstanceTO> conns;
                 if (res.containsKey(conn.getLocation())) {
                     conns = res.get(conn.getLocation());
@@ -114,7 +114,7 @@ public class Topology extends BasePage {
                     res.put(conn.getLocation(), conns);
                 }
                 conns.add(conn);
-            }
+            });
 
             return res;
         }
@@ -130,13 +130,13 @@ public class Topology extends BasePage {
             final List<URI> connectorServers = new ArrayList<>();
             final List<URI> filePaths = new ArrayList<>();
 
-            for (String location : SyncopeConsoleSession.get().getPlatformInfo().getConnIdLocations()) {
+            SyncopeConsoleSession.get().getPlatformInfo().getConnIdLocations().forEach(location -> {
                 if (location.startsWith(CONNECTOR_SERVER_LOCATION_PREFIX)) {
                     connectorServers.add(URI.create(location));
                 } else {
                     filePaths.add(URI.create(location));
                 }
-            }
+            });
 
             return Pair.of(connectorServers, filePaths);
         }
@@ -248,7 +248,7 @@ public class Topology extends BasePage {
                 item.add(topologyNodePanel("cs", topologynode));
 
                 syncopeConnections.put(url, topologynode);
-                connections.put(url, new HashMap<Serializable, TopologyNode>());
+                connections.put(url, new HashMap<>());
             }
         };
 
@@ -287,7 +287,7 @@ public class Topology extends BasePage {
                 item.add(topologyNodePanel("fp", topologynode));
 
                 syncopeConnections.put(url, topologynode);
-                connections.put(url, new HashMap<Serializable, TopologyNode>());
+                connections.put(url, new HashMap<>());
             }
         };
 
@@ -371,32 +371,28 @@ public class Topology extends BasePage {
         // Add Resources
         // -----------------------------------------
         final Collection<String> administrableConns = new HashSet<>();
-        for (List<ConnInstanceTO> connInstances : connModel.getObject().values()) {
+        connModel.getObject().values().forEach(connInstances -> {
             administrableConns.addAll(connInstances.stream().map(EntityTO::getKey).collect(Collectors.toList()));
-        }
+        });
 
         final List<String> connToBeProcessed = new ArrayList<>();
-        for (final ResourceTO resourceTO : resModel.getObject()) {
-            if (administrableConns.contains(resourceTO.getConnector())) {
-                final TopologyNode topologynode = new TopologyNode(
-                        resourceTO.getKey(), resourceTO.getKey(), TopologyNode.Kind.RESOURCE);
-
-                final Map<Serializable, TopologyNode> remoteConnections;
-
-                if (connections.containsKey(resourceTO.getConnector())) {
-                    remoteConnections = connections.get(resourceTO.getConnector());
-                } else {
-                    remoteConnections = new HashMap<>();
-                    connections.put(resourceTO.getConnector(), remoteConnections);
-                }
-
-                remoteConnections.put(topologynode.getKey(), topologynode);
-
-                if (!connToBeProcessed.contains(resourceTO.getConnector())) {
-                    connToBeProcessed.add(resourceTO.getConnector());
-                }
-            }
-        }
+        resModel.getObject().stream().
+                filter((resourceTO) -> (administrableConns.contains(resourceTO.getConnector()))).
+                forEachOrdered(resourceTO -> {
+                    final TopologyNode topologynode = new TopologyNode(
+                            resourceTO.getKey(), resourceTO.getKey(), TopologyNode.Kind.RESOURCE);
+                    final Map<Serializable, TopologyNode> remoteConnections;
+                    if (connections.containsKey(resourceTO.getConnector())) {
+                        remoteConnections = connections.get(resourceTO.getConnector());
+                    } else {
+                        remoteConnections = new HashMap<>();
+                        connections.put(resourceTO.getConnector(), remoteConnections);
+                    }
+                    remoteConnections.put(topologynode.getKey(), topologynode);
+                    if (!connToBeProcessed.contains(resourceTO.getConnector())) {
+                        connToBeProcessed.add(resourceTO.getConnector());
+                    }
+                });
 
         final ListView<String> resources = new ListView<String>("resources", connToBeProcessed) {
 
@@ -466,9 +462,9 @@ public class Topology extends BasePage {
                 final StringBuilder jsPlumbConf = new StringBuilder();
                 jsPlumbConf.append(String.format(Locale.US, "activate(%.2f);", 0.68f));
 
-                for (String str : createConnections(connections)) {
+                createConnections(connections).forEach(str -> {
                     jsPlumbConf.append(str);
-                }
+                });
 
                 response.render(OnDomReadyHeaderItem.forScript(jsPlumbConf.toString()));
             }
@@ -521,14 +517,14 @@ public class Topology extends BasePage {
     private List<String> createConnections(final Map<Serializable, Map<Serializable, TopologyNode>> targets) {
         List<String> list = new ArrayList<>();
 
-        for (Map.Entry<Serializable, Map<Serializable, TopologyNode>> source : targets.entrySet()) {
-            for (Map.Entry<Serializable, TopologyNode> target : source.getValue().entrySet()) {
+        targets.entrySet().forEach(source -> {
+            source.getValue().entrySet().forEach(target -> {
                 list.add(String.format("connect('%s','%s','%s');",
                         source.getKey(),
                         target.getKey(),
                         target.getValue().getKind()));
-            }
-        }
+            });
+        });
         return list;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
index b8bc02f..9cfa769 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
@@ -43,8 +43,6 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.OddEvenItem;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
 
 public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable<T, S> {
 
@@ -142,29 +140,18 @@ public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable<
                             final AjaxDataTablePanel<?, ?> parent = findParent(AjaxDataTablePanel.class);
                             final Model<Boolean> isCheck = Model.<Boolean>of(Boolean.FALSE);
 
-                            parent.visitChildren(CheckGroupSelector.class,
-                                    new IVisitor<CheckGroupSelector, List<CheckGroupSelector>>() {
-
-                                @Override
-                                public void component(
-                                        final CheckGroupSelector t,
-                                        final IVisit<List<CheckGroupSelector>> ivisit) {
-                                    if (t.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) {
-                                        isCheck.setObject(Boolean.TRUE);
-                                        ivisit.stop();
-                                    }
+                            parent.visitChildren(CheckGroupSelector.class, (selector, ivisit) -> {
+                                if (selector.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) {
+                                    isCheck.setObject(Boolean.TRUE);
+                                    ivisit.stop();
                                 }
                             });
 
                             if (!isCheck.getObject()) {
-                                parent.visitChildren(Check.class, new IVisitor<Check<?>, List<Check<?>>>() {
-
-                                    @Override
-                                    public void component(final Check<?> t, final IVisit<List<Check<?>>> ivisit) {
-                                        if (t.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) {
-                                            isCheck.setObject(Boolean.TRUE);
-                                            ivisit.stop();
-                                        }
+                                parent.visitChildren(Check.class, (check, ivisit) -> {
+                                    if (check.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) {
+                                        isCheck.setObject(Boolean.TRUE);
+                                        ivisit.stop();
                                     }
                                 });
                             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
index 191b2a8..8020b70 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateFieldPanel.java
@@ -37,7 +37,7 @@ public class AjaxDateFieldPanel extends DateFieldPanel {
 
     @Override
     public FieldPanel<Date> clone() {
-        final FieldPanel<Date> panel = new AjaxDateFieldPanel(getId(), name, new Model<Date>(), fmt.getPattern());
+        FieldPanel<Date> panel = new AjaxDateFieldPanel(getId(), name, new Model<>(), fmt.getPattern());
         panel.setRequired(isRequired());
         panel.setReadOnly(isReadOnly());
         panel.setTitle(title);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
index 04c100af..723dd00 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
@@ -38,9 +38,7 @@ public class AjaxDateTimeFieldPanel extends DateFieldPanel {
 
     @Override
     public FieldPanel<Date> clone() {
-        final FieldPanel<Date> panel =
-                new AjaxDateTimeFieldPanel(getId(), name, new Model<Date>(null), fmt.getPattern());
-
+        FieldPanel<Date> panel = new AjaxDateTimeFieldPanel(getId(), name, new Model<>(null), fmt.getPattern());
         panel.setRequired(isRequired());
         panel.setReadOnly(isReadOnly());
         panel.setTitle(title);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
index 5edea5b..659140f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
@@ -165,7 +165,7 @@ public class BinaryFieldPanel extends FieldPanel<String> {
         config.showRemove(false);
         config.showPreview(false);
 
-        fileUpload = new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<FileUpload>()), config);
+        fileUpload = new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<>()), config);
         fileUpload.setOutputMarkupId(true);
 
         fileUpload.add(new AjaxFormSubmitBehavior(Constants.ON_CHANGE) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
index 0f31060..9df9c01 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/FieldPanel.java
@@ -69,7 +69,7 @@ public abstract class FieldPanel<T extends Serializable> extends AbstractFieldPa
                 Model.<String>of(),
                 title == null ? Model.<String>of() : Model.of(title),
                 new PopoverConfig().withHtml(html).withHoverTrigger().withPlacement(
-                index.getObject() != null && index.getObject() == 0
+                        index.getObject() != null && index.getObject() == 0
                         ? TooltipConfig.Placement.bottom
                         : this instanceof AjaxCheckBoxPanel
                                 ? TooltipConfig.Placement.right
@@ -121,7 +121,7 @@ public abstract class FieldPanel<T extends Serializable> extends AbstractFieldPa
     }
 
     public FieldPanel<T> setNewModel(final IModel<T> model) {
-        field.setModel(model == null ? new Model<T>() : model);
+        field.setModel(model == null ? new Model<>() : model);
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/IndicatingOnConfirmAjaxLink.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/IndicatingOnConfirmAjaxLink.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/IndicatingOnConfirmAjaxLink.java
index a005baf..931d679 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/IndicatingOnConfirmAjaxLink.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/IndicatingOnConfirmAjaxLink.java
@@ -69,7 +69,7 @@ public abstract class IndicatingOnConfirmAjaxLink<T> extends IndicatingAjaxLink<
                             + "  })"
                             + "} else {"
                             + "  proceed = false;"
-                            + "};", new ArrayList<CharSequence>()
+                            + "};", new ArrayList<>()
                     )).asDomReadyScript());
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
index 3711054..bc4ef01 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
@@ -82,7 +82,7 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
                 || Constants.GUARDED_STRING.equalsIgnoreCase(property.getSchema().getType())
                 || Constants.GUARDED_BYTE_ARRAY.equalsIgnoreCase(property.getSchema().getType())) {
 
-            field = new AjaxPasswordFieldPanel("panel", label, new Model<String>(), false);
+            field = new AjaxPasswordFieldPanel("panel", label, new Model<>(), false);
             ((PasswordTextField) field.getField()).setResetPassword(false);
 
             required = property.getSchema().isRequired();
@@ -101,12 +101,12 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
             if (ClassUtils.isAssignable(Number.class, propertySchemaClass)) {
                 @SuppressWarnings("unchecked")
                 Class<Number> numberClass = (Class<Number>) propertySchemaClass;
-                field = new AjaxSpinnerFieldPanel.Builder<>().build("panel", label, numberClass, new Model<Number>());
+                field = new AjaxSpinnerFieldPanel.Builder<>().build("panel", label, numberClass, new Model<>());
                 required = property.getSchema().isRequired();
             } else if (ClassUtils.isAssignable(Boolean.class, propertySchemaClass)) {
-                field = new AjaxCheckBoxPanel("panel", label, new Model<Boolean>());
+                field = new AjaxCheckBoxPanel("panel", label, new Model<>());
             } else {
-                field = new AjaxTextFieldPanel("panel", label, new Model<String>());
+                field = new AjaxTextFieldPanel("panel", label, new Model<>());
                 required = property.getSchema().isRequired();
             }
 
@@ -121,8 +121,7 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
         final AbstractFieldPanel<? extends Serializable> fieldPanel;
         if (isArray) {
             final MultiFieldPanel multiFieldPanel = new MultiFieldPanel.Builder(
-                    new PropertyModel<List<String>>(property, "values")).setEventTemplate(true).build(
-                    "panel", label, field);
+                    new PropertyModel<>(property, "values")).setEventTemplate(true).build("panel", label, field);
             item.add(multiFieldPanel);
             fieldPanel = multiFieldPanel;
         } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index c7839ca..99d0cd2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -334,11 +334,11 @@ public class JobWidget extends BaseWidget {
         protected List<IColumn<JobTO, String>> getColumns() {
             List<IColumn<JobTO, String>> columns = new ArrayList<>();
 
-            columns.add(new PropertyColumn<JobTO, String>(new ResourceModel("refDesc"), "refDesc", "refDesc"));
+            columns.add(new PropertyColumn<>(new ResourceModel("refDesc"), "refDesc", "refDesc"));
 
-            columns.add(new BooleanPropertyColumn<JobTO>(new ResourceModel("scheduled"), "scheduled", "scheduled"));
+            columns.add(new BooleanPropertyColumn<>(new ResourceModel("scheduled"), "scheduled", "scheduled"));
 
-            columns.add(new DatePropertyColumn<JobTO>(new ResourceModel("start"), "start", "start"));
+            columns.add(new DatePropertyColumn<>(new ResourceModel("start"), "start", "start"));
 
             columns.add(new AbstractColumn<JobTO, String>(new Model<>(""), "running") {
 
@@ -351,8 +351,8 @@ public class JobWidget extends BaseWidget {
                         final IModel<JobTO> rowModel) {
 
                     JobTO jobTO = rowModel.getObject();
-                    JobActionPanel panel
-                            = new JobActionPanel(componentId, jobTO, JobWidget.this, pageRef);
+                    JobActionPanel panel =
+                            new JobActionPanel(componentId, jobTO, JobWidget.this, pageRef);
                     MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE,
                             String.format("%s,%s%s,%s",
                                     StandardEntitlement.TASK_EXECUTE,
@@ -407,8 +407,8 @@ public class JobWidget extends BaseWidget {
                             SchedTaskTO schedTaskTO = new TaskRestClient().
                                     readSchedTask(SchedTaskTO.class, jobTO.getRefKey());
 
-                            SchedTaskWizardBuilder<SchedTaskTO> swb
-                                    = new SchedTaskWizardBuilder<>(schedTaskTO, pageRef);
+                            SchedTaskWizardBuilder<SchedTaskTO> swb =
+                                    new SchedTaskWizardBuilder<>(schedTaskTO, pageRef);
                             swb.setEventSink(AvailableJobsPanel.this);
 
                             target.add(jobModal.setContent(swb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
@@ -567,13 +567,13 @@ public class JobWidget extends BaseWidget {
         protected List<IColumn<ExecTO, String>> getColumns() {
             List<IColumn<ExecTO, String>> columns = new ArrayList<>();
 
-            columns.add(new PropertyColumn<ExecTO, String>(new ResourceModel("refDesc"), "refDesc", "refDesc"));
+            columns.add(new PropertyColumn<>(new ResourceModel("refDesc"), "refDesc", "refDesc"));
 
-            columns.add(new DatePropertyColumn<ExecTO>(new ResourceModel("start"), "start", "start"));
+            columns.add(new DatePropertyColumn<>(new ResourceModel("start"), "start", "start"));
 
-            columns.add(new DatePropertyColumn<ExecTO>(new ResourceModel("end"), "end", "end"));
+            columns.add(new DatePropertyColumn<>(new ResourceModel("end"), "end", "end"));
 
-            columns.add(new PropertyColumn<ExecTO, String>(new ResourceModel("status"), "status", "status"));
+            columns.add(new PropertyColumn<>(new ResourceModel("status"), "status", "status"));
 
             return columns;
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationDetailsModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationDetailsModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationDetailsModalPanel.java
index 5fd1e62..15accd3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationDetailsModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationDetailsModalPanel.java
@@ -110,7 +110,7 @@ public class ReconciliationDetailsModalPanel extends AbstractModalPanel<Any> {
         protected List<IColumn<Misaligned, String>> getColumns() {
             List<IColumn<Misaligned, String>> columns = new ArrayList<>();
 
-            columns.add(new PropertyColumn<Misaligned, String>(new ResourceModel("key"), "name", "name"));
+            columns.add(new PropertyColumn<>(new ResourceModel("key"), "name", "name"));
 
             columns.add(new AbstractColumn<Misaligned, String>(Model.of("Syncope")) {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractMappingPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractMappingPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractMappingPanel.java
index 5532f86..f344917 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractMappingPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractMappingPanel.java
@@ -27,7 +27,6 @@ import java.lang.reflect.Modifier;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -86,7 +85,7 @@ public abstract class AbstractMappingPanel extends Panel {
     private static void initFieldNames(final Class<?> entityClass, final Set<String> keys) {
         List<Class<?>> classes = ClassUtils.getAllSuperclasses(entityClass);
         classes.add(entityClass);
-        for (Class<?> clazz : classes) {
+        classes.forEach(clazz -> {
             for (Field field : clazz.getDeclaredFields()) {
                 if (!Modifier.isStatic(field.getModifiers())
                         && !Collection.class.isAssignableFrom(field.getType())
@@ -95,7 +94,7 @@ public abstract class AbstractMappingPanel extends Panel {
                     keys.add(field.getName());
                 }
             }
-        }
+        });
     }
 
     /**
@@ -169,47 +168,43 @@ public abstract class AbstractMappingPanel extends Panel {
 
         mappingContainer.add(Constants.getJEXLPopover(this, TooltipConfig.Placement.bottom));
 
-        Collections.sort(model.getObject(), new Comparator<ItemTO>() {
-
-            @Override
-            public int compare(final ItemTO left, final ItemTO right) {
-                int compared;
-                if (left == null && right == null) {
-                    compared = 0;
-                } else if (left == null) {
-                    compared = 1;
-                } else if (right == null) {
-                    compared = -1;
-                } else if (left.isConnObjectKey()) {
-                    compared = -1;
-                } else if (right.isConnObjectKey()) {
-                    compared = 1;
-                } else if (left.isPassword()) {
-                    compared = -1;
-                } else if (right.isPassword()) {
-                    compared = 1;
-                } else if (left.getPurpose() == MappingPurpose.BOTH && right.getPurpose() != MappingPurpose.BOTH) {
-                    compared = -1;
-                } else if (left.getPurpose() != MappingPurpose.BOTH && right.getPurpose() == MappingPurpose.BOTH) {
-                    compared = 1;
-                } else if (left.getPurpose() == MappingPurpose.PROPAGATION
-                        && (right.getPurpose() == MappingPurpose.PULL
-                        || right.getPurpose() == MappingPurpose.NONE)) {
-                    compared = -1;
-                } else if (left.getPurpose() == MappingPurpose.PULL
-                        && right.getPurpose() == MappingPurpose.PROPAGATION) {
-                    compared = 1;
-                } else if (left.getPurpose() == MappingPurpose.PULL
-                        && right.getPurpose() == MappingPurpose.NONE) {
-                    compared = -1;
-                } else if (left.getPurpose() == MappingPurpose.NONE
-                        && right.getPurpose() != MappingPurpose.NONE) {
-                    compared = 1;
-                } else {
-                    compared = left.getIntAttrName().compareTo(right.getIntAttrName());
-                }
-                return compared;
+        Collections.sort(model.getObject(), (left, right) -> {
+            int compared;
+            if (left == null && right == null) {
+                compared = 0;
+            } else if (left == null) {
+                compared = 1;
+            } else if (right == null) {
+                compared = -1;
+            } else if (left.isConnObjectKey()) {
+                compared = -1;
+            } else if (right.isConnObjectKey()) {
+                compared = 1;
+            } else if (left.isPassword()) {
+                compared = -1;
+            } else if (right.isPassword()) {
+                compared = 1;
+            } else if (left.getPurpose() == MappingPurpose.BOTH && right.getPurpose() != MappingPurpose.BOTH) {
+                compared = -1;
+            } else if (left.getPurpose() != MappingPurpose.BOTH && right.getPurpose() == MappingPurpose.BOTH) {
+                compared = 1;
+            } else if (left.getPurpose() == MappingPurpose.PROPAGATION
+                    && (right.getPurpose() == MappingPurpose.PULL
+                    || right.getPurpose() == MappingPurpose.NONE)) {
+                compared = -1;
+            } else if (left.getPurpose() == MappingPurpose.PULL
+                    && right.getPurpose() == MappingPurpose.PROPAGATION) {
+                compared = 1;
+            } else if (left.getPurpose() == MappingPurpose.PULL
+                    && right.getPurpose() == MappingPurpose.NONE) {
+                compared = -1;
+            } else if (left.getPurpose() == MappingPurpose.NONE
+                    && right.getPurpose() != MappingPurpose.NONE) {
+                compared = 1;
+            } else {
+                compared = left.getIntAttrName().compareTo(right.getIntAttrName());
             }
+            return compared;
         });
 
         mappings = new ListView<ItemTO>("mappings", model) {
@@ -229,7 +224,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 AjaxTextFieldPanel intAttrName = new AjaxTextFieldPanel(
                         "intAttrName",
                         getString("intAttrName"),
-                        new PropertyModel<String>(itemTO, "intAttrName"),
+                        new PropertyModel<>(itemTO, "intAttrName"),
                         false);
                 intAttrName.setChoices(Collections.<String>emptyList());
                 intAttrName.setRequired(true).hideLabel();
@@ -242,7 +237,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 final AjaxTextFieldPanel extAttrName = new AjaxTextFieldPanel(
                         "extAttrName",
                         getString("extAttrName"),
-                        new PropertyModel<String>(itemTO, "extAttrName"));
+                        new PropertyModel<>(itemTO, "extAttrName"));
                 extAttrName.setChoices(getExtAttrNames().getObject());
 
                 boolean required = !itemTO.isPassword();
@@ -271,7 +266,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 final AjaxTextFieldPanel mandatory = new AjaxTextFieldPanel(
                         "mandatoryCondition",
                         new ResourceModel("mandatoryCondition", "mandatoryCondition").getObject(),
-                        new PropertyModel<String>(itemTO, "mandatoryCondition"));
+                        new PropertyModel<>(itemTO, "mandatoryCondition"));
                 mandatory.hideLabel();
                 mandatory.setChoices(Arrays.asList(new String[] { "true", "false" }));
                 mandatory.setEnabled(!itemTO.isConnObjectKey());
@@ -284,7 +279,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 final AjaxCheckBoxPanel connObjectKey = new AjaxCheckBoxPanel(
                         "connObjectKey",
                         new ResourceModel("connObjectKey", "connObjectKey").getObject(),
-                        new PropertyModel<Boolean>(itemTO, "connObjectKey"), false);
+                        new PropertyModel<>(itemTO, "connObjectKey"), false);
                 connObjectKey.hideLabel();
                 item.add(connObjectKey);
                 // -------------------------------
@@ -295,7 +290,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 final AjaxCheckBoxPanel password = new AjaxCheckBoxPanel(
                         "password",
                         new ResourceModel("password", "password").getObject(),
-                        new PropertyModel<Boolean>(itemTO, "password"), false);
+                        new PropertyModel<>(itemTO, "password"), false);
                 item.add(password.hideLabel());
                 // -------------------------------
 
@@ -306,7 +301,7 @@ public abstract class AbstractMappingPanel extends Panel {
                 purpose.setOutputMarkupId(true);
 
                 final MappingPurposePanel purposeActions = new MappingPurposePanel(
-                        "purposeActions", new PropertyModel<MappingPurpose>(itemTO, "purpose"), purpose);
+                        "purposeActions", new PropertyModel<>(itemTO, "purpose"), purpose);
                 purpose.add(purposeActions.setRenderBodyOnly(true));
                 item.add(purpose);
                 // -------------------------------

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectDetails.java
index 91ed3a5..5dff819 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectDetails.java
@@ -37,8 +37,8 @@ public class AnyObjectDetails extends Details<AnyObjectTO> {
 
         AnyObjectTO anyObjectTO = wrapper.getInnerObject();
 
-        AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name",
-                new PropertyModel<String>(anyObjectTO, "name"), false);
+        AjaxTextFieldPanel name =
+                new AjaxTextFieldPanel("name", "name", new PropertyModel<>(anyObjectTO, "name"), false);
         if (templateMode) {
             name.enableJexlHelp();
         } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
index 33b7442..249f4cf 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
@@ -37,8 +37,7 @@ public class GroupDetails extends Details<GroupTO> {
 
         GroupTO groupTO = GroupWrapper.class.cast(wrapper).getInnerObject();
 
-        AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name",
-                new PropertyModel<String>(groupTO, "name"), false);
+        AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name", new PropertyModel<>(groupTO, "name"), false);
         if (templateMode) {
             name.enableJexlHelp();
         } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
index 43051c6..6282061 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
@@ -29,7 +29,6 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.search.AnySelectionDirectoryPanel;
 import org.apache.syncope.client.console.panels.search.GroupSearchPanel;
 import org.apache.syncope.client.console.panels.search.GroupSelectionDirectoryPanel;
-import org.apache.syncope.client.console.panels.search.SearchClause;
 import org.apache.syncope.client.console.panels.search.SearchClausePanel;
 import org.apache.syncope.client.console.panels.search.SearchUtils;
 import org.apache.syncope.client.console.panels.search.UserSearchPanel;
@@ -171,7 +170,7 @@ public class Ownership extends WizardStep implements WizardModel.ICondition {
 
         groupSearchFragment = new Fragment("search", "groupSearchFragment", this);
         groupSearchPanel = new GroupSearchPanel.Builder(
-                new ListModel<>(new ArrayList<SearchClause>())).required(false).enableSearch(Ownership.this).
+                new ListModel<>(new ArrayList<>())).required(false).enableSearch(Ownership.this).
                 build("groupsearch");
         groupSearchFragment.add(groupSearchPanel.setRenderBodyOnly(true));
 
@@ -186,7 +185,7 @@ public class Ownership extends WizardStep implements WizardModel.ICondition {
 
         userSearchFragment = new Fragment("search", "userSearchFragment", this);
         userSearchPanel = UserSearchPanel.class.cast(new UserSearchPanel.Builder(
-                new ListModel<>(new ArrayList<SearchClause>())).required(false).enableSearch(Ownership.this).
+                new ListModel<>(new ArrayList<>())).required(false).enableSearch(Ownership.this).
                 build("usersearch"));
         userSearchFragment.add(userSearchPanel.setRenderBodyOnly(true));
 
@@ -247,8 +246,7 @@ public class Ownership extends WizardStep implements WizardModel.ICondition {
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                send(Ownership.this, Broadcast.EXACT,
-                        new GroupSelectionDirectoryPanel.ItemSelection<GroupTO>(target, null));
+                send(Ownership.this, Broadcast.EXACT, new GroupSelectionDirectoryPanel.ItemSelection<>(target, null));
             }
 
             @Override
@@ -301,8 +299,7 @@ public class Ownership extends WizardStep implements WizardModel.ICondition {
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                send(Ownership.this, Broadcast.EXACT,
-                        new GroupSelectionDirectoryPanel.ItemSelection<GroupTO>(target, null));
+                send(Ownership.this, Broadcast.EXACT, new GroupSelectionDirectoryPanel.ItemSelection<>(target, null));
             }
 
             @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
index 44e673d..a54c6ca 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
@@ -46,7 +46,7 @@ public class PasswordPanel extends Panel {
         add(form);
 
         FieldPanel<String> confirmPasswordField = new AjaxPasswordFieldPanel(
-                "confirmPassword", "confirmPassword", new Model<String>(), false);
+                "confirmPassword", "confirmPassword", new Model<>(), false);
 
         confirmPasswordField.setMarkupId("confirmPassword");
         confirmPasswordField.setPlaceholder("confirmPassword");
@@ -58,7 +58,7 @@ public class PasswordPanel extends Panel {
             confirmPasswordField.setVisible(false);
 
             AjaxTextFieldPanel passwordField = new AjaxTextFieldPanel(
-                    "password", "password", new PropertyModel<String>(wrapper.getInnerObject(), "password"), false);
+                    "password", "password", new PropertyModel<>(wrapper.getInnerObject(), "password"), false);
             passwordField.setRequired(true);
             passwordField.setMarkupId("password");
             passwordField.setPlaceholder("password");
@@ -66,7 +66,7 @@ public class PasswordPanel extends Panel {
             passwordField.enableJexlHelp();
         } else {
             AjaxPasswordFieldPanel passwordField = new AjaxPasswordFieldPanel(
-                    "password", "password", new PropertyModel<String>(wrapper.getInnerObject(), "password"), false);
+                    "password", "password", new PropertyModel<>(wrapper.getInnerObject(), "password"), false);
             passwordField.setRequired(true);
             passwordField.setMarkupId("password");
             passwordField.setPlaceholder("password");
@@ -76,7 +76,7 @@ public class PasswordPanel extends Panel {
         }
 
         AjaxCheckBoxPanel storePasswordInSyncope = new AjaxCheckBoxPanel("storePasswordInSyncope",
-                "storePasswordInSyncope", new PropertyModel<Boolean>(wrapper, "storePasswordInSyncope"));
+                "storePasswordInSyncope", new PropertyModel<>(wrapper, "storePasswordInSyncope"));
         storePasswordInSyncope.getField().setLabel(new ResourceModel("storePasswordInSyncope"));
         storePasswordInSyncope.setOutputMarkupId(true);
         storePasswordInSyncope.setOutputMarkupPlaceholderTag(true);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
index 75ddac8..e2c5495 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
@@ -59,8 +59,7 @@ public class UserDetails extends Details<UserTO> {
         // ------------------------
         // Username
         // ------------------------
-        username = new AjaxTextFieldPanel(
-                "username", "username", new PropertyModel<String>(userTO, "username"), false);
+        username = new AjaxTextFieldPanel("username", "username", new PropertyModel<>(userTO, "username"), false);
 
         if (wrapper.getPreviousUserTO() != null && StringUtils.
                 compare(wrapper.getPreviousUserTO().getUsername(), wrapper.getInnerObject().getUsername()) != 0) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
index 4ab5bee..d3d4a82 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
@@ -126,7 +126,7 @@ public class VirAttrs extends AbstractAttrs<VirSchemaTO> {
 
         Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs());
 
-        for (VirSchemaTO schema : schemas.values()) {
+        schemas.values().stream().map(schema -> {
             AttrTO attrTO = new AttrTO();
             attrTO.setSchema(schema.getKey());
             if (attrMap.containsKey(schema.getKey())) {
@@ -134,9 +134,10 @@ public class VirAttrs extends AbstractAttrs<VirSchemaTO> {
             } else {
                 attrTO.getValues().add(StringUtils.EMPTY);
             }
-
+            return attrTO;
+        }).forEachOrdered(attrTO -> {
             attrs.add(attrTO);
-        }
+        });
 
         anyTO.getVirAttrs().clear();
         anyTO.getVirAttrs().addAll(attrs);
@@ -148,7 +149,7 @@ public class VirAttrs extends AbstractAttrs<VirSchemaTO> {
 
         Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(anyTO.getVirAttrs());
 
-        for (VirSchemaTO schema : membershipSchemas.get(membershipTO.getGroupKey()).values()) {
+        membershipSchemas.get(membershipTO.getGroupKey()).values().stream().map(schema -> {
             AttrTO attrTO = new AttrTO();
             attrTO.setSchema(schema.getKey());
             if (attrMap.containsKey(schema.getKey())) {
@@ -156,9 +157,10 @@ public class VirAttrs extends AbstractAttrs<VirSchemaTO> {
             } else {
                 attrTO.getValues().add(StringUtils.EMPTY);
             }
-
+            return attrTO;
+        }).forEachOrdered(attrTO -> {
             attrs.add(attrTO);
-        }
+        });
 
         membershipTO.getVirAttrs().clear();
         membershipTO.getVirAttrs().addAll(attrs);
@@ -180,8 +182,8 @@ public class VirAttrs extends AbstractAttrs<VirSchemaTO> {
                 protected void populateItem(final ListItem<AttrTO> item) {
                     AttrTO attrTO = item.getModelObject();
 
-                    AbstractFieldPanel<?> panel
-                            = new AjaxTextFieldPanel("panel", attrTO.getSchema(), new Model<String>(), false);
+                    AbstractFieldPanel<?> panel =
+                            new AjaxTextFieldPanel("panel", attrTO.getSchema(), new Model<>(), false);
 
                     boolean readonly = attrTO.getSchemaInfo() == null
                             ? false

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java
index da3847b..6a85d96 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/JEXLTransformersTogglePanel.java
@@ -70,8 +70,8 @@ public class JEXLTransformersTogglePanel extends TogglePanel<Serializable> {
     }
 
     public JEXLTransformersTogglePanel setItem(final AjaxRequestTarget target, final ItemTO item) {
-        this.propagationJEXLTransformer.setNewModel(new PropertyModel<String>(item, "propagationJEXLTransformer"));
-        this.pullJEXLTransformer.setNewModel(new PropertyModel<String>(item, "pullJEXLTransformer"));
+        this.propagationJEXLTransformer.setNewModel(new PropertyModel<>(item, "propagationJEXLTransformer"));
+        this.pullJEXLTransformer.setNewModel(new PropertyModel<>(item, "pullJEXLTransformer"));
         setHeader(target, StringUtils.EMPTY);
         return this;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnCapabilitiesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnCapabilitiesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnCapabilitiesPanel.java
index 5f6073b..6268984 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnCapabilitiesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnCapabilitiesPanel.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.client.console.wizards.resources;
 
-import java.util.List;
 import java.util.Set;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
@@ -44,14 +43,14 @@ public class ResourceConnCapabilitiesPanel extends WizardStep {
         }
 
         final CapabilitiesPanel connCapabilitiesPanel = new CapabilitiesPanel(
-                new PropertyModel<List<ConnectorCapability>>(resourceTO, "capabilitiesOverride"));
+                new PropertyModel<>(resourceTO, "capabilitiesOverride"));
         connCapabilitiesPanel.setEnabled(resourceTO.isOverrideCapabilities());
         add(connCapabilitiesPanel);
 
         final AjaxCheckBoxPanel overrideCapabilities = new AjaxCheckBoxPanel(
                 "overrideCapabilities",
                 new ResourceModel("overrideCapabilities", "overrideCapabilities").getObject(),
-                new PropertyModel<Boolean>(resourceTO, "overrideCapabilities"));
+                new PropertyModel<>(resourceTO, "overrideCapabilities"));
         overrideCapabilities.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
 
             private static final long serialVersionUID = -1107858522700306810L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
index a5e397a..8a3aa5f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
@@ -20,7 +20,6 @@ package org.apache.syncope.client.console.wizards.resources;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -61,15 +60,11 @@ public abstract class ResourceConnConfPanel extends AbstractConnConfPanel<Resour
                         List<ConnConfProperty> res = new ArrayList<>(super.getObject());
 
                         // re-order properties
-                        Collections.sort(res, new Comparator<ConnConfProperty>() {
-
-                            @Override
-                            public int compare(final ConnConfProperty left, final ConnConfProperty right) {
-                                if (left == null) {
-                                    return -1;
-                                } else {
-                                    return left.compareTo(right);
-                                }
+                        Collections.sort(res, (left, right) -> {
+                            if (left == null) {
+                                return -1;
+                            } else {
+                                return left.compareTo(right);
                             }
                         });
 
@@ -96,19 +91,19 @@ public abstract class ResourceConnConfPanel extends AbstractConnConfPanel<Resour
         List<ConnConfProperty> props = new ArrayList<>();
 
         if (resourceTO.getConnector() != null) {
-            for (ConnConfProperty property : restClient.read(resourceTO.getConnector()).getConf()) {
-                if (property.isOverridable()) {
-                    props.add(property);
-                }
-            }
+            restClient.read(resourceTO.getConnector()).getConf().stream().
+                    filter(property -> (property.isOverridable())).
+                    forEachOrdered(property -> {
+                        props.add(property);
+                    });
         }
         if (createFlag || resourceTO.getConfOverride().isEmpty()) {
             resourceTO.getConfOverride().clear();
         } else {
             Map<String, ConnConfProperty> valuedProps = new HashMap<>();
-            for (ConnConfProperty prop : resourceTO.getConfOverride()) {
+            resourceTO.getConfOverride().forEach(prop -> {
                 valuedProps.put(prop.getSchema().getName(), prop);
-            }
+            });
 
             for (int i = 0; i < props.size(); i++) {
                 if (valuedProps.containsKey(props.get(i).getSchema().getName())) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
index 856fa60..d5a8480 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
@@ -64,14 +64,14 @@ public class ResourceDetailsPanel extends WizardStep {
         container.add(new AjaxTextFieldPanel(
                 "key",
                 new ResourceModel("key", "key").
-                getObject(),
-                new PropertyModel<String>(resourceTO, "key"),
+                        getObject(),
+                new PropertyModel<>(resourceTO, "key"),
                 false).addRequiredLabel().setEnabled(createFlag));
 
         container.add(new AjaxCheckBoxPanel(
                 "enforceMandatoryCondition",
                 new ResourceModel("enforceMandatoryCondition", "enforceMandatoryCondition").getObject(),
-                new PropertyModel<Boolean>(resourceTO, "enforceMandatoryCondition"),
+                new PropertyModel<>(resourceTO, "enforceMandatoryCondition"),
                 false));
 
         container.add(new AjaxSpinnerFieldPanel.Builder<Integer>().build(
@@ -82,7 +82,7 @@ public class ResourceDetailsPanel extends WizardStep {
 
         container.add(new AjaxCheckBoxPanel("randomPwdIfNotProvided",
                 new ResourceModel("randomPwdIfNotProvided", "randomPwdIfNotProvided").getObject(),
-                new PropertyModel<Boolean>(resourceTO, "randomPwdIfNotProvided"),
+                new PropertyModel<>(resourceTO, "randomPwdIfNotProvided"),
                 false));
 
         container.add(new AjaxPalettePanel.Builder<String>().
@@ -95,28 +95,28 @@ public class ResourceDetailsPanel extends WizardStep {
         container.add(new AjaxDropDownChoicePanel<>(
                 "createTraceLevel",
                 new ResourceModel("createTraceLevel", "createTraceLevel").getObject(),
-                new PropertyModel<TraceLevel>(resourceTO, "createTraceLevel"),
+                new PropertyModel<>(resourceTO, "createTraceLevel"),
                 false).
                 setChoices(Arrays.asList(TraceLevel.values())).setNullValid(false));
 
         container.add(new AjaxDropDownChoicePanel<>(
                 "updateTraceLevel",
                 new ResourceModel("updateTraceLevel", "updateTraceLevel").getObject(),
-                new PropertyModel<TraceLevel>(resourceTO, "updateTraceLevel"),
+                new PropertyModel<>(resourceTO, "updateTraceLevel"),
                 false).
                 setChoices(Arrays.asList(TraceLevel.values())).setNullValid(false));
 
         container.add(new AjaxDropDownChoicePanel<>(
                 "deleteTraceLevel",
                 new ResourceModel("deleteTraceLevel", "deleteTraceLevel").getObject(),
-                new PropertyModel<TraceLevel>(resourceTO, "deleteTraceLevel"),
+                new PropertyModel<>(resourceTO, "deleteTraceLevel"),
                 false).
                 setChoices(Arrays.asList(TraceLevel.values())).setNullValid(false));
 
         container.add(new AjaxDropDownChoicePanel<>(
                 "provisioningTraceLevel",
                 new ResourceModel("provisioningTraceLevel", "provisioningTraceLevel").getObject(),
-                new PropertyModel<TraceLevel>(resourceTO, "provisioningTraceLevel"),
+                new PropertyModel<>(resourceTO, "provisioningTraceLevel"),
                 false).
                 setChoices(Arrays.asList(TraceLevel.values())).setNullValid(false));
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
index f3ff8f5..aeace2d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
@@ -24,7 +24,6 @@ import java.util.Map;
 import org.apache.syncope.client.console.rest.PolicyRestClient;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.PolicyRenderer;
-import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.PolicyType;
 import org.apache.wicket.extensions.wizard.WizardStep;
@@ -48,9 +47,9 @@ public class ResourceSecurityPanel extends WizardStep {
         @Override
         protected Map<String, String> load() {
             Map<String, String> res = new HashMap<>();
-            for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PASSWORD)) {
+            policyRestClient.getPolicies(PolicyType.PASSWORD).forEach(policyTO -> {
                 res.put(policyTO.getKey(), policyTO.getDescription());
-            }
+            });
             return res;
         }
     };
@@ -62,9 +61,9 @@ public class ResourceSecurityPanel extends WizardStep {
         @Override
         protected Map<String, String> load() {
             Map<String, String> res = new HashMap<>();
-            for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.ACCOUNT)) {
+            policyRestClient.getPolicies(PolicyType.ACCOUNT).forEach(policyTO -> {
                 res.put(policyTO.getKey(), policyTO.getDescription());
-            }
+            });
             return res;
         }
     };
@@ -76,9 +75,9 @@ public class ResourceSecurityPanel extends WizardStep {
         @Override
         protected Map<String, String> load() {
             Map<String, String> res = new HashMap<>();
-            for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PULL)) {
+            policyRestClient.getPolicies(PolicyType.PULL).forEach(policyTO -> {
                 res.put(policyTO.getKey(), policyTO.getDescription());
-            }
+            });
             return res;
         }
     };
@@ -98,7 +97,7 @@ public class ResourceSecurityPanel extends WizardStep {
         AjaxDropDownChoicePanel<String> passwordPolicy = new AjaxDropDownChoicePanel<>(
                 "passwordPolicy",
                 new ResourceModel("passwordPolicy", "passwordPolicy").getObject(),
-                new PropertyModel<String>(resourceTO, "passwordPolicy"),
+                new PropertyModel<>(resourceTO, "passwordPolicy"),
                 false);
         passwordPolicy.setChoiceRenderer(new PolicyRenderer(passwordPolicies));
         passwordPolicy.setChoices(new ArrayList<>(passwordPolicies.getObject().keySet()));
@@ -112,7 +111,7 @@ public class ResourceSecurityPanel extends WizardStep {
         AjaxDropDownChoicePanel<String> accountPolicy = new AjaxDropDownChoicePanel<>(
                 "accountPolicy",
                 new ResourceModel("accountPolicy", "accountPolicy").getObject(),
-                new PropertyModel<String>(resourceTO, "accountPolicy"),
+                new PropertyModel<>(resourceTO, "accountPolicy"),
                 false);
         accountPolicy.setChoiceRenderer(new PolicyRenderer(accountPolicies));
         accountPolicy.setChoices(new ArrayList<>(accountPolicies.getObject().keySet()));
@@ -126,7 +125,7 @@ public class ResourceSecurityPanel extends WizardStep {
         AjaxDropDownChoicePanel<String> pullPolicy = new AjaxDropDownChoicePanel<>(
                 "pullPolicy",
                 new ResourceModel("pullPolicy", "pullPolicy").getObject(),
-                new PropertyModel<String>(resourceTO, "pullPolicy"),
+                new PropertyModel<>(resourceTO, "pullPolicy"),
                 false);
         pullPolicy.setChoiceRenderer(new PolicyRenderer(pullPolicies));
         pullPolicy.setChoices(new ArrayList<>(pullPolicies.getObject().keySet()));

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserApplication.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserApplication.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserApplication.java
index e35a166..5871842 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserApplication.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserApplication.java
@@ -21,7 +21,6 @@ package org.apache.syncope.client.enduser;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.File;
-import java.io.FileFilter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Serializable;
@@ -142,21 +141,10 @@ public class SyncopeEnduserApplication extends WebApplication implements Seriali
                 }
             }
             FileAlterationObserver observer = existsEnduserDir
-                    ? new FileAlterationObserver(enduserDir, new FileFilter() {
-
-                        @Override
-                        public boolean accept(final File pathname) {
-                            return StringUtils.contains(pathname.getPath(), CUSTOM_FORM_FILE);
-                        }
-                    })
+                    ? new FileAlterationObserver(enduserDir,
+                            pathname -> StringUtils.contains(pathname.getPath(), CUSTOM_FORM_FILE))
                     : new FileAlterationObserver(getClass().getResource("/" + CUSTOM_FORM_FILE).getFile(),
-                            new FileFilter() {
-
-                        @Override
-                        public boolean accept(final File pathname) {
-                            return StringUtils.contains(pathname.getPath(), CUSTOM_FORM_FILE);
-                        }
-                    });
+                            pathname -> StringUtils.contains(pathname.getPath(), CUSTOM_FORM_FILE));
 
             FileAlterationMonitor monitor = new FileAlterationMonitor(5000);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
index 370f91a..c7b70cc 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeEnduserSession.java
@@ -22,10 +22,9 @@ import java.security.AccessControlException;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.MediaType;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
@@ -85,13 +84,8 @@ public class SyncopeEnduserSession extends WebSession {
 
         datePlainSchemas = anonymousClient.getService(SchemaService.class).
                 list(new SchemaQuery.Builder().type(SchemaType.PLAIN).build());
-        CollectionUtils.filter(datePlainSchemas, new Predicate<PlainSchemaTO>() {
-
-            @Override
-            public boolean evaluate(final PlainSchemaTO object) {
-                return object.getType() == AttrSchemaType.Date;
-            }
-        });
+        datePlainSchemas.removeAll(datePlainSchemas.stream().
+                filter(object -> object.getType() != AttrSchemaType.Date).collect(Collectors.toSet()));
     }
 
     private void afterAuthentication() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/BaseUserSelfResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/BaseUserSelfResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/BaseUserSelfResource.java
index 3a092c3..10da85b 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/BaseUserSelfResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/BaseUserSelfResource.java
@@ -21,9 +21,8 @@ package org.apache.syncope.client.enduser.resources;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
+import java.util.ListIterator;
 import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.syncope.common.lib.to.AttrTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
@@ -34,45 +33,38 @@ public abstract class BaseUserSelfResource extends BaseResource {
 
     protected void dateToMillis(final Set<AttrTO> attrs, final PlainSchemaTO plainSchema)
             throws ParseException {
-        final FastDateFormat fmt = FastDateFormat.getInstance(plainSchema.getConversionPattern());
-
-        for (AttrTO attr : attrs) {
-            if (attr.getSchema().equals(plainSchema.getKey())) {
-                CollectionUtils.transform(attr.getValues(), new Transformer<String, String>() {
 
-                    @Override
-                    public String transform(final String input) {
+        final FastDateFormat fmt = FastDateFormat.getInstance(plainSchema.getConversionPattern());
+        attrs.stream().
+                filter(attr -> (attr.getSchema().equals(plainSchema.getKey()))).
+                forEachOrdered(attr -> {
+                    for (ListIterator<String> itor = attr.getValues().listIterator(); itor.hasNext();) {
+                        String value = itor.next();
                         try {
-                            return String.valueOf(fmt.parse(input).getTime());
+                            itor.set(String.valueOf(fmt.parse(value).getTime()));
                         } catch (ParseException ex) {
-                            LOG.error("Unable to parse date {}", input);
-                            return input;
+                            LOG.error("Unable to parse date {}", value);
                         }
                     }
                 });
-            }
-        }
     }
 
     protected void millisToDate(final Set<AttrTO> attrs, final PlainSchemaTO plainSchema)
             throws IllegalArgumentException {
-        final FastDateFormat fmt = FastDateFormat.getInstance(plainSchema.getConversionPattern());
-        for (AttrTO attr : attrs) {
-            if (attr.getSchema().equals(plainSchema.getKey())) {
-                CollectionUtils.transform(attr.getValues(), new Transformer<String, String>() {
 
-                    @Override
-                    public String transform(final String input) {
+        final FastDateFormat fmt = FastDateFormat.getInstance(plainSchema.getConversionPattern());
+        attrs.stream().
+                filter(attr -> (attr.getSchema().equals(plainSchema.getKey()))).
+                forEachOrdered(attr -> {
+                    for (ListIterator<String> itor = attr.getValues().listIterator(); itor.hasNext();) {
+                        String value = itor.next();
                         try {
-                            return fmt.format(Long.valueOf(input));
+                            itor.set(fmt.format(Long.valueOf(value)));
                         } catch (NumberFormatException ex) {
-                            LOG.error("Invalid format value for {}", input);
-                            return input;
+                            LOG.error("Invalid format value for {}", value);
                         }
                     }
                 });
-            }
-        }
     }
 
     protected void buildResponse(final ResourceResponse response, final int statusCode, final String message) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/InfoResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/InfoResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/InfoResource.java
index 24b90a0..58bd238 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/InfoResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/InfoResource.java
@@ -67,7 +67,7 @@ public class InfoResource extends BaseResource {
                                     PlatformInfoAdapter.toPlatformInfoRequest(
                                             SyncopeEnduserSession.get().getPlatformInfo(),
                                             customForm == null
-                                                    ? new HashMap<String, CustomAttributesInfo>()
+                                                    ? new HashMap<>()
                                                     : customForm)));
                 }
             });

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
index 36f11f4..80ec8d1 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
@@ -22,14 +22,12 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.enduser.SyncopeEnduserApplication;
 import org.apache.syncope.client.enduser.SyncopeEnduserConstants;
@@ -125,15 +123,15 @@ public class SchemaResource extends BaseResource {
                     : Collections.<AbstractSchemaTO>emptyList();
 
             if (group != null) {
-                for (AbstractSchemaTO schema : plainSchemas) {
+                plainSchemas.forEach(schema -> {
                     schema.setKey(compositeSchemaKey(group, schema.getKey()));
-                }
-                for (AbstractSchemaTO schema : derSchemas) {
+                });
+                derSchemas.forEach(schema -> {
                     schema.setKey(compositeSchemaKey(group, schema.getKey()));
-                }
-                for (AbstractSchemaTO schema : virSchemas) {
+                });
+                virSchemas.forEach(schema -> {
                     schema.setKey(compositeSchemaKey(group, schema.getKey()));
-                }
+                });
             }
 
             response.setTextEncoding(StandardCharsets.UTF_8.name());
@@ -160,7 +158,9 @@ public class SchemaResource extends BaseResource {
         return response;
     }
 
-    private List<AbstractSchemaTO> customizeSchemas(final List<AbstractSchemaTO> schemaTOs, final String groupParam,
+    private List<AbstractSchemaTO> customizeSchemas(
+            final List<AbstractSchemaTO> schemaTOs,
+            final String groupParam,
             final Map<String, CustomAttribute> customForm) {
 
         if (customForm.isEmpty()) {
@@ -168,28 +168,20 @@ public class SchemaResource extends BaseResource {
         }
         final boolean isGroupBlank = StringUtils.isBlank(groupParam);
 
-        CollectionUtils.filter(schemaTOs, new Predicate<AbstractSchemaTO>() {
-
-            @Override
-            public boolean evaluate(final AbstractSchemaTO object) {
-                return customForm.containsKey(isGroupBlank
-                        ? object.getKey()
-                        : compositeSchemaKey(groupParam, object.getKey()));
-            }
-        });
-
-        Collections.sort(schemaTOs, new Comparator<AbstractSchemaTO>() {
-
-            @Override
-            public int compare(final AbstractSchemaTO schemaTO1, final AbstractSchemaTO schemaTO2) {
-                List<String> order = new ArrayList<>(customForm.keySet());
-                return order.indexOf(isGroupBlank
-                        ? schemaTO1.getKey()
-                        : compositeSchemaKey(groupParam, schemaTO1.getKey()))
-                        - order.indexOf(isGroupBlank
-                                ? schemaTO2.getKey()
-                                : compositeSchemaKey(groupParam, schemaTO2.getKey()));
-            }
+        schemaTOs.removeAll(schemaTOs.stream().
+                filter(schema -> !customForm.containsKey(isGroupBlank
+                ? schema.getKey()
+                : compositeSchemaKey(groupParam, schema.getKey()))).
+                collect(Collectors.toSet()));
+
+        Collections.sort(schemaTOs, (schemaTO1, schemaTO2) -> {
+            List<String> order = new ArrayList<>(customForm.keySet());
+            return order.indexOf(isGroupBlank
+                    ? schemaTO1.getKey()
+                    : compositeSchemaKey(groupParam, schemaTO1.getKey()))
+                    - order.indexOf(isGroupBlank
+                            ? schemaTO2.getKey()
+                            : compositeSchemaKey(groupParam, schemaTO2.getKey()));
         });
 
         return schemaTOs;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfCreateResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfCreateResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfCreateResource.java
index 00bc356..9d8d7d5 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfCreateResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfCreateResource.java
@@ -23,8 +23,6 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.client.enduser.SyncopeEnduserApplication;
 import org.apache.syncope.client.enduser.SyncopeEnduserConstants;
@@ -34,7 +32,6 @@ import org.apache.syncope.client.enduser.util.UserRequestValidator;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AttrTO;
 import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.rest.api.service.UserSelfService;
 
@@ -88,89 +85,79 @@ public class UserSelfCreateResource extends BaseUserSelfResource {
 
                     // 1. membership attributes management
                     Set<AttrTO> membAttrs = new HashSet<>();
-                    for (AttrTO attr : userTO.getPlainAttrs()) {
-                        if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                            final String[] simpleAttrs = attr.getSchema().split(
-                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                            MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                    new Predicate<MembershipTO>() {
-
-                                @Override
-                                public boolean evaluate(final MembershipTO item) {
-                                    return simpleAttrs[0].equals(item.getGroupName());
+                    userTO.getPlainAttrs().stream().
+                            filter(attr -> (attr.getSchema().
+                            contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                            forEachOrdered(attr -> {
+                                String[] simpleAttrs = attr.getSchema().split(
+                                        SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                                MembershipTO membership = userTO.getMemberships().stream().
+                                        filter(memb -> simpleAttrs[0].equals(memb.getGroupName())).
+                                        findFirst().orElse(null);
+                                if (membership == null) {
+                                    membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                    userTO.getMemberships().add(membership);
                                 }
+
+                                AttrTO clone = SerializationUtils.clone(attr);
+                                clone.setSchema(simpleAttrs[1]);
+                                membership.getPlainAttrs().add(clone);
+                                membAttrs.add(attr);
                             });
-                            if (membership == null) {
-                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
-                                userTO.getMemberships().add(membership);
-                            }
-
-                            AttrTO clone = SerializationUtils.clone(attr);
-                            clone.setSchema(simpleAttrs[1]);
-                            membership.getPlainAttrs().add(clone);
-                            membAttrs.add(attr);
-                        }
-                    }
                     userTO.getPlainAttrs().removeAll(membAttrs);
 
                     // 2. millis -> Date conversion for PLAIN attributes of USER and its MEMBERSHIPS
-                    for (PlainSchemaTO plainSchema : SyncopeEnduserSession.get().getDatePlainSchemas()) {
+                    SyncopeEnduserSession.get().getDatePlainSchemas().stream().map(plainSchema -> {
                         millisToDate(userTO.getPlainAttrs(), plainSchema);
-                        for (MembershipTO membership : userTO.getMemberships()) {
+                        return plainSchema;
+                    }).forEachOrdered(plainSchema -> {
+                        userTO.getMemberships().forEach(membership -> {
                             millisToDate(membership.getPlainAttrs(), plainSchema);
-                        }
-                    }
+                        });
+                    });
 
                     membAttrs.clear();
-                    for (AttrTO attr : userTO.getDerAttrs()) {
-                        if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                            final String[] simpleAttrs = attr.getSchema().split(
-                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                            MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                    new Predicate<MembershipTO>() {
-
-                                @Override
-                                public boolean evaluate(final MembershipTO item) {
-                                    return simpleAttrs[0].equals(item.getGroupName());
+                    userTO.getDerAttrs().stream().
+                            filter(attr -> (attr.getSchema().
+                            contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                            forEachOrdered(attr -> {
+                                String[] simpleAttrs = attr.getSchema().split(
+                                        SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                                MembershipTO membership = userTO.getMemberships().stream().
+                                        filter(memb -> simpleAttrs[0].equals(memb.getGroupName())).
+                                        findFirst().orElse(null);
+                                if (membership == null) {
+                                    membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                    userTO.getMemberships().add(membership);
                                 }
+
+                                AttrTO clone = SerializationUtils.clone(attr);
+                                clone.setSchema(simpleAttrs[1]);
+                                membership.getDerAttrs().add(clone);
+                                membAttrs.add(attr);
                             });
-                            if (membership == null) {
-                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
-                                userTO.getMemberships().add(membership);
-                            }
-
-                            AttrTO clone = SerializationUtils.clone(attr);
-                            clone.setSchema(simpleAttrs[1]);
-                            membership.getDerAttrs().add(clone);
-                            membAttrs.add(attr);
-                        }
-                    }
                     userTO.getDerAttrs().removeAll(membAttrs);
 
                     membAttrs.clear();
-                    for (AttrTO attr : userTO.getVirAttrs()) {
-                        if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                            final String[] simpleAttrs = attr.getSchema().split(
-                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                            MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                    new Predicate<MembershipTO>() {
-
-                                @Override
-                                public boolean evaluate(final MembershipTO item) {
-                                    return simpleAttrs[0].equals(item.getGroupName());
+                    userTO.getVirAttrs().stream().
+                            filter(attr -> (attr.getSchema().
+                            contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                            forEachOrdered(attr -> {
+                                String[] simpleAttrs = attr.getSchema().split(
+                                        SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                                MembershipTO membership = userTO.getMemberships().stream().
+                                        filter(memb -> simpleAttrs[0].equals(memb.getGroupName())).
+                                        findFirst().orElse(null);
+                                if (membership == null) {
+                                    membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                    userTO.getMemberships().add(membership);
                                 }
+
+                                AttrTO clone = SerializationUtils.clone(attr);
+                                clone.setSchema(simpleAttrs[1]);
+                                membership.getVirAttrs().add(clone);
+                                membAttrs.add(attr);
                             });
-                            if (membership == null) {
-                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
-                                userTO.getMemberships().add(membership);
-                            }
-
-                            AttrTO clone = SerializationUtils.clone(attr);
-                            clone.setSchema(simpleAttrs[1]);
-                            membership.getVirAttrs().add(clone);
-                            membAttrs.add(attr);
-                        }
-                    }
                     userTO.getVirAttrs().removeAll(membAttrs);
 
                     LOG.debug("Received user self registration request for user: [{}]", userTO.getUsername());
@@ -197,7 +184,6 @@ public class UserSelfCreateResource extends BaseUserSelfResource {
                         ? "Request received is not valid }}"
                         : "Self registration not allowed }}").toString());
             }
-
         } catch (Exception e) {
             LOG.error("Unable to create userTO", e);
             response.setError(Response.Status.BAD_REQUEST.getStatusCode(),


[2/6] syncope git commit: [SYNCOPE-938] Applying all Netbeans hints for upgrade to JDK 8

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfReadResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfReadResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfReadResource.java
index 7d95cdc..255449a 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfReadResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfReadResource.java
@@ -22,11 +22,10 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.client.enduser.SyncopeEnduserApplication;
 import org.apache.syncope.client.enduser.SyncopeEnduserConstants;
@@ -72,23 +71,29 @@ public class UserSelfReadResource extends BaseUserSelfResource {
             // 2. membership attributes management
             for (MembershipTO membership : userTO.getMemberships()) {
                 String groupName = membership.getGroupName();
-                for (AttrTO attr : membership.getPlainAttrs()) {
-                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).concat(attr.
-                            getSchema()));
+                membership.getPlainAttrs().stream().map(attr -> {
+                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).
+                            concat(attr.getSchema()));
+                    return attr;
+                }).forEachOrdered(attr -> {
                     userTO.getPlainAttrs().add(attr);
-                }
+                });
                 membership.getPlainAttrs().clear();
-                for (AttrTO attr : membership.getDerAttrs()) {
-                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).concat(attr.
-                            getSchema()));
+                membership.getDerAttrs().stream().map(attr -> {
+                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).
+                            concat(attr.getSchema()));
+                    return attr;
+                }).forEachOrdered(attr -> {
                     userTO.getDerAttrs().add(attr);
-                }
+                });
                 membership.getDerAttrs().clear();
-                for (AttrTO attr : membership.getVirAttrs()) {
-                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).concat(attr.
-                            getSchema()));
+                membership.getVirAttrs().stream().map((attr) -> {
+                    attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR).
+                            concat(attr.getSchema()));
+                    return attr;
+                }).forEachOrdered(attr -> {
                     userTO.getVirAttrs().add(attr);
-                }
+                });
                 membership.getVirAttrs().clear();
             }
             // USER from customization, if empty or null ignore it, use it to filter attributes otherwise
@@ -138,14 +143,9 @@ public class UserSelfReadResource extends BaseUserSelfResource {
                 && customAttributesInfo.isShow()
                 && !customAttributesInfo.getAttributes().isEmpty()) {
 
-            CollectionUtils.filter(attrs, new Predicate<AttrTO>() {
-
-                @Override
-                public boolean evaluate(final AttrTO attr) {
-                    return customAttributesInfo.getAttributes().containsKey(attr.getSchema());
-                }
-            });
-
+            attrs.removeAll(attrs.stream().
+                    filter(attr -> !customAttributesInfo.getAttributes().containsKey(attr.getSchema())).
+                    collect(Collectors.toList()));
         } else if (customAttributesInfo != null && !customAttributesInfo.isShow()) {
             attrs.clear();
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfUpdateResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfUpdateResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfUpdateResource.java
index 037b1fb..dcc6c79 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfUpdateResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfUpdateResource.java
@@ -20,12 +20,11 @@ package org.apache.syncope.client.enduser.resources;
 
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.client.enduser.SyncopeEnduserApplication;
 import org.apache.syncope.client.enduser.SyncopeEnduserConstants;
@@ -38,7 +37,6 @@ import org.apache.syncope.common.lib.EntityTOUtils;
 import org.apache.syncope.common.lib.patch.UserPatch;
 import org.apache.syncope.common.lib.to.AttrTO;
 import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.rest.api.service.UserSelfService;
 import org.apache.wicket.request.resource.AbstractResource;
@@ -75,87 +73,75 @@ public class UserSelfUpdateResource extends BaseUserSelfResource {
             if (UserRequestValidator.compliant(userTO, customForm, false)) {
                 // 1. membership attributes management
                 Set<AttrTO> membAttrs = new HashSet<>();
-                for (AttrTO attr : userTO.getPlainAttrs()) {
-                    if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                        final String[] compositeSchemaKey = attr.getSchema().split(
-                                SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                        MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                new Predicate<MembershipTO>() {
-
-                            @Override
-                            public boolean evaluate(final MembershipTO item) {
-                                return compositeSchemaKey[0].equals(item.getGroupName());
+                userTO.getPlainAttrs().stream().
+                        filter(attr -> (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                        forEachOrdered((attr) -> {
+                            String[] simpleAttrs = attr.getSchema().split(
+                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                            MembershipTO membership = userTO.getMemberships().stream().
+                                    filter(item -> simpleAttrs[0].equals(item.getGroupName())).
+                                    findFirst().orElse(null);
+                            if (membership == null) {
+                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                userTO.getMemberships().add(membership);
                             }
+                            AttrTO clone = SerializationUtils.clone(attr);
+                            clone.setSchema(simpleAttrs[1]);
+                            membership.getPlainAttrs().add(clone);
+                            membAttrs.add(attr);
                         });
-                        if (membership == null) {
-                            membership = new MembershipTO.Builder().group(null, compositeSchemaKey[0]).build();
-                            userTO.getMemberships().add(membership);
-                        }
-                        AttrTO clone = SerializationUtils.clone(attr);
-                        clone.setSchema(compositeSchemaKey[1]);
-                        membership.getPlainAttrs().add(clone);
-                        membAttrs.add(attr);
-                    }
-                }
                 userTO.getPlainAttrs().removeAll(membAttrs);
 
                 // 2. millis -> Date conversion for PLAIN attributes of USER and its MEMBERSHIPS
-                for (PlainSchemaTO plainSchema : SyncopeEnduserSession.get().getDatePlainSchemas()) {
-                    millisToDate(userTO.getPlainAttrs(), plainSchema);
-                    for (MembershipTO membership : userTO.getMemberships()) {
+                SyncopeEnduserSession.get().getDatePlainSchemas().stream().
+                        map(plainSchema -> {
+                            millisToDate(userTO.getPlainAttrs(), plainSchema);
+                            return plainSchema;
+                        }).forEachOrdered(plainSchema -> {
+                    userTO.getMemberships().forEach(membership -> {
                         millisToDate(membership.getPlainAttrs(), plainSchema);
-                    }
-                }
+                    });
+                });
 
                 membAttrs.clear();
-                for (AttrTO attr : userTO.getDerAttrs()) {
-                    if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                        final String[] simpleAttrs = attr.getSchema().split(
-                                SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                        MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                new Predicate<MembershipTO>() {
-
-                            @Override
-                            public boolean evaluate(final MembershipTO item) {
-                                return simpleAttrs[0].equals(item.getGroupName());
+                userTO.getDerAttrs().stream().
+                        filter(attr -> (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                        forEachOrdered(attr -> {
+                            String[] simpleAttrs = attr.getSchema().split(
+                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                            MembershipTO membership = userTO.getMemberships().stream().
+                                    filter(item -> simpleAttrs[0].equals(item.getGroupName())).
+                                    findFirst().orElse(null);
+                            if (membership == null) {
+                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                userTO.getMemberships().add(membership);
                             }
+                            AttrTO clone = SerializationUtils.clone(attr);
+                            clone.setSchema(simpleAttrs[1]);
+                            membership.getDerAttrs().add(clone);
+                            membAttrs.add(attr);
                         });
-                        if (membership == null) {
-                            membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
-                            userTO.getMemberships().add(membership);
-                        }
-                        AttrTO clone = SerializationUtils.clone(attr);
-                        clone.setSchema(simpleAttrs[1]);
-                        membership.getDerAttrs().add(clone);
-                        membAttrs.add(attr);
-                    }
-                }
                 userTO.getDerAttrs().removeAll(membAttrs);
 
                 membAttrs.clear();
-                for (AttrTO attr : userTO.getVirAttrs()) {
-                    if (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR)) {
-                        final String[] simpleAttrs = attr.getSchema().split(
-                                SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
-                        MembershipTO membership = IterableUtils.find(userTO.getMemberships(),
-                                new Predicate<MembershipTO>() {
-
-                            @Override
-                            public boolean evaluate(final MembershipTO item) {
-                                return simpleAttrs[0].equals(item.getGroupName());
+                userTO.getVirAttrs().stream().
+                        filter(attr -> (attr.getSchema().contains(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR))).
+                        forEachOrdered((attr) -> {
+                            String[] simpleAttrs = attr.getSchema().split(
+                                    SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR);
+                            MembershipTO membership = userTO.getMemberships().stream().
+                                    filter(item -> simpleAttrs[0].equals(item.getGroupName())).
+                                    findFirst().orElse(null);
+                            if (membership == null) {
+                                membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
+                                userTO.getMemberships().add(membership);
+
                             }
+                            AttrTO clone = SerializationUtils.clone(attr);
+                            clone.setSchema(simpleAttrs[1]);
+                            membership.getVirAttrs().add(clone);
+                            membAttrs.add(attr);
                         });
-                        if (membership == null) {
-                            membership = new MembershipTO.Builder().group(null, simpleAttrs[0]).build();
-                            userTO.getMemberships().add(membership);
-
-                        }
-                        AttrTO clone = SerializationUtils.clone(attr);
-                        clone.setSchema(simpleAttrs[1]);
-                        membership.getVirAttrs().add(clone);
-                        membAttrs.add(attr);
-                    }
-                }
                 userTO.getVirAttrs().removeAll(membAttrs);
 
                 // get old user object from session
@@ -195,23 +181,19 @@ public class UserSelfUpdateResource extends BaseUserSelfResource {
 
     private void completeUserObject(final UserTO userTO, final UserTO selfTO) {
         // memberships plain and virtual attrs
-        for (final MembershipTO updatedTOMemb : userTO.getMemberships()) {
-            MembershipTO oldTOMatchedMemb = IterableUtils.find(selfTO.getMemberships(), new Predicate<MembershipTO>() {
-
-                @Override
-                public boolean evaluate(final MembershipTO oldTOMemb) {
-                    return updatedTOMemb.getGroupKey().equals(oldTOMemb.getGroupKey());
-                }
-            });
-            if (oldTOMatchedMemb != null) {
+        userTO.getMemberships().forEach(updatedTOMemb -> {
+            Optional<MembershipTO> oldTOMatchedMemb = selfTO.getMemberships().stream().
+                    filter(oldTOMemb -> updatedTOMemb.getGroupKey().equals(oldTOMemb.getGroupKey())).
+                    findFirst();
+            if (oldTOMatchedMemb.isPresent()) {
                 if (!updatedTOMemb.getPlainAttrs().isEmpty()) {
-                    completeAttrs(updatedTOMemb.getPlainAttrs(), oldTOMatchedMemb.getPlainAttrs());
+                    completeAttrs(updatedTOMemb.getPlainAttrs(), oldTOMatchedMemb.get().getPlainAttrs());
                 }
                 if (!updatedTOMemb.getVirAttrs().isEmpty()) {
-                    completeAttrs(updatedTOMemb.getVirAttrs(), oldTOMatchedMemb.getVirAttrs());
+                    completeAttrs(updatedTOMemb.getVirAttrs(), oldTOMatchedMemb.get().getVirAttrs());
                 }
             }
-        }
+        });
         // plain attrs
         completeAttrs(userTO.getPlainAttrs(), selfTO.getPlainAttrs());
         // virtual attrs
@@ -221,11 +203,11 @@ public class UserSelfUpdateResource extends BaseUserSelfResource {
     private void completeAttrs(final Set<AttrTO> userTOAttrs, final Set<AttrTO> selfTOAttrs) {
         Map<String, AttrTO> userTOAttrsMap =
                 EntityTOUtils.buildAttrMap(userTOAttrs);
-        for (AttrTO selfTOAttr : selfTOAttrs) {
-            if (!userTOAttrsMap.containsKey(selfTOAttr.getSchema())) {
-                userTOAttrs.add(selfTOAttr);
-            }
-        }
+        selfTOAttrs.stream().
+                filter(selfTOAttr -> (!userTOAttrsMap.containsKey(selfTOAttr.getSchema()))).
+                forEachOrdered(selfTOAttr -> {
+                    userTOAttrs.add(selfTOAttr);
+                });
     }
 
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/enduser/src/main/java/org/apache/syncope/client/enduser/util/UserRequestValidator.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/util/UserRequestValidator.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/util/UserRequestValidator.java
index 1d02e4e..c5d348b 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/util/UserRequestValidator.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/util/UserRequestValidator.java
@@ -19,8 +19,6 @@
 package org.apache.syncope.client.enduser.util;
 
 import java.util.Map;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.syncope.client.enduser.model.CustomAttribute;
 import org.apache.syncope.client.enduser.model.CustomAttributesInfo;
 import org.apache.syncope.common.lib.EntityTOUtils;
@@ -57,33 +55,23 @@ public final class UserRequestValidator {
 
         return customAttrInfo == null
                 || (customAttrInfo.getAttributes().isEmpty() && customAttrInfo.isShow())
-                || IterableUtils.matchesAll(attrMap.entrySet(), new Predicate<Map.Entry<String, AttrTO>>() {
-
-                    @Override
-                    public boolean evaluate(final Map.Entry<String, AttrTO> entry) {
-                        String schemaKey = entry.getKey();
-                        AttrTO attrTO = entry.getValue();
-                        CustomAttribute customAttr = customAttrInfo.getAttributes().get(schemaKey);
-                        boolean compliant = customAttr != null && (!checkDefaultValues || isValid(attrTO, customAttr));
-                        if (!compliant) {
-                            LOG.trace("Attribute [{}] or its values [{}] are not allowed by form customization rules",
-                                    attrTO.getSchema(), attrTO.getValues());
-                        }
-                        return compliant;
+                || attrMap.entrySet().stream().allMatch(entry -> {
+                    String schemaKey = entry.getKey();
+                    AttrTO attrTO = entry.getValue();
+                    CustomAttribute customAttr = customAttrInfo.getAttributes().get(schemaKey);
+                    boolean compliant = customAttr != null && (!checkDefaultValues || isValid(attrTO, customAttr));
+                    if (!compliant) {
+                        LOG.trace("Attribute [{}] or its values [{}] are not allowed by form customization rules",
+                                attrTO.getSchema(), attrTO.getValues());
                     }
+                    return compliant;
                 });
 
     }
 
     private static boolean isValid(final AttrTO attrTO, final CustomAttribute customAttribute) {
         return customAttribute.isReadonly()
-                ? IterableUtils.matchesAll(attrTO.getValues(), new Predicate<String>() {
-
-                    @Override
-                    public boolean evaluate(final String object) {
-                        return customAttribute.getDefaultValues().contains(object);
-                    }
-                })
+                ? attrTO.getValues().stream().allMatch(value -> customAttribute.getDefaultValues().contains(value))
                 : true;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOListQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOListQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOListQuery.java
index 7ab27b0..16d0e66 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOListQuery.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOListQuery.java
@@ -68,9 +68,9 @@ public class ConnObjectTOListQuery implements Serializable {
 
     public Integer getSize() {
         return size == null
-                ? Integer.valueOf(25)
+                ? 25
                 : size > MAX_SIZE
-                        ? Integer.valueOf(MAX_SIZE)
+                        ? MAX_SIZE
                         : size;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/SchemaQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/SchemaQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/SchemaQuery.java
index 811b664..3b26c39 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/SchemaQuery.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/SchemaQuery.java
@@ -43,7 +43,7 @@ public class SchemaQuery extends AbstractBaseBean {
 
         public Builder anyTypeClass(final String anyTypeClass) {
             if (instance.getAnyTypeClasses() == null) {
-                instance.setAnyTypeClasses(new ArrayList<String>());
+                instance.setAnyTypeClasses(new ArrayList<>());
             }
             instance.getAnyTypeClasses().add(anyTypeClass);
 
@@ -51,9 +51,9 @@ public class SchemaQuery extends AbstractBaseBean {
         }
 
         public Builder anyTypeClasses(final Collection<String> anyTypeClasses) {
-            for (String anyTypeClass : anyTypeClasses) {
+            anyTypeClasses.forEach(anyTypeClass -> {
                 anyTypeClass(anyTypeClass);
-            }
+            });
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
index 433e943..a9100cc 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowLogic.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.logic;
 import java.lang.reflect.Method;
 import java.util.List;
 import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.syncope.common.lib.patch.AnyPatch;
 import org.apache.syncope.common.lib.patch.UserPatch;
 import org.apache.syncope.common.lib.to.UserTO;
@@ -72,8 +71,8 @@ public class UserWorkflowLogic extends AbstractTransactionalLogic<WorkflowFormTO
         userPatch.setKey(userTO.getKey());
 
         List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(
-                new WorkflowResult<Pair<UserPatch, Boolean>>(
-                        new ImmutablePair<UserPatch, Boolean>(userPatch, null),
+                new WorkflowResult<>(
+                        new ImmutablePair<>(userPatch, null),
                         updated.getPropByRes(), updated.getPerformedTasks()));
 
         taskExecutor.execute(tasks, false);
@@ -106,7 +105,7 @@ public class UserWorkflowLogic extends AbstractTransactionalLogic<WorkflowFormTO
                 && updated.getPropByRes() != null && !updated.getPropByRes().isEmpty()) {
 
             List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(
-                    new WorkflowResult<Pair<UserPatch, Boolean>>(
+                    new WorkflowResult<>(
                             new ImmutablePair<>((UserPatch) updated.getResult(), Boolean.TRUE),
                             updated.getPropByRes(),
                             updated.getPerformedTasks()));

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/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 1d8c6e2..85787ae 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,9 +111,9 @@ public class XSLTTransformer extends AbstractSAXTransformer implements CachingPi
             transformerFactory = TRAX_FACTORY;
         } else {
             transformerFactory = createNewSAXTransformerFactory();
-            for (Map.Entry<String, Object> attribute : attributes.entrySet()) {
+            attributes.entrySet().forEach(attribute -> {
                 transformerFactory.setAttribute(attribute.getKey(), attribute.getValue());
-            }
+            });
         }
 
         try {
@@ -132,7 +132,7 @@ public class XSLTTransformer extends AbstractSAXTransformer implements CachingPi
         if (parameters == null) {
             this.parameters = null;
         } else {
-            this.parameters = new HashMap<String, Object>(parameters);
+            this.parameters = new HashMap<>(parameters);
         }
     }
 
@@ -151,14 +151,13 @@ public class XSLTTransformer extends AbstractSAXTransformer implements CachingPi
         if (this.parameters != null) {
             final Transformer transformer = transformerHandler.getTransformer();
 
-            for (Map.Entry<String, Object> entry : this.parameters.entrySet()) {
+            this.parameters.entrySet().forEach(entry -> {
                 final String name = entry.getKey();
-
                 // is valid XSLT parameter name
                 if (XSLT_PARAMETER_NAME_PATTERN.matcher(name).matches()) {
                     transformer.setParameter(name, entry.getValue());
                 }
-            }
+            });
         }
 
         final SAXResult result = new SAXResult();

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/logic/src/main/java/org/apache/syncope/core/logic/init/EntitlementLoader.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/init/EntitlementLoader.java b/core/logic/src/main/java/org/apache/syncope/core/logic/init/EntitlementLoader.java
index e49c487..6ca7df1 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/init/EntitlementLoader.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/init/EntitlementLoader.java
@@ -47,13 +47,9 @@ public class EntitlementLoader implements SyncopeLoader {
         EntitlementsHolder.getInstance().init(StandardEntitlement.values());
 
         for (Map.Entry<String, DataSource> entry : domainsHolder.getDomains().entrySet()) {
-            AuthContextUtils.execWithAuthContext(entry.getKey(), new AuthContextUtils.Executable<Void>() {
-
-                @Override
-                public Void exec() {
-                    entitlementAccessor.addEntitlementsForAnyTypes();
-                    return null;
-                }
+            AuthContextUtils.execWithAuthContext(entry.getKey(), () -> {
+                entitlementAccessor.addEntitlementsForAnyTypes();
+                return null;
             });
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/logic/src/main/java/org/apache/syncope/core/logic/init/LoggerLoader.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/init/LoggerLoader.java b/core/logic/src/main/java/org/apache/syncope/core/logic/init/LoggerLoader.java
index e4a4bc5..7c4145f 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/init/LoggerLoader.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/init/LoggerLoader.java
@@ -72,11 +72,11 @@ public class LoggerLoader implements SyncopeLoader {
     public void load() {
         final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
 
-        for (Map.Entry<String, Appender> entry : ctx.getConfiguration().getAppenders().entrySet()) {
-            if (entry.getValue() instanceof MemoryAppender) {
-                memoryAppenders.put(entry.getKey(), (MemoryAppender) entry.getValue());
-            }
-        }
+        ctx.getConfiguration().getAppenders().entrySet().stream().
+                filter(entry -> (entry.getValue() instanceof MemoryAppender)).
+                forEachOrdered(entry -> {
+                    memoryAppenders.put(entry.getKey(), (MemoryAppender) entry.getValue());
+                });
 
         // Audit table and DataSource for each configured domain
         ColumnConfig[] columnConfigs = {
@@ -116,30 +116,25 @@ public class LoggerLoader implements SyncopeLoader {
             ctx.getConfiguration().addLogger(AuditLoggerName.getAuditLoggerName(entry.getKey()), logConf);
 
             // SYNCOPE-1144 For each custom audit appender class add related appenders to log4j logger
-            for (AuditAppender auditAppender : auditAppenders(entry.getKey())) {
-                for (AuditLoggerName event : auditAppender.getEvents()) {
-                    String domainAuditLoggerName =
-                            AuditLoggerName.getAuditEventLoggerName(entry.getKey(), event.toLoggerName());
-                    LoggerConfig eventLogConf = ctx.getConfiguration().getLoggerConfig(domainAuditLoggerName);
-
-                    if (LogManager.ROOT_LOGGER_NAME.equals(eventLogConf.getName())) {
-                        eventLogConf = new LoggerConfig(domainAuditLoggerName, null, false);
-                    }
-                    addAppenderToContext(ctx, auditAppender, eventLogConf);
-                    eventLogConf.setLevel(Level.DEBUG);
-                    if (LogManager.ROOT_LOGGER_NAME.equals(eventLogConf.getName())) {
-                        ctx.getConfiguration().addLogger(domainAuditLoggerName, eventLogConf);
-                    }
-                }
-            }
-
-            AuthContextUtils.execWithAuthContext(entry.getKey(), new AuthContextUtils.Executable<Void>() {
+            auditAppenders(entry.getKey()).forEach(auditAppender -> {
+                auditAppender.getEvents().stream().
+                        map(event -> AuditLoggerName.getAuditEventLoggerName(entry.getKey(), event.toLoggerName())).
+                        forEachOrdered(domainAuditLoggerName -> {
+                            LoggerConfig eventLogConf = ctx.getConfiguration().getLoggerConfig(domainAuditLoggerName);
+                            if (LogManager.ROOT_LOGGER_NAME.equals(eventLogConf.getName())) {
+                                eventLogConf = new LoggerConfig(domainAuditLoggerName, null, false);
+                            }
+                            addAppenderToContext(ctx, auditAppender, eventLogConf);
+                            eventLogConf.setLevel(Level.DEBUG);
+                            if (LogManager.ROOT_LOGGER_NAME.equals(eventLogConf.getName())) {
+                                ctx.getConfiguration().addLogger(domainAuditLoggerName, eventLogConf);
+                            }
+                        });
+            });
 
-                @Override
-                public Void exec() {
-                    loggerAccessor.synchronizeLog4J(ctx);
-                    return null;
-                }
+            AuthContextUtils.execWithAuthContext(entry.getKey(), () -> {
+                loggerAccessor.synchronizeLog4J(ctx);
+                return null;
             });
         }
 
@@ -152,7 +147,7 @@ public class LoggerLoader implements SyncopeLoader {
 
     public List<AuditAppender> auditAppenders(final String domain) throws BeansException {
         List<AuditAppender> auditAppenders = new ArrayList<>();
-        for (Class<?> clazz : implementationLookup.getAuditAppenderClasses()) {
+        implementationLookup.getAuditAppenderClasses().stream().map(clazz -> {
             AuditAppender auditAppender;
             if (ApplicationContextProvider.getBeanFactory().containsSingleton(clazz.getName())) {
                 auditAppender = (AuditAppender) ApplicationContextProvider.getBeanFactory().
@@ -163,8 +158,10 @@ public class LoggerLoader implements SyncopeLoader {
                 auditAppender.setDomainName(domain);
                 auditAppender.init();
             }
+            return auditAppender;
+        }).forEachOrdered(auditAppender -> {
             auditAppenders.add(auditAppender);
-        }
+        });
         return auditAppenders;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/logic/src/main/java/org/apache/syncope/core/logic/init/LogicInitializer.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/init/LogicInitializer.java b/core/logic/src/main/java/org/apache/syncope/core/logic/init/LogicInitializer.java
index 10d1bf4..3e1b1c9 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/init/LogicInitializer.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/init/LogicInitializer.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.logic.init;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import org.apache.syncope.core.spring.ApplicationContextProvider;
@@ -54,21 +53,17 @@ public class LogicInitializer implements InitializingBean, BeanFactoryAware {
         Map<String, SyncopeLoader> loaderMap = beanFactory.getBeansOfType(SyncopeLoader.class);
 
         List<SyncopeLoader> loaders = new ArrayList<>(loaderMap.values());
-        Collections.sort(loaders, new Comparator<SyncopeLoader>() {
-
-            @Override
-            public int compare(final SyncopeLoader o1, final SyncopeLoader o2) {
-                return o1.getPriority().compareTo(o2.getPriority());
-            }
-        });
+        Collections.sort(loaders, (o1, o2) -> o1.getPriority().compareTo(o2.getPriority()));
 
         ApplicationContextProvider.setBeanFactory(beanFactory);
 
         LOG.debug("Starting initialization...");
-        for (SyncopeLoader loader : loaders) {
+        loaders.stream().map(loader -> {
             LOG.debug("Invoking {} with priority {}", AopUtils.getTargetClass(loader).getName(), loader.getPriority());
+            return loader;
+        }).forEachOrdered(loader -> {
             loader.load();
-        }
+        });
         LOG.debug("Initialization completed");
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
index 41b677e..2af6f25 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
@@ -68,6 +68,7 @@ public class SearchCondVisitor extends AbstractSearchConditionVisitor<SearchBean
         return attributeCond;
     }
 
+    @SuppressWarnings("ConvertToStringSwitch")
     private SearchCond visitPrimitive(final SearchCondition<SearchBean> sc) {
         String name = getRealPropertyName(sc.getStatement().getProperty());
         Optional<SpecialAttr> specialAttrName = SpecialAttr.fromString(name);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
index bb7eab8..6d810ea 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
@@ -40,7 +40,7 @@ public final class EntitlementsHolder {
         return INSTANCE;
     }
 
-    private final Set<String> values = Collections.synchronizedSet(new HashSet<String>());
+    private final Set<String> values = Collections.synchronizedSet(new HashSet<>());
 
     private EntitlementsHolder() {
         // private constructor for singleton

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/AsyncConnectorFacade.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/AsyncConnectorFacade.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/AsyncConnectorFacade.java
index a655fc4..79fbd23 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/AsyncConnectorFacade.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/AsyncConnectorFacade.java
@@ -28,7 +28,6 @@ import org.identityconnectors.framework.common.objects.ConnectorObject;
 import org.identityconnectors.framework.common.objects.ObjectClass;
 import org.identityconnectors.framework.common.objects.ObjectClassInfo;
 import org.identityconnectors.framework.common.objects.OperationOptions;
-import org.identityconnectors.framework.common.objects.ResultsHandler;
 import org.identityconnectors.framework.common.objects.SyncToken;
 import org.identityconnectors.framework.common.objects.Uid;
 import org.identityconnectors.framework.common.objects.filter.FilterBuilder;
@@ -103,14 +102,10 @@ public class AsyncConnectorFacade {
             final Attribute connObjectKey,
             final OperationOptions options) {
 
-        final ConnectorObject[] objects = new ConnectorObject[1];
-        connector.search(objectClass, FilterBuilder.equalTo(connObjectKey), new ResultsHandler() {
-
-            @Override
-            public boolean handle(final ConnectorObject connectorObject) {
-                objects[0] = connectorObject;
-                return false;
-            }
+        ConnectorObject[] objects = new ConnectorObject[1];
+        connector.search(objectClass, FilterBuilder.equalTo(connObjectKey), connectorObject -> {
+            objects[0] = connectorObject;
+            return false;
         }, options);
 
         return new AsyncResult<>(objects[0]);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnIdBundleManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnIdBundleManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnIdBundleManagerImpl.java
index 69e1049..43e54af 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnIdBundleManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnIdBundleManagerImpl.java
@@ -63,8 +63,7 @@ public class ConnIdBundleManagerImpl implements ConnIdBundleManager {
     /**
      * ConnectorInfoManager instances.
      */
-    private final Map<URI, ConnectorInfoManager> connInfoManagers =
-            Collections.synchronizedMap(new LinkedHashMap<URI, ConnectorInfoManager>());
+    private final Map<URI, ConnectorInfoManager> connInfoManagers = Collections.synchronizedMap(new LinkedHashMap<>());
 
     @Override
     public List<URI> getLocations() {
@@ -195,7 +194,7 @@ public class ConnIdBundleManagerImpl implements ConnIdBundleManager {
         init();
 
         if (connInfoManagers.isEmpty()) {
-            for (URI location : locations) {
+            locations.forEach(location -> {
                 try {
                     if ("file".equals(location.getScheme())) {
                         LOG.debug("Local initialization: {}", location);
@@ -209,16 +208,18 @@ public class ConnIdBundleManagerImpl implements ConnIdBundleManager {
                 } catch (Exception e) {
                     LOG.error("Could not process {}", location, e);
                 }
-            }
+            });
         }
 
         if (LOG.isDebugEnabled()) {
-            for (Map.Entry<URI, ConnectorInfoManager> entry : connInfoManagers.entrySet()) {
+            connInfoManagers.entrySet().stream().map(entry -> {
                 LOG.debug("Connector bundles found at {}", entry.getKey());
-                for (ConnectorInfo connInfo : entry.getValue().getConnectorInfos()) {
+                return entry;
+            }).forEachOrdered(entry -> {
+                entry.getValue().getConnectorInfos().forEach(connInfo -> {
                     LOG.debug("\t{}", connInfo.getConnectorDisplayName());
-                }
-            }
+                });
+            });
         }
 
         return connInfoManagers;
@@ -277,12 +278,12 @@ public class ConnIdBundleManagerImpl implements ConnIdBundleManager {
         }
 
         if (LOG.isDebugEnabled()) {
-            for (String propName : properties.getPropertyNames()) {
+            properties.getPropertyNames().forEach(propName -> {
                 LOG.debug("Property Name: {}"
                         + "\nProperty Type: {}",
                         properties.getProperty(propName).getName(),
                         properties.getProperty(propName).getType());
-            }
+            });
         }
 
         return properties;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
index f1c463d..10f2e03 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
@@ -318,19 +318,13 @@ public class ConnectorFacadeProxy implements Connector {
             final SyncResultsHandler handler,
             final OperationOptions options) {
 
-        search(objectClass, filterBuilder == null ? null : filterBuilder.build(), new ResultsHandler() {
-
-            @Transactional
-            @Override
-            public boolean handle(final ConnectorObject obj) {
-                return handler.handle(new SyncDeltaBuilder().
-                        setObject(obj).
-                        setUid(obj.getUid()).
+        search(objectClass, filterBuilder == null ? null : filterBuilder.build(), object
+                -> handler.handle(new SyncDeltaBuilder().
+                        setObject(object).
+                        setUid(object.getUid()).
                         setDeltaType(SyncDeltaType.CREATE_OR_UPDATE).
                         setToken(new SyncToken("")).
-                        build());
-            }
-        }, options);
+                        build()), options);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
index eda96c4..468f88e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
@@ -286,7 +286,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
             userPatch.setKey(updated.getLeft().getResult());
 
             List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(
-                    new WorkflowResult<Pair<UserPatch, Boolean>>(
+                    new WorkflowResult<>(
                             Pair.of(userPatch, Boolean.FALSE),
                             updated.getLeft().getPropByRes(), updated.getLeft().getPerformedTasks()));
             taskExecutor.execute(tasks, false);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
index 86a97ca..6547284 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
@@ -86,17 +86,13 @@ public class AfterHandlingJob extends AbstractInterruptableJob {
 
         try {
             AuthContextUtils.execWithAuthContext(context.getMergedJobDataMap().getString(JobManager.DOMAIN_KEY),
-                    new AuthContextUtils.Executable<Void>() {
-
-                @Override
-                public Void exec() {
-                    notificationManager.createTasks(
-                            (AfterHandlingEvent) context.getMergedJobDataMap().get(AfterHandlingEvent.JOBMAP_KEY));
-                    auditManager.audit(
-                            (AfterHandlingEvent) context.getMergedJobDataMap().get(AfterHandlingEvent.JOBMAP_KEY));
-                    return null;
-                }
-            });
+                    () -> {
+                        notificationManager.createTasks(
+                                (AfterHandlingEvent) context.getMergedJobDataMap().get(AfterHandlingEvent.JOBMAP_KEY));
+                        auditManager.audit(
+                                (AfterHandlingEvent) context.getMergedJobDataMap().get(AfterHandlingEvent.JOBMAP_KEY));
+                        return null;
+                    });
         } catch (RuntimeException e) {
             throw new JobExecutionException("While handling notification / audit events", e);
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SetUMembershipsJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SetUMembershipsJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SetUMembershipsJob.java
index 1b509d7..23b21be 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SetUMembershipsJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/SetUMembershipsJob.java
@@ -51,37 +51,35 @@ public class SetUMembershipsJob extends AbstractInterruptableJob {
 
         try {
             AuthContextUtils.execWithAuthContext(context.getMergedJobDataMap().getString(JobManager.DOMAIN_KEY),
-                    new AuthContextUtils.Executable<Void>() {
+                    () -> {
+                        @SuppressWarnings("unchecked")
+                        Map<String, Set<String>> memberships =
+                        (Map<String, Set<String>>) context.getMergedJobDataMap().get(MEMBERSHIPS_KEY);
 
-                @Override
-                public Void exec() {
-                    @SuppressWarnings("unchecked")
-                    Map<String, Set<String>> memberships =
-                            (Map<String, Set<String>>) context.getMergedJobDataMap().get(MEMBERSHIPS_KEY);
+                        LOG.debug("About to set memberships (User -> Groups) {}", memberships);
 
-                    LOG.debug("About to set memberships (User -> Groups) {}", memberships);
+                        memberships.entrySet().stream().map(membership -> {
+                            UserPatch userPatch = new UserPatch();
+                            userPatch.setKey(membership.getKey());
+                            membership.getValue().forEach(groupKey -> {
+                                userPatch.getMemberships().add(
+                                        new MembershipPatch.Builder().
+                                                operation(PatchOperation.ADD_REPLACE).
+                                                group(groupKey).
+                                                build());
+                            });
+                            return userPatch;
+                        }).filter(userPatch -> (!userPatch.isEmpty())).
+                                map((userPatch) -> {
+                                    LOG.debug("About to update User {}", userPatch.getKey());
+                                    return userPatch;
+                                }).
+                                forEachOrdered((userPatch) -> {
+                                    userProvisioningManager.update(userPatch, true);
+                                });
 
-                    for (Map.Entry<String, Set<String>> membership : memberships.entrySet()) {
-                        UserPatch userPatch = new UserPatch();
-                        userPatch.setKey(membership.getKey());
-
-                        for (String groupKey : membership.getValue()) {
-                            userPatch.getMemberships().add(
-                                    new MembershipPatch.Builder().
-                                    operation(PatchOperation.ADD_REPLACE).
-                                    group(groupKey).
-                                    build());
-                        }
-
-                        if (!userPatch.isEmpty()) {
-                            LOG.debug("About to update User {}", userPatch.getKey());
-                            userProvisioningManager.update(userPatch, true);
-                        }
-                    }
-
-                    return null;
-                }
-            });
+                        return null;
+                    });
         } catch (RuntimeException e) {
             LOG.error("While setting memberships", e);
             throw new JobExecutionException("While executing memberships", e);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
index 041d3b4..1b320b7 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/TaskJob.java
@@ -67,27 +67,23 @@ public class TaskJob extends AbstractInterruptableJob {
 
         try {
             AuthContextUtils.execWithAuthContext(context.getMergedJobDataMap().getString(JobManager.DOMAIN_KEY),
-                    new AuthContextUtils.Executable<Void>() {
+                    () -> {
+                        try {
+                            Class<?> delegateClass =
+                            ClassUtils.getClass(context.getMergedJobDataMap().getString(DELEGATE_CLASS_KEY));
 
-                @Override
-                public Void exec() {
-                    try {
-                        Class<?> delegateClass =
-                                ClassUtils.getClass(context.getMergedJobDataMap().getString(DELEGATE_CLASS_KEY));
+                            ((SchedTaskJobDelegate) ApplicationContextProvider.getBeanFactory().
+                                    createBean(delegateClass, AbstractBeanDefinition.AUTOWIRE_BY_NAME, false)).
+                                    execute(taskKey,
+                                            context.getMergedJobDataMap().getBoolean(DRY_RUN_JOBDETAIL_KEY),
+                                            context);
+                        } catch (Exception e) {
+                            LOG.error("While executing task {}", taskKey, e);
+                            throw new RuntimeException(e);
+                        }
 
-                        ((SchedTaskJobDelegate) ApplicationContextProvider.getBeanFactory().
-                                createBean(delegateClass, AbstractBeanDefinition.AUTOWIRE_BY_NAME, false)).
-                                execute(taskKey,
-                                        context.getMergedJobDataMap().getBoolean(DRY_RUN_JOBDETAIL_KEY),
-                                        context);
-                    } catch (Exception e) {
-                        LOG.error("While executing task {}", taskKey, e);
-                        throw new RuntimeException(e);
-                    }
-
-                    return null;
-                }
-            });
+                        return null;
+                    });
         } catch (RuntimeException e) {
             LOG.error("While executing task {}", taskKey, e);
             throw new JobExecutionException("While executing task " + taskKey, e);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/notification/NotificationJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/notification/NotificationJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/notification/NotificationJob.java
index 153a221..13d45b0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/notification/NotificationJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/notification/NotificationJob.java
@@ -61,19 +61,15 @@ public class NotificationJob extends AbstractInterruptableJob {
 
         for (String domain : domainsHolder.getDomains().keySet()) {
             try {
-                AuthContextUtils.execWithAuthContext(domain, new AuthContextUtils.Executable<Void>() {
-
-                    @Override
-                    public Void exec() {
-                        try {
-                            delegate.execute();
-                        } catch (Exception e) {
-                            LOG.error("While sending out notifications", e);
-                            throw new RuntimeException(e);
-                        }
-
-                        return null;
+                AuthContextUtils.execWithAuthContext(domain, () -> {
+                    try {
+                        delegate.execute();
+                    } catch (Exception e) {
+                        LOG.error("While sending out notifications", e);
+                        throw new RuntimeException(e);
                     }
+
+                    return null;
                 });
             } catch (RuntimeException e) {
                 LOG.error("While sending out notifications", e);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReportJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReportJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReportJob.java
index 78183d5..b05c507 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReportJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReportJob.java
@@ -57,20 +57,16 @@ public class ReportJob extends AbstractInterruptableJob {
 
         try {
             AuthContextUtils.execWithAuthContext(context.getMergedJobDataMap().getString(JobManager.DOMAIN_KEY),
-                    new AuthContextUtils.Executable<Void>() {
+                    () -> {
+                        try {
+                            delegate.execute(reportKey);
+                        } catch (Exception e) {
+                            LOG.error("While executing report {}", reportKey, e);
+                            throw new RuntimeException(e);
+                        }
 
-                @Override
-                public Void exec() {
-                    try {
-                        delegate.execute(reportKey);
-                    } catch (Exception e) {
-                        LOG.error("While executing report {}", reportKey, e);
-                        throw new RuntimeException(e);
-                    }
-
-                    return null;
-                }
-            });
+                        return null;
+                    });
         } catch (RuntimeException e) {
             LOG.error("While executing report {}", reportKey, e);
             throw new JobExecutionException("While executing report " + reportKey, e);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/spring/src/main/java/org/apache/syncope/core/spring/security/JWTAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/JWTAuthenticationProvider.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/JWTAuthenticationProvider.java
index 2741d86..3f4a488 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/JWTAuthenticationProvider.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/JWTAuthenticationProvider.java
@@ -41,16 +41,11 @@ public class JWTAuthenticationProvider implements AuthenticationProvider {
     public Authentication authenticate(final Authentication authentication) throws AuthenticationException {
         final JWTAuthentication jwtAuthentication = (JWTAuthentication) authentication;
 
-        AuthContextUtils.execWithAuthContext(
-                jwtAuthentication.getDetails().getDomain(), new AuthContextUtils.Executable<Void>() {
-
-            @Override
-            public Void exec() {
-                Pair<String, Set<SyncopeGrantedAuthority>> authenticated = dataAccessor.authenticate(jwtAuthentication);
-                jwtAuthentication.setUsername(authenticated.getLeft());
-                jwtAuthentication.getAuthorities().addAll(authenticated.getRight());
-                return null;
-            }
+        AuthContextUtils.execWithAuthContext(jwtAuthentication.getDetails().getDomain(), () -> {
+            Pair<String, Set<SyncopeGrantedAuthority>> authenticated = dataAccessor.authenticate(jwtAuthentication);
+            jwtAuthentication.setUsername(authenticated.getLeft());
+            jwtAuthentication.getAuthorities().addAll(authenticated.getRight());
+            return null;
         });
 
         JwtClaims claims = jwtAuthentication.getClaims();

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
index e68cb6b..b76de11 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.spring.security;
 
-import org.apache.commons.text.CharacterPredicate;
 import org.apache.commons.text.RandomStringGenerator;
 import org.apache.syncope.common.lib.SecureTextRandomProvider;
 
@@ -26,13 +25,7 @@ public final class SecureRandomUtils {
 
     private static final RandomStringGenerator FOR_PASSWORD = new RandomStringGenerator.Builder().
             usingRandom(new SecureTextRandomProvider()).
-            filteredBy(new CharacterPredicate() {
-
-                @Override
-                public boolean test(final int codePoint) {
-                    return (codePoint >= 'a' && codePoint <= 'z') || (codePoint >= '0' && codePoint <= '9');
-                }
-            }).
+            filteredBy(codePoint -> (codePoint >= 'a' && codePoint <= 'z') || (codePoint >= '0' && codePoint <= '9')).
             build();
 
     private static final RandomStringGenerator FOR_LETTERS = new RandomStringGenerator.Builder().
@@ -60,17 +53,13 @@ public final class SecureRandomUtils {
     public static String generateRandomSpecialCharacter(final char[] characters) {
         return new RandomStringGenerator.Builder().
                 usingRandom(new SecureTextRandomProvider()).
-                filteredBy(new CharacterPredicate() {
-
-                    @Override
-                    public boolean test(final int codePoint) {
-                        boolean found = false;
-                        for (int i = 0; i < characters.length && !found; i++) {
-                            found = codePoint == Character.codePointAt(characters, i);
-                        }
-
-                        return found;
+                filteredBy(codePoint -> {
+                    boolean found = false;
+                    for (int i = 0; i < characters.length && !found; i++) {
+                        found = codePoint == Character.codePointAt(characters, i);
                     }
+
+                    return found;
                 }).build().generate(1);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/core/spring/src/main/java/org/apache/syncope/core/spring/security/UsernamePasswordAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/UsernamePasswordAuthenticationProvider.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/UsernamePasswordAuthenticationProvider.java
index da11553..7b8d0c8 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/UsernamePasswordAuthenticationProvider.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/UsernamePasswordAuthenticationProvider.java
@@ -24,7 +24,6 @@ import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.types.AuditElements;
 import org.apache.syncope.common.lib.types.AuditElements.Result;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
-import org.apache.syncope.core.spring.security.AuthContextUtils.Executable;
 import org.apache.syncope.core.persistence.api.entity.Domain;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.provisioning.api.UserProvisioningManager;
@@ -110,41 +109,26 @@ public class UsernamePasswordAuthenticationProvider implements AuthenticationPro
                         adminPassword);
             } else {
                 final String domainToFind = domainKey;
-                authenticated = AuthContextUtils.execWithAuthContext(
-                        SyncopeConstants.MASTER_DOMAIN, new Executable<Boolean>() {
-
-                    @Override
-                    public Boolean exec() {
-                        Domain domain = dataAccessor.findDomain(domainToFind);
-
-                        return ENCRYPTOR.verify(
-                                authentication.getCredentials().toString(),
-                                domain.getAdminCipherAlgorithm(),
-                                domain.getAdminPwd());
-                    }
+                authenticated = AuthContextUtils.execWithAuthContext(SyncopeConstants.MASTER_DOMAIN, () -> {
+                    Domain domain = dataAccessor.findDomain(domainToFind);
+
+                    return ENCRYPTOR.verify(
+                            authentication.getCredentials().toString(),
+                            domain.getAdminCipherAlgorithm(),
+                            domain.getAdminPwd());
                 });
             }
         } else {
             final Pair<User, Boolean> authResult =
-                    AuthContextUtils.execWithAuthContext(domainKey, new Executable<Pair<User, Boolean>>() {
-
-                        @Override
-                        public Pair<User, Boolean> exec() {
-                            return dataAccessor.authenticate(authentication);
-                        }
-                    });
+                    AuthContextUtils.execWithAuthContext(domainKey, () -> dataAccessor.authenticate(authentication));
             authenticated = authResult.getValue();
             if (authResult.getLeft() != null && authResult.getRight() != null) {
                 username[0] = authResult.getLeft().getUsername();
 
                 if (!authResult.getRight()) {
-                    AuthContextUtils.execWithAuthContext(domainKey, new Executable<Void>() {
-
-                        @Override
-                        public Void exec() {
-                            provisioningManager.internalSuspend(authResult.getLeft().getKey());
-                            return null;
-                        }
+                    AuthContextUtils.execWithAuthContext(domainKey, () -> {
+                        provisioningManager.internalSuspend(authResult.getLeft().getKey());
+                        return null;
                     });
                 }
             }
@@ -156,48 +140,34 @@ public class UsernamePasswordAuthenticationProvider implements AuthenticationPro
         final boolean isAuthenticated = authenticated != null && authenticated;
         UsernamePasswordAuthenticationToken token;
         if (isAuthenticated) {
-            token = AuthContextUtils.execWithAuthContext(
-                    domainKey, new Executable<UsernamePasswordAuthenticationToken>() {
-
-                @Override
-                public UsernamePasswordAuthenticationToken exec() {
-                    UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
-                            username[0],
-                            null,
-                            dataAccessor.getAuthorities(username[0]));
-                    token.setDetails(authentication.getDetails());
-
-                    dataAccessor.audit(AuditElements.EventCategoryType.LOGIC,
-                            AuditElements.AUTHENTICATION_CATEGORY,
-                            null,
-                            AuditElements.LOGIN_EVENT,
-                            Result.SUCCESS,
-                            null,
-                            isAuthenticated,
-                            authentication,
-                            "Successfully authenticated, with entitlements: " + token.getAuthorities());
-                    return token;
-                }
+            token = AuthContextUtils.execWithAuthContext(domainKey, () -> {
+                UsernamePasswordAuthenticationToken token1 =
+                        new UsernamePasswordAuthenticationToken(
+                                username[0],
+                                null,
+                                dataAccessor.getAuthorities(username[0]));
+                token1.setDetails(authentication.getDetails());
+                dataAccessor.audit(AuditElements.EventCategoryType.LOGIC,
+                        AuditElements.AUTHENTICATION_CATEGORY, null,
+                        AuditElements.LOGIN_EVENT, Result.SUCCESS, null, isAuthenticated, authentication,
+                        "Successfully authenticated, with entitlements: " + token1.getAuthorities());
+                return token1;
             });
 
             LOG.debug("User {} successfully authenticated, with entitlements {}",
                     username[0], token.getAuthorities());
         } else {
-            AuthContextUtils.execWithAuthContext(domainKey, new Executable<Void>() {
-
-                @Override
-                public Void exec() {
-                    dataAccessor.audit(AuditElements.EventCategoryType.LOGIC,
-                            AuditElements.AUTHENTICATION_CATEGORY,
-                            null,
-                            AuditElements.LOGIN_EVENT,
-                            Result.FAILURE,
-                            null,
-                            isAuthenticated,
-                            authentication,
-                            "User " + username[0] + " not authenticated");
-                    return null;
-                }
+            AuthContextUtils.execWithAuthContext(domainKey, () -> {
+                dataAccessor.audit(AuditElements.EventCategoryType.LOGIC,
+                        AuditElements.AUTHENTICATION_CATEGORY,
+                        null,
+                        AuditElements.LOGIN_EVENT,
+                        Result.FAILURE,
+                        null,
+                        isAuthenticated,
+                        authentication,
+                        "User " + username[0] + " not authenticated");
+                return null;
             });
 
             LOG.debug("User {} not authenticated", username[0]);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
index f6f37a6..007dda8 100644
--- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
+++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesDirectoryPanel.java
@@ -101,7 +101,7 @@ public class CamelRoutesDirectoryPanel extends DirectoryPanel<
     @Override
     protected List<IColumn<CamelRouteTO, String>> getColumns() {
         final List<IColumn<CamelRouteTO, String>> columns = new ArrayList<>();
-        columns.add(new PropertyColumn<CamelRouteTO, String>(new ResourceModel("key"), "key", "key"));
+        columns.add(new PropertyColumn<>(new ResourceModel("key"), "key", "key"));
         return columns;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/widgets/CamelMetricsWidget.java
----------------------------------------------------------------------
diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/widgets/CamelMetricsWidget.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/widgets/CamelMetricsWidget.java
index b673bfa..ce1e461 100644
--- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/widgets/CamelMetricsWidget.java
+++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/widgets/CamelMetricsWidget.java
@@ -24,8 +24,7 @@ import com.pingunaut.wicket.chartjs.data.sets.BarDataSet;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
 import org.apache.syncope.client.console.annotations.ExtWidget;
 import org.apache.syncope.client.console.rest.CamelRoutesRestClient;
 import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
@@ -94,22 +93,11 @@ public class CamelMetricsWidget extends BaseExtWidget {
         bar.getOptions().setResponsive(true);
         bar.getOptions().setMaintainAspectRatio(true);
 
-        bar.getData().setLabels(CollectionUtils.collect(meanRates, new Transformer<CamelMetrics.MeanRate, String>() {
+        bar.getData().setLabels(
+                meanRates.stream().map(input -> input.getRouteId()).collect(Collectors.toList()));
 
-            @Override
-            public String transform(final CamelMetrics.MeanRate input) {
-                return input.getRouteId();
-            }
-        }, new ArrayList<String>()));
-
-        BarDataSet dataset = new BarDataSet(CollectionUtils.collect(meanRates,
-                new Transformer<CamelMetrics.MeanRate, Double>() {
-
-            @Override
-            public Double transform(final CamelMetrics.MeanRate input) {
-                return input.getValue();
-            }
-        }, new ArrayList<Double>()));
+        BarDataSet dataset = new BarDataSet(
+                meanRates.stream().map(input -> input.getValue()).collect(Collectors.toList()));
         dataset.setFillColor("blue");
         bar.getData().setDatasets(Collections.singletonList(dataset));
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
index c691a6c..0969e13 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
@@ -19,14 +19,12 @@
 package org.apache.syncope.core.logic;
 
 import com.codahale.metrics.MetricRegistry;
-import com.codahale.metrics.Timer;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import org.apache.camel.component.metrics.routepolicy.MetricsRegistryService;
-import java.util.Map;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.to.CamelMetrics;
@@ -61,9 +59,9 @@ public class CamelRouteLogic extends AbstractTransactionalLogic<CamelRouteTO> {
     public List<CamelRouteTO> list(final AnyTypeKind anyTypeKind) {
         List<CamelRouteTO> routes = new ArrayList<>();
 
-        for (CamelRoute route : routeDAO.find(anyTypeKind)) {
+        routeDAO.find(anyTypeKind).forEach(route -> {
             routes.add(binder.getRouteTO(route));
-        }
+        });
         return routes;
     }
 
@@ -114,12 +112,14 @@ public class CamelRouteLogic extends AbstractTransactionalLogic<CamelRouteTO> {
             LOG.warn("Camel metrics not available");
         } else {
             MetricRegistry registry = registryService.getMetricsRegistry();
-            for (Map.Entry<String, Timer> entry : registry.getTimers().entrySet()) {
+            registry.getTimers().entrySet().stream().map(entry -> {
                 CamelMetrics.MeanRate meanRate = new CamelMetrics.MeanRate();
                 meanRate.setRouteId(StringUtils.substringBetween(entry.getKey(), ".", "."));
                 meanRate.setValue(entry.getValue().getMeanRate());
+                return meanRate;
+            }).forEachOrdered(meanRate -> {
                 metrics.getResponseMeanRates().add(meanRate);
-            }
+            });
 
             Collections.sort(metrics.getResponseMeanRates(),
                     (o1, o2) -> Collections.reverseOrder(Comparator.<Double>naturalOrder()).

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index d5499da..781362a 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -345,9 +345,9 @@ public class CamelUserProvisioningManager extends AbstractCamelProvisioningManag
             result.setStatus(ProvisioningReport.Status.FAILURE);
             result.setMessage("Update failed, trying to pull status anyway (if configured)\n" + ex.getMessage());
 
-            WorkflowResult<Pair<UserPatch, Boolean>> updated = new WorkflowResult<Pair<UserPatch, Boolean>>(
+            WorkflowResult<Pair<UserPatch, Boolean>> updated = new WorkflowResult<>(
                     new ImmutablePair<>(userPatch, false), new PropagationByResource(),
-                    new HashSet<String>());
+                    new HashSet<>());
             sendMessage("direct:userInPull", updated, props);
             exchange = pollingConsumer.receive();
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/SuspendProducer.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/SuspendProducer.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/SuspendProducer.java
index 235faea..1f541df 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/SuspendProducer.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/SuspendProducer.java
@@ -48,7 +48,7 @@ public class SuspendProducer extends AbstractProducer {
                 userPatch.setKey(updated.getKey().getResult());
 
                 List<PropagationTask> tasks = getPropagationManager().getUserUpdateTasks(
-                        new WorkflowResult<Pair<UserPatch, Boolean>>(
+                        new WorkflowResult<>(
                                 new ImmutablePair<>(userPatch, Boolean.FALSE),
                                 updated.getKey().getPropByRes(), updated.getKey().getPerformedTasks()));
                 getPropagationTaskExecutor().execute(tasks, false);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
index 61bd660..857948b 100644
--- a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
+++ b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
@@ -60,7 +60,7 @@ public class ImportMetadata extends TogglePanel<Serializable> {
         config.showRemove(false);
         config.showPreview(false);
         final BootstrapFileInputField fileUpload =
-                new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<FileUpload>()), config);
+                new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<>()), config);
         fileUpload.setOutputMarkupId(true);
         fileUpload.add(new AjaxFormSubmitBehavior(Constants.ON_CHANGE) {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
index 2874a84..45bdef3 100644
--- a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
+++ b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
@@ -187,14 +187,14 @@ public class SAML2IdPsDirectoryPanel extends DirectoryPanel<
     protected List<IColumn<SAML2IdPTO, String>> getColumns() {
         List<IColumn<SAML2IdPTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<SAML2IdPTO>(new ResourceModel("key"), "key", "key"));
-        columns.add(new PropertyColumn<SAML2IdPTO, String>(new ResourceModel("name"), "name", "name"));
-        columns.add(new PropertyColumn<SAML2IdPTO, String>(new ResourceModel("entityID"), "entityID", "entityID"));
-        columns.add(new BooleanPropertyColumn<SAML2IdPTO>(
+        columns.add(new KeyPropertyColumn<>(new ResourceModel("key"), "key", "key"));
+        columns.add(new PropertyColumn<>(new ResourceModel("name"), "name", "name"));
+        columns.add(new PropertyColumn<>(new ResourceModel("entityID"), "entityID", "entityID"));
+        columns.add(new BooleanPropertyColumn<>(
                 new ResourceModel("useDeflateEncoding"), "useDeflateEncoding", "useDeflateEncoding"));
-        columns.add(new PropertyColumn<SAML2IdPTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("bindingType"), "bindingType", "bindingType"));
-        columns.add(new BooleanPropertyColumn<SAML2IdPTO>(
+        columns.add(new BooleanPropertyColumn<>(
                 new ResourceModel("logoutSupported"), "logoutSupported", "logoutSupported"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAMLSSOLoginFormPanel.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAMLSSOLoginFormPanel.java b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAMLSSOLoginFormPanel.java
index b3fab14..8bd7a1e 100644
--- a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAMLSSOLoginFormPanel.java
+++ b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/SAMLSSOLoginFormPanel.java
@@ -21,8 +21,6 @@ package org.apache.syncope.client.console.panels;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
@@ -71,13 +69,8 @@ public class SAMLSSOLoginFormPanel extends SSOLoginFormPanel {
 
             @Override
             public SAML2IdPTO getObject(final String id, final IModel<? extends List<? extends SAML2IdPTO>> choices) {
-                return IterableUtils.find(choices.getObject(), new Predicate<SAML2IdPTO>() {
-
-                    @Override
-                    public boolean evaluate(final SAML2IdPTO object) {
-                        return object.getEntityID().equals(id);
-                    }
-                });
+                return choices.getObject().stream().
+                        filter(idp -> idp.getEntityID().equals(id)).findFirst().orElse(null);
             }
         });
         idps.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {


[5/6] syncope git commit: [SYNCOPE-1197] SAML label must be hidden when no IdPs are configured

Posted by il...@apache.org.
[SYNCOPE-1197] SAML label must be hidden when no IdPs are configured


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

Branch: refs/heads/2_0_X
Commit: 5b9cb93da8d0b82ae35e8353372b47d275d19a80
Parents: 4e6f6d0
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Aug 25 17:37:12 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Aug 25 17:37:12 2017 +0200

----------------------------------------------------------------------
 .../src/main/resources/META-INF/resources/app/views/self.html      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/5b9cb93d/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
index f895c1b..7d388a5 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
@@ -53,7 +53,7 @@ under the License.
                           ng-click="login(credentials)">Login</button>
                 </div>
                 <div class="form-group">
-                  <span>SAML 2.0</span>
+                  <span ng-if="$root.saml2spExtAvailable()">SAML 2.0</span>
                   <select id="saml2sp" style="width: 100%; text-align: left;" class="btn dropdown-toggle btn-default"
                           ng-if="$root.saml2spExtAvailable()"
                           ng-options="idp.name for idp in saml2idps.available track by idp.entityID"


[4/6] syncope git commit: [SYNCOPE-938] Applying all Netbeans hints for upgrade to JDK 8

Posted by il...@apache.org.
[SYNCOPE-938] Applying all Netbeans hints for upgrade to JDK 8


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

Branch: refs/heads/master
Commit: 5be24a033334a8a15b0c12dfaef1e5326d813ced
Parents: a02779a
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Aug 25 17:36:06 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Aug 25 17:36:06 2017 +0200

----------------------------------------------------------------------
 .../client/console/approvals/Approval.java      |   2 +-
 .../approvals/ApprovalDirectoryPanel.java       |  14 +-
 .../MailTemplateDirectoryPanel.java             |   2 +-
 .../NotificationDirectoryPanel.java             |  12 +-
 .../console/notifications/TemplateModal.java    |   2 +-
 .../syncope/client/console/pages/Login.java     |  11 +-
 .../console/pages/MustChangePassword.java       |   4 +-
 .../panels/AbstractSchemaDetailsPanel.java      |   4 +-
 .../panels/AccessTokenDirectoryPanel.java       |   6 +-
 .../console/panels/ActionDataTablePanel.java    |   2 +-
 .../console/panels/AjaxDataTablePanel.java      |  15 +-
 .../console/panels/AnyTypeClassesPanel.java     |   4 +-
 .../console/panels/AnyTypeDetailsPanel.java     |   4 +-
 .../client/console/panels/AnyTypesPanel.java    |   4 +-
 .../ConnInstanceHistoryConfDirectoryPanel.java  |   6 +-
 .../client/console/panels/DerSchemaDetails.java |   2 +-
 .../client/console/panels/DirectoryPanel.java   |   4 +-
 .../console/panels/DynRealmDirectoryPanel.java  |   2 +-
 .../console/panels/FailureMessageModal.java     |   2 +-
 .../console/panels/NewWorkflowProcess.java      |   2 +-
 .../console/panels/PlainSchemaDetails.java      |  22 +--
 .../panels/RelationshipTypeDetailsPanel.java    |   6 +-
 .../console/panels/RelationshipTypesPanel.java  |   4 +-
 .../ResourceHistoryConfDirectoryPanel.java      |   6 +-
 .../console/panels/RoleDirectoryPanel.java      |   8 +-
 .../client/console/panels/SchemaModalPanel.java |   2 +-
 .../panels/SecurityQuestionDetailsPanel.java    |   2 +-
 .../console/panels/SecurityQuestionsPanel.java  |   4 +-
 .../panels/TypeExtensionDirectoryPanel.java     |  13 +-
 .../console/panels/WorkflowDirectoryPanel.java  |   6 +-
 .../policies/AccountPolicyDirectoryPanel.java   |   6 +-
 .../policies/PasswordPolicyDirectoryPanel.java  |   4 +-
 .../console/policies/PolicyDirectoryPanel.java  |  10 +-
 .../console/reports/ReportDirectoryPanel.java   |  18 +-
 .../reports/ReportTemplateDirectoryPanel.java   |   2 +-
 .../console/status/AnyStatusDirectoryPanel.java |  32 ++--
 .../console/status/ChangePasswordModal.java     |   4 +-
 .../status/ResourceStatusDirectoryPanel.java    |   4 +-
 .../client/console/tasks/CrontabPanel.java      |   6 +-
 .../console/tasks/ExecutionsDirectoryPanel.java |   8 +-
 .../tasks/NotificationTaskDirectoryPanel.java   |  14 +-
 .../tasks/PropagationTaskDirectoryPanel.java    |  16 +-
 .../tasks/ProvisioningTaskDirectoryPanel.java   |  18 +-
 .../client/console/tasks/PushTaskFilters.java   |   3 +-
 .../console/tasks/SchedTaskDirectoryPanel.java  |  12 +-
 .../client/console/topology/Topology.java       |  66 ++++---
 .../data/table/AjaxFallbackDataTable.java       |  29 +--
 .../markup/html/form/AjaxDateFieldPanel.java    |   2 +-
 .../html/form/AjaxDateTimeFieldPanel.java       |   4 +-
 .../markup/html/form/BinaryFieldPanel.java      |   2 +-
 .../wicket/markup/html/form/FieldPanel.java     |   4 +-
 .../html/form/IndicatingOnConfirmAjaxLink.java  |   2 +-
 .../html/list/ConnConfPropertyListView.java     |  11 +-
 .../client/console/widgets/JobWidget.java       |  22 +--
 .../ReconciliationDetailsModalPanel.java        |   2 +-
 .../console/wizards/AbstractMappingPanel.java   |  93 +++++-----
 .../console/wizards/any/AnyObjectDetails.java   |   4 +-
 .../console/wizards/any/GroupDetails.java       |   3 +-
 .../client/console/wizards/any/Ownership.java   |  11 +-
 .../console/wizards/any/PasswordPanel.java      |   8 +-
 .../client/console/wizards/any/UserDetails.java |   3 +-
 .../client/console/wizards/any/VirAttrs.java    |  18 +-
 .../resources/JEXLTransformersTogglePanel.java  |   4 +-
 .../ResourceConnCapabilitiesPanel.java          |   5 +-
 .../resources/ResourceConnConfPanel.java        |  29 ++-
 .../wizards/resources/ResourceDetailsPanel.java |  16 +-
 .../resources/ResourceSecurityPanel.java        |  19 +-
 .../enduser/SyncopeEnduserApplication.java      |  18 +-
 .../client/enduser/SyncopeEnduserSession.java   |  12 +-
 .../enduser/resources/BaseUserSelfResource.java |  42 ++---
 .../client/enduser/resources/InfoResource.java  |   2 +-
 .../enduser/resources/SchemaResource.java       |  56 +++---
 .../resources/UserSelfCreateResource.java       | 128 ++++++--------
 .../enduser/resources/UserSelfReadResource.java |  44 ++---
 .../resources/UserSelfUpdateResource.java       | 154 +++++++---------
 .../enduser/util/UserRequestValidator.java      |  32 ++--
 .../rest/api/beans/ConnObjectTOListQuery.java   |   4 +-
 .../common/rest/api/beans/SchemaQuery.java      |   6 +-
 .../syncope/core/logic/UserWorkflowLogic.java   |   7 +-
 .../core/logic/cocoon/XSLTTransformer.java      |  11 +-
 .../core/logic/init/EntitlementLoader.java      |  10 +-
 .../syncope/core/logic/init/LoggerLoader.java   |  57 +++---
 .../core/logic/init/LogicInitializer.java       |  15 +-
 .../api/search/SearchCondVisitor.java           |   1 +
 .../provisioning/api/EntitlementsHolder.java    |   2 +-
 .../provisioning/java/AsyncConnectorFacade.java |  13 +-
 .../java/ConnIdBundleManagerImpl.java           |  21 +--
 .../provisioning/java/ConnectorFacadeProxy.java |  16 +-
 .../java/DefaultUserProvisioningManager.java    |   2 +-
 .../provisioning/java/job/AfterHandlingJob.java |  18 +-
 .../java/job/SetUMembershipsJob.java            |  54 +++---
 .../core/provisioning/java/job/TaskJob.java     |  34 ++--
 .../java/job/notification/NotificationJob.java  |  20 +--
 .../provisioning/java/job/report/ReportJob.java |  22 +--
 .../security/JWTAuthenticationProvider.java     |  15 +-
 .../core/spring/security/SecureRandomUtils.java |  25 +--
 .../UsernamePasswordAuthenticationProvider.java |  98 ++++-------
 .../panels/CamelRoutesDirectoryPanel.java       |   2 +-
 .../console/widgets/CamelMetricsWidget.java     |  22 +--
 .../syncope/core/logic/CamelRouteLogic.java     |  12 +-
 .../camel/CamelUserProvisioningManager.java     |   4 +-
 .../camel/producer/SuspendProducer.java         |   2 +-
 .../client/console/panels/ImportMetadata.java   |   2 +-
 .../console/panels/SAML2IdPsDirectoryPanel.java |  12 +-
 .../console/panels/SAMLSSOLoginFormPanel.java   |  11 +-
 .../console/wizards/SAML2IdPWizardBuilder.java  |  20 +--
 .../syncope/core/logic/saml2/SAML2IdPCache.java |   3 +-
 .../fit/buildtools/ServiceTimeoutServlet.java   |   5 +-
 .../fit/buildtools/cxf/ProvisioningImpl.java    | 175 +++++++++----------
 .../core/reference/ITImplementationLookup.java  |  20 +--
 .../fit/console/AbstractConsoleITCase.java      |  40 ++---
 .../apache/syncope/fit/console/LogsITCase.java  |  19 +-
 .../syncope/installer/utilities/HttpUtils.java  |  13 +-
 113 files changed, 861 insertions(+), 1131 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
index d56dab8..18bf9a3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/Approval.java
@@ -171,7 +171,7 @@ public abstract class Approval extends Panel {
 
                     case String:
                     default:
-                        field = new AjaxTextFieldPanel("value", label, new PropertyModel<String>(prop, "value"), false);
+                        field = new AjaxTextFieldPanel("value", label, new PropertyModel<>(prop, "value"), false);
                         break;
                 }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
index f40d7c6..29ea4aa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java
@@ -88,17 +88,17 @@ public class ApprovalDirectoryPanel
     protected List<IColumn<WorkflowFormTO, String>> getColumns() {
 
         List<IColumn<WorkflowFormTO, String>> columns = new ArrayList<>();
-        columns.add(new PropertyColumn<WorkflowFormTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("taskId"), "taskId", "taskId"));
-        columns.add(new PropertyColumn<WorkflowFormTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("key"), "key", "key"));
-        columns.add(new PropertyColumn<WorkflowFormTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("username"), "username", "username"));
-        columns.add(new DatePropertyColumn<WorkflowFormTO>(
+        columns.add(new DatePropertyColumn<>(
                 new ResourceModel("createTime"), "createTime", "createTime"));
-        columns.add(new DatePropertyColumn<WorkflowFormTO>(
+        columns.add(new DatePropertyColumn<>(
                 new ResourceModel("dueDate"), "dueDate", "dueDate"));
-        columns.add(new PropertyColumn<WorkflowFormTO, String>(new ResourceModel("owner"), "owner", "owner"));
+        columns.add(new PropertyColumn<>(new ResourceModel("owner"), "owner", "owner"));
 
         return columns;
     }
@@ -150,7 +150,7 @@ public class ApprovalDirectoryPanel
                     }
 
                 }));
-                
+
                 modal.header(new Model<>(getString("approval.edit", new Model<>(model.getObject()))));
                 modal.show(true);
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
index 355e001..11091c3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
@@ -111,7 +111,7 @@ public class MailTemplateDirectoryPanel
     @Override
     protected List<IColumn<MailTemplateTO, String>> getColumns() {
         List<IColumn<MailTemplateTO, String>> columns = new ArrayList<>();
-        columns.add(new PropertyColumn<MailTemplateTO, String>(new StringResourceModel("key", this), "key", "key"));
+        columns.add(new PropertyColumn<>(new StringResourceModel("key", this), "key", "key"));
         return columns;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
index 740a36d..cb33f80 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
@@ -85,16 +85,16 @@ public class NotificationDirectoryPanel
     @Override
     protected List<IColumn<NotificationTO, String>> getColumns() {
         List<IColumn<NotificationTO, String>> columns = new ArrayList<>();
-        columns.add(new KeyPropertyColumn<NotificationTO>(new StringResourceModel("key", this), "key"));
-        columns.add(new PropertyColumn<NotificationTO, String>(
+        columns.add(new KeyPropertyColumn<>(new StringResourceModel("key", this), "key"));
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("sender", this), "sender", "sender"));
-        columns.add(new PropertyColumn<NotificationTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("subject", this), "subject", "subject"));
-        columns.add(new PropertyColumn<NotificationTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("template", this), "template", "template"));
-        columns.add(new CollectionPropertyColumn<NotificationTO>(
+        columns.add(new CollectionPropertyColumn<>(
                 new StringResourceModel("events", this), "events"));
-        columns.add(new BooleanPropertyColumn<NotificationTO>(
+        columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/notifications/TemplateModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/TemplateModal.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/TemplateModal.java
index 69ac0eb..d6cfce0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/TemplateModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/TemplateModal.java
@@ -51,7 +51,7 @@ public class TemplateModal<T extends EntityTO, F> extends AbstractModalPanel<T>
         this.templateTO = templateTO;
 
         AjaxTextFieldPanel key = new AjaxTextFieldPanel(
-                "key", "key", new PropertyModel<String>(templateTO, "key"), false);
+                "key", "key", new PropertyModel<>(templateTO, "key"), false);
         key.setOutputMarkupPlaceholderTag(true);
         add(key.setRenderBodyOnly(true));
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
index 4c7364f..b17d61e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
@@ -29,7 +29,6 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
 import org.apache.syncope.client.console.init.ConsoleInitializer;
 import org.apache.syncope.client.console.panels.NotificationPanel;
-import org.apache.syncope.client.console.panels.SSOLoginFormPanel;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -88,11 +87,11 @@ public class Login extends WebPage {
 
         form = new StatelessForm<>("login");
 
-        usernameField = new TextField<>("username", new Model<String>());
+        usernameField = new TextField<>("username", new Model<>());
         usernameField.setMarkupId("username");
         form.add(usernameField);
 
-        passwordField = new PasswordTextField("password", new Model<String>());
+        passwordField = new PasswordTextField("password", new Model<>());
         passwordField.setMarkupId("password");
         form.add(passwordField);
 
@@ -137,15 +136,13 @@ public class Login extends WebPage {
                 (ClassPathScanImplementationLookup) SyncopeConsoleApplication.get().
                         getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
         List<Panel> ssoLoginFormPanels = new ArrayList<>();
-        for (Class<? extends SSOLoginFormPanel> ssoLoginFormPanel : classPathScanImplementationLookup.
-                getSSOLoginFormPanels()) {
-
+        classPathScanImplementationLookup.getSSOLoginFormPanels().forEach(ssoLoginFormPanel -> {
             try {
                 ssoLoginFormPanels.add(ssoLoginFormPanel.getConstructor(String.class).newInstance("ssoLogin"));
             } catch (Exception e) {
                 LOG.error("Could not initialize the provided SSO login form panel", e);
             }
-        }
+        });
         ListView<Panel> ssoLogins = new ListView<Panel>("ssoLogins", ssoLoginFormPanels) {
 
             private static final long serialVersionUID = -9180479401817023838L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
index b8d2dd1..f613d54 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java
@@ -67,14 +67,14 @@ public class MustChangePassword extends WebPage {
         usernameField.setEnabled(false);
         form.add(usernameField);
 
-        passwordField = new AjaxPasswordFieldPanel("password", "password", new Model<String>());
+        passwordField = new AjaxPasswordFieldPanel("password", "password", new Model<>());
         passwordField.setRequired(true);
         passwordField.setMarkupId("password");
         passwordField.setPlaceholder("password");
         ((PasswordTextField) passwordField.getField()).setResetPassword(true);
         form.add(passwordField);
 
-        confirmPasswordField = new AjaxPasswordFieldPanel("confirmPassword", "confirmPassword", new Model<String>());
+        confirmPasswordField = new AjaxPasswordFieldPanel("confirmPassword", "confirmPassword", new Model<>());
         confirmPasswordField.setRequired(true);
         confirmPasswordField.setMarkupId("confirmPassword");
         confirmPasswordField.setPlaceholder("confirmPassword");

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSchemaDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSchemaDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSchemaDetailsPanel.java
index ebddc5b..36fb95a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSchemaDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSchemaDetailsPanel.java
@@ -35,7 +35,7 @@ public abstract class AbstractSchemaDetailsPanel extends Panel {
     protected static final Logger LOG = LoggerFactory.getLogger(AbstractSchemaDetailsPanel.class);
 
     protected static final String FORM = "form";
-    
+
     protected final Form<AbstractSchemaTO> schemaForm;
 
     protected final AbstractSchemaTO schemaTO;
@@ -53,7 +53,7 @@ public abstract class AbstractSchemaDetailsPanel extends Panel {
         schemaForm.setOutputMarkupId(true);
 
         final AjaxTextFieldPanel name =
-                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(schemaTO, "key"));
+                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<>(schemaTO, "key"));
         name.addRequiredLabel();
         name.setEnabled(schemaTO == null || schemaTO.getKey() == null || schemaTO.getKey().isEmpty());
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
index 86714ee..082b860 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
@@ -83,12 +83,12 @@ public class AccessTokenDirectoryPanel
     @Override
     protected List<IColumn<AccessTokenTO, String>> getColumns() {
         List<IColumn<AccessTokenTO, String>> columns = new ArrayList<>();
-        columns.add(new KeyPropertyColumn<AccessTokenTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel(Constants.KEY_FIELD_NAME, this),
                 Constants.KEY_FIELD_NAME,
                 Constants.KEY_FIELD_NAME));
 
-        columns.add(new PropertyColumn<AccessTokenTO, String>(new ResourceModel("owner"), "owner", "owner"));
+        columns.add(new PropertyColumn<>(new ResourceModel("owner"), "owner", "owner"));
 
         columns.add(new AbstractColumn<AccessTokenTO, String>(new ResourceModel("issuedAt", "")) {
 
@@ -107,7 +107,7 @@ public class AccessTokenDirectoryPanel
             }
         });
 
-        columns.add(new DatePropertyColumn<AccessTokenTO>(new ResourceModel("expiryTime"), "expiryTime", "expiryTime"));
+        columns.add(new DatePropertyColumn<>(new ResourceModel("expiryTime"), "expiryTime", "expiryTime"));
 
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
index 9aa2a69..4574544 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
@@ -80,7 +80,7 @@ public class ActionDataTablePanel<T extends Serializable, S> extends DataTablePa
         });
         bulkActionForm.add(group);
 
-        columns.add(0, new CheckGroupColumn<T, S>(group));
+        columns.add(0, new CheckGroupColumn<>(group));
         dataTable = new AjaxFallbackDataTable<>("dataTable", columns, dataProvider, rowsPerPage, this);
         group.add(dataTable);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
index 9204aa1..001de67 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
@@ -51,8 +51,6 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
 
 public final class AjaxDataTablePanel<T extends Serializable, S> extends DataTablePanel<T, S> {
 
@@ -206,21 +204,16 @@ public final class AjaxDataTablePanel<T extends Serializable, S> extends DataTab
 
             @Override
             protected void onUpdate(final AjaxRequestTarget target) {
-                group.visitChildren(
-                        CheckGroupSelector.class, new IVisitor<CheckGroupSelector, List<CheckGroupSelector>>() {
-
-                    @Override
-                    public void component(final CheckGroupSelector t, final IVisit<List<CheckGroupSelector>> ivisit) {
-                        target.focusComponent(t);
-                        ivisit.stop();
-                    }
+                group.visitChildren(CheckGroupSelector.class, (selector, ivisit) -> {
+                    target.focusComponent(selector);
+                    ivisit.stop();
                 });
             }
         });
         bulkActionForm.add(group);
 
         if (builder.checkBoxEnabled) {
-            builder.columns.add(0, new CheckGroupColumn<T, S>(group));
+            builder.columns.add(0, new CheckGroupColumn<>(group));
         }
 
         dataTable = new AjaxFallbackDataTable<T, S>(

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
index 0e489f3..af1f72e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
@@ -126,10 +126,10 @@ public class AnyTypeClassesPanel extends TypesDirectoryPanel<
                         || Collection.class.isAssignableFrom(field.getType())
                         || Map.class.isAssignableFrom(field.getType())) {
 
-                    columns.add(new PropertyColumn<AnyTypeClassTO, String>(
+                    columns.add(new PropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName()));
                 } else if (field.getType().equals(boolean.class) || field.getType().equals(Boolean.class)) {
-                    columns.add(new BooleanPropertyColumn<AnyTypeClassTO>(
+                    columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
                     columns.add(new PropertyColumn<AnyTypeClassTO, String>(

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
index 582dc9f..0e31a67 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
@@ -51,13 +51,13 @@ public class AnyTypeDetailsPanel extends Panel {
         container.add(form);
 
         final AjaxTextFieldPanel key =
-                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeTO, "key"));
+                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<>(anyTypeTO, "key"));
         key.addRequiredLabel();
         key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
         form.add(key);
 
         final AjaxDropDownChoicePanel<AnyTypeKind> kind = new AjaxDropDownChoicePanel<>(
-                "kind", getString("kind"), new PropertyModel<AnyTypeKind>(anyTypeTO, "kind"));
+                "kind", getString("kind"), new PropertyModel<>(anyTypeTO, "kind"));
         kind.setChoices(Arrays.asList(AnyTypeKind.values()));
         kind.setOutputMarkupId(true);
         if (anyTypeTO.getKind() == null) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
index 1d0e1d8..736bb7d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
@@ -125,10 +125,10 @@ public class AnyTypesPanel extends TypesDirectoryPanel<AnyTypeTO, AnyTypesPanel.
                         || Collection.class.isAssignableFrom(field.getType())
                         || Map.class.isAssignableFrom(field.getType())) {
 
-                    columns.add(new PropertyColumn<AnyTypeTO, String>(
+                    columns.add(new PropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName()));
                 } else if (field.getType().equals(boolean.class) || field.getType().equals(Boolean.class)) {
-                    columns.add(new BooleanPropertyColumn<AnyTypeTO>(
+                    columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
                     columns.add(new PropertyColumn<AnyTypeTO, String>(

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnInstanceHistoryConfDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnInstanceHistoryConfDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnInstanceHistoryConfDirectoryPanel.java
index 836c12b..2e836ba 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnInstanceHistoryConfDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnInstanceHistoryConfDirectoryPanel.java
@@ -87,13 +87,13 @@ public abstract class ConnInstanceHistoryConfDirectoryPanel extends DirectoryPan
     protected List<IColumn<ConnInstanceHistoryConfTO, String>> getColumns() {
         final List<IColumn<ConnInstanceHistoryConfTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<ConnInstanceHistoryConfTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<ConnInstanceHistoryConfTO, String>(new StringResourceModel(
+        columns.add(new PropertyColumn<>(new StringResourceModel(
                 "creator", this), "creator", "creator"));
 
-        columns.add(new DatePropertyColumn<ConnInstanceHistoryConfTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("creation", this), "creation", "creation"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/DerSchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DerSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DerSchemaDetails.java
index d9f8b17..52fbfe5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DerSchemaDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DerSchemaDetails.java
@@ -34,7 +34,7 @@ public class DerSchemaDetails extends AbstractSchemaDetailsPanel {
             final AbstractSchemaTO schemaTO) {
         super(id, pageReference, schemaTO);
 
-        TextField<String> expression = new TextField<>("expression", new PropertyModel<String>(schemaTO, "expression"));
+        TextField<String> expression = new TextField<>("expression", new PropertyModel<>(schemaTO, "expression"));
         expression.setRequired(true);
         schemaForm.add(expression);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index 9bc33d6..22c104e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -215,7 +215,7 @@ public abstract class DirectoryPanel<
         container.add(paginatorForm);
 
         DropDownChoice<Integer> rowsChooser = new DropDownChoice<>(
-                "rowsChooser", new PropertyModel<Integer>(this, "rows"), prefMan.getPaginatorChoices());
+                "rowsChooser", new PropertyModel<>(this, "rows"), prefMan.getPaginatorChoices());
         rowsChooser.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
 
             private static final long serialVersionUID = -1107858522700306810L;
@@ -353,7 +353,7 @@ public abstract class DirectoryPanel<
     }
 
     protected ActionsPanel<T> getActions(final IModel<T> model) {
-        return model == null ? new ActionsPanel<>("actions", new Model<T>()) : new ActionsPanel<>("actions", model);
+        return model == null ? new ActionsPanel<>("actions", new Model<>()) : new ActionsPanel<>("actions", model);
     }
 
     protected ActionLinksTogglePanel<T> getTogglePanel() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
index c20efb5..d1c15e6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
@@ -108,7 +108,7 @@ public class DynRealmDirectoryPanel extends
     protected List<IColumn<DynRealmTO, String>> getColumns() {
         final List<IColumn<DynRealmTO, String>> columns = new ArrayList<>();
 
-        columns.add(new PropertyColumn<DynRealmTO, String>(new ResourceModel("key"), "key", "key"));
+        columns.add(new PropertyColumn<>(new ResourceModel("key"), "key", "key"));
 
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
index 5aac8b3..f548bfe 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
@@ -33,7 +33,7 @@ public class FailureMessageModal<T extends Serializable> extends Panel implement
         super(BaseModal.CONTENT_ID);
         final Label executionFailureMessage;
         if (!failureMessage.isEmpty()) {
-            executionFailureMessage = new Label("failureMessage", new Model<String>(failureMessage));
+            executionFailureMessage = new Label("failureMessage", new Model<>(failureMessage));
         } else {
             executionFailureMessage = new Label("failureMessage");
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/NewWorkflowProcess.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/NewWorkflowProcess.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/NewWorkflowProcess.java
index ab4bda3..be021c7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/NewWorkflowProcess.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/NewWorkflowProcess.java
@@ -49,7 +49,7 @@ public class NewWorkflowProcess extends TogglePanel<Serializable> {
         form = new Form<>("form");
         addInnerObject(form);
 
-        final TextField<String> key = new TextField<>("key", new Model<String>());
+        final TextField<String> key = new TextField<>("key", new Model<>());
         key.setRequired(true);
         form.add(key);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
index 4cd80b7..795b8df 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
@@ -69,7 +69,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
         super(id, pageReference, schemaTO);
 
         final AjaxDropDownChoicePanel<AttrSchemaType> type = new AjaxDropDownChoicePanel<>(
-                "type", getString("type"), new PropertyModel<AttrSchemaType>(schemaTO, "type"));
+                "type", getString("type"), new PropertyModel<>(schemaTO, "type"));
 
         type.setChoices(Arrays.asList(AttrSchemaType.values()));
         type.setEnabled(schemaTO == null || schemaTO.getKey() == null || schemaTO.getKey().isEmpty());
@@ -79,7 +79,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
 
         // long, double, date
         final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
-                getString("conversionPattern"), new PropertyModel<String>(schemaTO, "conversionPattern"));
+                getString("conversionPattern"), new PropertyModel<>(schemaTO, "conversionPattern"));
 
         schemaForm.add(conversionPattern);
 
@@ -94,8 +94,8 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
         typeParams.setOutputMarkupPlaceholderTag(true);
 
         // enum
-        final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
-                new Model<String>(null));
+        final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel",
+                "enumerationValues", new Model<>(null));
 
         enumerationValues = new MultiFieldPanel.Builder<String>(
                 new PropertyModel<List<String>>(schemaTO, "enumerationValues") {
@@ -183,11 +183,11 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
 
         // encrypted
         final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey",
-                getString("secretKey"), new PropertyModel<String>(schemaTO, "secretKey"));
+                getString("secretKey"), new PropertyModel<>(schemaTO, "secretKey"));
 
         final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<>(
                 "cipherAlgorithm", getString("cipherAlgorithm"),
-                new PropertyModel<CipherAlgorithm>(schemaTO, "cipherAlgorithm"));
+                new PropertyModel<>(schemaTO, "cipherAlgorithm"));
 
         cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));
 
@@ -200,7 +200,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
 
         // binary
         final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType",
-                getString("mimeType"), new PropertyModel<String>(schemaTO, "mimeType"));
+                getString("mimeType"), new PropertyModel<>(schemaTO, "mimeType"));
 
         final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
         binaryParams.setOutputMarkupPlaceholderTag(true);
@@ -242,7 +242,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
             }
         };
         final AjaxDropDownChoicePanel<String> validatorClass = new AjaxDropDownChoicePanel<>("validatorClass",
-                getString("validatorClass"), new PropertyModel<String>(schemaTO, "validatorClass"));
+                getString("validatorClass"), new PropertyModel<>(schemaTO, "validatorClass"));
         ((DropDownChoice) validatorClass.getField()).setNullValid(true);
         validatorClass.setChoices(validatorsList.getObject());
         schemaForm.add(validatorClass);
@@ -279,13 +279,13 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel {
         schemaForm.add(Constants.getJEXLPopover(this, TooltipConfig.Placement.right));
 
         schemaForm.add(new AjaxCheckBoxPanel(
-                "multivalue", getString("multivalue"), new PropertyModel<Boolean>(schemaTO, "multivalue")));
+                "multivalue", getString("multivalue"), new PropertyModel<>(schemaTO, "multivalue")));
 
         schemaForm.add(new AjaxCheckBoxPanel(
-                "readonly", getString("readonly"), new PropertyModel<Boolean>(schemaTO, "readonly")));
+                "readonly", getString("readonly"), new PropertyModel<>(schemaTO, "readonly")));
 
         schemaForm.add(new AjaxCheckBoxPanel("uniqueConstraint",
-                getString("uniqueConstraint"), new PropertyModel<Boolean>(schemaTO, "uniqueConstraint")));
+                getString("uniqueConstraint"), new PropertyModel<>(schemaTO, "uniqueConstraint")));
 
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
index ef53d05..068ce5b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
@@ -43,14 +43,14 @@ public class RelationshipTypeDetailsPanel extends Panel {
         form.setModel(new CompoundPropertyModel<>(relationshipTypeTO));
         container.add(form);
 
-        final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(
-                relationshipTypeTO, "key"));
+        final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"),
+                new PropertyModel<>(relationshipTypeTO, "key"));
         key.addRequiredLabel();
         key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
         form.add(key);
 
         final AjaxTextFieldPanel description = new AjaxTextFieldPanel("description",
-                getString("description"), new PropertyModel<String>(relationshipTypeTO, "description"));
+                getString("description"), new PropertyModel<>(relationshipTypeTO, "description"));
         description.addRequiredLabel();
         form.add(description);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
index a83c440..56d92ec 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
@@ -129,10 +129,10 @@ public class RelationshipTypesPanel extends TypesDirectoryPanel<
                         || Collection.class.isAssignableFrom(field.getType())
                         || Map.class.isAssignableFrom(field.getType())) {
 
-                    columns.add(new PropertyColumn<RelationshipTypeTO, String>(
+                    columns.add(new PropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName()));
                 } else if (field.getType().equals(boolean.class) || field.getType().equals(Boolean.class)) {
-                    columns.add(new BooleanPropertyColumn<RelationshipTypeTO>(
+                    columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
                     columns.add(new PropertyColumn<RelationshipTypeTO, String>(

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceHistoryConfDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceHistoryConfDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceHistoryConfDirectoryPanel.java
index d212d9d..c666313 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceHistoryConfDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceHistoryConfDirectoryPanel.java
@@ -90,13 +90,13 @@ public abstract class ResourceHistoryConfDirectoryPanel extends DirectoryPanel<
     protected List<IColumn<ResourceHistoryConfTO, String>> getColumns() {
         final List<IColumn<ResourceHistoryConfTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<ResourceHistoryConfTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<ResourceHistoryConfTO, String>(new StringResourceModel(
+        columns.add(new PropertyColumn<>(new StringResourceModel(
                 "creator", this), "creator", "creator"));
 
-        columns.add(new DatePropertyColumn<ResourceHistoryConfTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("creation", this), "creation", "creation"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
index bb7d9d9..5644e85 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
@@ -109,13 +109,13 @@ public class RoleDirectoryPanel extends DirectoryPanel<RoleTO, RoleWrapper, Role
     protected List<IColumn<RoleTO, String>> getColumns() {
         final List<IColumn<RoleTO, String>> columns = new ArrayList<>();
 
-        columns.add(new PropertyColumn<RoleTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("key"), "key", "key"));
-        columns.add(new PropertyColumn<RoleTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("entitlements", "Entitlements"), null, "entitlements"));
-        columns.add(new PropertyColumn<RoleTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("realms"), null, "realms"));
-        columns.add(new PropertyColumn<RoleTO, String>(
+        columns.add(new PropertyColumn<>(
                 new ResourceModel("dynRealms"), null, "dynRealms"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
index dabeb85..c49dc36 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
@@ -47,7 +47,7 @@ public class SchemaModalPanel extends AbstractModalPanel<AbstractSchemaTO> {
         add(kindForm);
 
         final AjaxDropDownChoicePanel<SchemaType> kind = new AjaxDropDownChoicePanel<>(
-                "kind", getString("kind"), new Model<SchemaType>());
+                "kind", getString("kind"), new Model<>());
         kind.setChoices(Arrays.asList(SchemaType.values()));
         kind.setOutputMarkupId(true);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
index 3f632fb..d75c483 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
@@ -44,7 +44,7 @@ public class SecurityQuestionDetailsPanel extends Panel {
         container.add(form);
 
         final AjaxTextFieldPanel content = new AjaxTextFieldPanel(
-                "content", getString("content"), new PropertyModel<String>(securityQuestionTO, "content"));
+                "content", getString("content"), new PropertyModel<>(securityQuestionTO, "content"));
         content.addRequiredLabel();
         form.add(content);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
index fb14b54..3a12a82 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
@@ -126,9 +126,9 @@ public class SecurityQuestionsPanel extends DirectoryPanel<
     protected List<IColumn<SecurityQuestionTO, String>> getColumns() {
         List<IColumn<SecurityQuestionTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<SecurityQuestionTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
-        columns.add(new PropertyColumn<SecurityQuestionTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("content", this), "content", "content"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
index a5a0a66..818ef7d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Optional;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.commons.Constants;
@@ -125,9 +126,9 @@ public class TypeExtensionDirectoryPanel
     protected List<IColumn<TypeExtensionTO, String>> getColumns() {
         List<IColumn<TypeExtensionTO, String>> columns = new ArrayList<>();
 
-        columns.add(new PropertyColumn<TypeExtensionTO, String>(
+        columns.add(new PropertyColumn<>(
                 Model.of("Any Type"), "anyType", "anyType"));
-        columns.add(new PropertyColumn<TypeExtensionTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("auxClasses", this), "auxClasses", "auxClasses"));
 
         return columns;
@@ -154,9 +155,11 @@ public class TypeExtensionDirectoryPanel
 
             @Override
             public void onClick(final AjaxRequestTarget target, final TypeExtensionTO ignore) {
-                groupTO.getTypeExtensions().remove(
-                        groupTO.getTypeExtension(typeExtension.getAnyType()));
-                target.add(container);
+                Optional<TypeExtensionTO> typeExt = groupTO.getTypeExtension(typeExtension.getAnyType());
+                if (typeExt.isPresent()) {
+                    groupTO.getTypeExtensions().remove(typeExt.get());
+                    target.add(container);
+                }
             }
         }, ActionLink.ActionType.DELETE, StringUtils.EMPTY, true);
         return panel;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowDirectoryPanel.java
index 2217da0..1a0e26a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowDirectoryPanel.java
@@ -154,9 +154,9 @@ public class WorkflowDirectoryPanel extends DirectoryPanel<
     protected List<IColumn<WorkflowDefinitionTO, String>> getColumns() {
         List<IColumn<WorkflowDefinitionTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<WorkflowDefinitionTO>(new ResourceModel("key"), "key"));
-        columns.add(new PropertyColumn<WorkflowDefinitionTO, String>(new ResourceModel("name"), "name", "name"));
-        columns.add(new BooleanPropertyColumn<WorkflowDefinitionTO>(new ResourceModel("main"), null, "main"));
+        columns.add(new KeyPropertyColumn<>(new ResourceModel("key"), "key"));
+        columns.add(new PropertyColumn<>(new ResourceModel("name"), "name", "name"));
+        columns.add(new BooleanPropertyColumn<>(new ResourceModel("main"), null, "main"));
 
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
index 5b0f2f1..a2535d9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
@@ -53,13 +53,13 @@ public class AccountPolicyDirectoryPanel extends PolicyDirectoryPanel<AccountPol
 
     @Override
     protected void addCustomColumnFields(final List<IColumn<AccountPolicyTO, String>> columns) {
-        columns.add(new CollectionPropertyColumn<AccountPolicyTO>(new StringResourceModel(
+        columns.add(new CollectionPropertyColumn<>(new StringResourceModel(
                 "passthroughResources", this), "passthroughResources"));
 
-        columns.add(new PropertyColumn<AccountPolicyTO, String>(new StringResourceModel(
+        columns.add(new PropertyColumn<>(new StringResourceModel(
                 "maxAuthenticationAttempts", this), "maxAuthenticationAttempts", "maxAuthenticationAttempts"));
 
-        columns.add(new BooleanPropertyColumn<AccountPolicyTO>(new StringResourceModel(
+        columns.add(new BooleanPropertyColumn<>(new StringResourceModel(
                 "propagateSuspension", this), "propagateSuspension", "propagateSuspension"));
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
index 59fe831..8e3663d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
@@ -53,10 +53,10 @@ public class PasswordPolicyDirectoryPanel extends PolicyDirectoryPanel<PasswordP
 
     @Override
     protected void addCustomColumnFields(final List<IColumn<PasswordPolicyTO, String>> columns) {
-        columns.add(new PropertyColumn<PasswordPolicyTO, String>(new StringResourceModel(
+        columns.add(new PropertyColumn<>(new StringResourceModel(
                 "historyLength", this), "historyLength", "historyLength"));
 
-        columns.add(new BooleanPropertyColumn<PasswordPolicyTO>(new StringResourceModel(
+        columns.add(new BooleanPropertyColumn<>(new StringResourceModel(
                 "allowNullPassword", this), "allowNullPassword", "allowNullPassword"));
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
index 166b9e2..22fccf7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
@@ -109,7 +109,7 @@ public abstract class PolicyDirectoryPanel<T extends AbstractPolicyTO>
         setFooterVisibility(true);
         modal.addSubmitButton();
         modal.size(Modal.Size.Large);
-        
+
         disableCheckBoxes();
     }
 
@@ -117,13 +117,13 @@ public abstract class PolicyDirectoryPanel<T extends AbstractPolicyTO>
     protected List<IColumn<T, String>> getColumns() {
         final List<IColumn<T, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<T>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("description", this), "description", "description"));
-        columns.add(new CollectionPropertyColumn<T>(
+        columns.add(new CollectionPropertyColumn<>(
                 new StringResourceModel("usedByResources", this), "usedByResources"));
-        columns.add(new CollectionPropertyColumn<T>(
+        columns.add(new CollectionPropertyColumn<>(
                 new StringResourceModel("usedByRealms", this), "usedByRealms"));
 
         addCustomColumnFields(columns);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
index 01f77db..4d1c1c2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
@@ -84,27 +84,25 @@ public abstract class ReportDirectoryPanel
     protected List<IColumn<ReportTO, String>> getColumns() {
         final List<IColumn<ReportTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<ReportTO>(new StringResourceModel(
-                "key", this), "key"));
-        columns.add(new PropertyColumn<ReportTO, String>(new StringResourceModel(
-                "name", this), "name", "name"));
+        columns.add(new KeyPropertyColumn<>(new StringResourceModel("key", this), "key"));
+        columns.add(new PropertyColumn<>(new StringResourceModel("name", this), "name", "name"));
 
-        columns.add(new DatePropertyColumn<ReportTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("lastExec", this), "lastExec", "lastExec"));
 
-        columns.add(new DatePropertyColumn<ReportTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("nextExec", this), "nextExec", "nextExec"));
 
-        columns.add(new DatePropertyColumn<ReportTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("start", this), "start", "start"));
 
-        columns.add(new DatePropertyColumn<ReportTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("end", this), "end", "end"));
 
-        columns.add(new PropertyColumn<ReportTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("latestExecStatus", this), "latestExecStatus", "latestExecStatus"));
 
-        columns.add(new BooleanPropertyColumn<ReportTO>(
+        columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
index 2d3c2c6..6aa57d3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
@@ -112,7 +112,7 @@ public class ReportTemplateDirectoryPanel
     @Override
     protected List<IColumn<ReportTemplateTO, String>> getColumns() {
         List<IColumn<ReportTemplateTO, String>> columns = new ArrayList<>();
-        columns.add(new PropertyColumn<ReportTemplateTO, String>(new StringResourceModel("key", this), "key", "key"));
+        columns.add(new PropertyColumn<>(new StringResourceModel("key", this), "key", "key"));
         return columns;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
index c5a90e8..124a3c4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
@@ -43,7 +43,6 @@ import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.Bas
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
 import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -137,7 +136,7 @@ public class AnyStatusDirectoryPanel
             }
         });
 
-        columns.add(new PropertyColumn<StatusBean, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("connObjectLink", this), "connObjectLink", "connObjectLink"));
 
         columns.add(new AbstractColumn<StatusBean, String>(new StringResourceModel("status", this)) {
@@ -233,15 +232,15 @@ public class AnyStatusDirectoryPanel
             final AnyTO actual = restClient.read(anyTO.getKey());
 
             final List<String> resources = new ArrayList<>();
-            for (ResourceTO resourceTO : new ResourceRestClient().list()) {
+            new ResourceRestClient().list().forEach(resourceTO -> {
                 resources.add(resourceTO.getKey());
-            }
+            });
 
             final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(actual);
 
             final List<StatusBean> statusBeans = new ArrayList<>(connObjects.size() + 1);
 
-            for (ConnObjectWrapper entry : connObjects) {
+            connObjects.forEach(entry -> {
                 final StatusBean statusBean = statusUtils.getStatusBean(actual,
                         entry.getResourceName(),
                         entry.getConnObjectTO(),
@@ -249,7 +248,7 @@ public class AnyStatusDirectoryPanel
 
                 statusBeans.add(statusBean);
                 resources.remove(entry.getResourceName());
-            }
+            });
 
             if (statusOnly) {
                 final StatusBean syncope = new StatusBean(actual, "Syncope");
@@ -268,15 +267,18 @@ public class AnyStatusDirectoryPanel
 
                 statusBeans.add(syncope);
             } else {
-                for (String resource : resources) {
-                    final StatusBean statusBean = statusUtils.getStatusBean(actual,
-                            resource,
-                            null,
-                            actual instanceof GroupTO);
-
-                    statusBean.setLinked(false);
-                    statusBeans.add(statusBean);
-                }
+                resources.stream().
+                        map(resource -> statusUtils.getStatusBean(actual,
+                        resource,
+                        null,
+                        actual instanceof GroupTO)).
+                        map(statusBean -> {
+                            statusBean.setLinked(false);
+                            return statusBean;
+                        }).
+                        forEachOrdered(statusBean -> {
+                            statusBeans.add(statusBean);
+                        });
             }
 
             return statusBeans;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/status/ChangePasswordModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/ChangePasswordModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/ChangePasswordModal.java
index 336f4d1..43d9282 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/ChangePasswordModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/ChangePasswordModal.java
@@ -63,7 +63,7 @@ public class ChangePasswordModal extends AbstractModalPanel<AnyWrapper<UserTO>>
         passwordPanel.setOutputMarkupId(true);
         add(passwordPanel);
 
-        statusModel = new ListModel<>(new ArrayList<StatusBean>());
+        statusModel = new ListModel<>(new ArrayList<>());
         StatusPanel statusPanel = new StatusPanel("status", wrapper.getInnerObject(), statusModel, pageReference);
         statusPanel.setCheckAvailability(ListViewPanel.CheckAvailability.AVAILABLE);
         add(statusPanel.setRenderBodyOnly(true));
@@ -77,7 +77,7 @@ public class ChangePasswordModal extends AbstractModalPanel<AnyWrapper<UserTO>>
             if (StringUtils.isBlank(inner.getPassword()) || statusModel.getObject().isEmpty()) {
                 SyncopeConsoleSession.get().error(getString(Constants.OPERATION_ERROR));
             } else {
-                final List<String> resources = new ArrayList<String>();
+                final List<String> resources = new ArrayList<>();
                 boolean isOnSyncope = false;
                 for (StatusBean sb : statusModel.getObject()) {
                     if (sb.getResource().equals(Constants.SYNCOPE)) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
index 041305e..3d50d63 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
@@ -89,10 +89,10 @@ public class ResourceStatusDirectoryPanel
     protected List<IColumn<StatusBean, String>> getColumns() {
         final List<IColumn<StatusBean, String>> columns = new ArrayList<>();
 
-        columns.add(new PropertyColumn<StatusBean, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("key", this), "key", "key"));
 
-        columns.add(new PropertyColumn<StatusBean, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("connObjectLink", this), "connObjectLink", "connObjectLink"));
 
         columns.add(new AbstractColumn<StatusBean, String>(new StringResourceModel("status", this)) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
index 34b005c..a44b6de 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
@@ -62,8 +62,8 @@ public class CrontabPanel extends Panel {
             new SelectOption(getString("selOpt6"), "0 0 0 ? * 2")
         };
 
-        final AjaxDropDownChoicePanel<SelectOption> cronTemplateChooser = new AjaxDropDownChoicePanel<SelectOption>(
-                "cronTemplateChooser", "cronTemplateChooser", new Model<SelectOption>());
+        final AjaxDropDownChoicePanel<SelectOption> cronTemplateChooser = new AjaxDropDownChoicePanel<>(
+                "cronTemplateChooser", "cronTemplateChooser", new Model<>());
 
         cronTemplateChooser.setNullValid(false);
         cronTemplateChooser.setPlaceholder("chooseForTemplate");
@@ -97,7 +97,7 @@ public class CrontabPanel extends Panel {
             }
         });
         cronTemplateChooser.setChoices(Arrays.asList(cronTemplates));
-        cronTemplateChooser.setChoiceRenderer(new SelectChoiceRenderer<SelectOption>());
+        cronTemplateChooser.setChoiceRenderer(new SelectChoiceRenderer<>());
         add(cronTemplateChooser);
 
         seconds = new AjaxTextFieldPanel("seconds", "seconds", new Model<>(getCronField(cronExpression, 0)));

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
index 3642529..3e26514 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
@@ -97,13 +97,13 @@ public abstract class ExecutionsDirectoryPanel
     protected List<IColumn<ExecTO, String>> getColumns() {
         final List<IColumn<ExecTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<ExecTO>(new StringResourceModel("key", this), "key", "key"));
+        columns.add(new KeyPropertyColumn<>(new StringResourceModel("key", this), "key", "key"));
 
-        columns.add(new DatePropertyColumn<ExecTO>(new StringResourceModel("start", this), "start", "start"));
+        columns.add(new DatePropertyColumn<>(new StringResourceModel("start", this), "start", "start"));
 
-        columns.add(new DatePropertyColumn<ExecTO>(new StringResourceModel("end", this), "end", "end"));
+        columns.add(new DatePropertyColumn<>(new StringResourceModel("end", this), "end", "end"));
 
-        columns.add(new PropertyColumn<ExecTO, String>(new StringResourceModel("status", this), "status", "status"));
+        columns.add(new PropertyColumn<>(new StringResourceModel("status", this), "status", "status"));
         return columns;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
index eb859a6..fd73ab0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
@@ -80,25 +80,25 @@ public abstract class NotificationTaskDirectoryPanel
     protected List<IColumn<NotificationTaskTO, String>> getColumns() {
         final List<IColumn<NotificationTaskTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<NotificationTaskTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<NotificationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("sender", this), "sender", "sender"));
 
-        columns.add(new PropertyColumn<NotificationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("subject", this), "subject", "subject"));
 
-        columns.add(new CollectionPropertyColumn<NotificationTaskTO>(
+        columns.add(new CollectionPropertyColumn<>(
                 new StringResourceModel("recipients", this), "recipients"));
 
-        columns.add(new DatePropertyColumn<NotificationTaskTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("start", this), "start", "start"));
 
-        columns.add(new DatePropertyColumn<NotificationTaskTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("end", this), "end", "end"));
 
-        columns.add(new PropertyColumn<NotificationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("latestExecStatus", this), "latestExecStatus", "latestExecStatus"));
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
index 0db71d5..5d37b79 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
@@ -70,14 +70,14 @@ public abstract class PropagationTaskDirectoryPanel
     protected List<IColumn<PropagationTaskTO, String>> getColumns() {
         final List<IColumn<PropagationTaskTO, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<PropagationTaskTO>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<PropagationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("operation", this), "operation", "operation"));
 
         if (resource == null) {
-            columns.add(new PropertyColumn<PropagationTaskTO, String>(
+            columns.add(new PropertyColumn<>(
                     new StringResourceModel("resource", this), "resource", "resource"));
         } else {
             columns.add(new PropertyColumn<PropagationTaskTO, String>(
@@ -96,19 +96,19 @@ public abstract class PropagationTaskDirectoryPanel
             });
         }
 
-        columns.add(new PropertyColumn<PropagationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("entityKey", this), "entityKey", "entityKey"));
 
-        columns.add(new PropertyColumn<PropagationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("connObjectKey", this), "connObjectKey", "connObjectKey"));
 
-        columns.add(new DatePropertyColumn<PropagationTaskTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("start", this), "start", "start"));
 
-        columns.add(new DatePropertyColumn<PropagationTaskTO>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("end", this), "end", "end"));
 
-        columns.add(new PropertyColumn<PropagationTaskTO, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("latestExecStatus", this), "latestExecStatus", "latestExecStatus"));
         return columns;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
index 0fa0f7b..2ce9887 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
@@ -72,33 +72,33 @@ public abstract class ProvisioningTaskDirectoryPanel<T extends AbstractProvision
     protected List<IColumn<T, String>> getFieldColumns() {
         List<IColumn<T, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<T>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("name", this), "name", "name"));
 
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("description", this), "description", "description"));
 
         if (reference == PullTaskTO.class) {
-            columns.add(new PropertyColumn<T, String>(
+            columns.add(new PropertyColumn<>(
                     new StringResourceModel("destinationRealm", this), "destinationRealm", "destinationRealm"));
         } else if (reference == PushTaskTO.class) {
-            columns.add(new PropertyColumn<T, String>(
+            columns.add(new PropertyColumn<>(
                     new StringResourceModel("sourceRealm", this), "sourceRealm", "sourceRealm"));
         }
 
-        columns.add(new DatePropertyColumn<T>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("lastExec", this), "lastExec", "lastExec"));
 
-        columns.add(new DatePropertyColumn<T>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("nextExec", this), "nextExec", "nextExec"));
 
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("latestExecStatus", this), "latestExecStatus", "latestExecStatus"));
 
-        columns.add(new BooleanPropertyColumn<T>(
+        columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
         return columns;

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
index af40248..5feba57 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
@@ -23,7 +23,6 @@ import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.console.panels.search.AnyObjectSearchPanel;
 import org.apache.syncope.client.console.panels.search.MapOfListModel;
-import org.apache.syncope.client.console.panels.search.SearchClause;
 import org.apache.syncope.client.console.rest.AnyTypeRestClient;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.tabs.Accordion;
 import org.apache.syncope.common.lib.to.AnyTypeTO;
@@ -70,7 +69,7 @@ public class PushTaskFilters extends WizardStep {
                     @Override
                     public Panel getPanel(final String panelId) {
                         return new AnyObjectSearchPanel.Builder(
-                                key, new MapOfListModel<SearchClause>(pushTaskWrapper, "filterClauses", key)).
+                                key, new MapOfListModel<>(pushTaskWrapper, "filterClauses", key)).
                                 required(false).build(panelId);
                     }
                 }), Model.of(StringUtils.isBlank(pushTaskWrapper.getFilters().get(key)) ? -1 : 0))

http://git-wip-us.apache.org/repos/asf/syncope/blob/5be24a03/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index 7663235..ca540b6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -129,10 +129,10 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
     protected List<IColumn<T, String>> getFieldColumns() {
         final List<IColumn<T, String>> columns = new ArrayList<>();
 
-        columns.add(new KeyPropertyColumn<T>(
+        columns.add(new KeyPropertyColumn<>(
                 new StringResourceModel("key", this), "key"));
 
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("name", this), "name", "name"));
 
         columns.add(new PropertyColumn<T, String>(new StringResourceModel(
@@ -158,16 +158,16 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
 
         });
 
-        columns.add(new DatePropertyColumn<T>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("lastExec", this), "lastExec", "lastExec"));
 
-        columns.add(new DatePropertyColumn<T>(
+        columns.add(new DatePropertyColumn<>(
                 new StringResourceModel("nextExec", this), "nextExec", "nextExec"));
 
-        columns.add(new PropertyColumn<T, String>(
+        columns.add(new PropertyColumn<>(
                 new StringResourceModel("latestExecStatus", this), "latestExecStatus", "latestExecStatus"));
 
-        columns.add(new BooleanPropertyColumn<T>(
+        columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
         return columns;